5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
|
NR-enabled schedulers module. More...
Classes | |
struct | ns3::HarqProcess |
The HarqProcess struct. More... | |
class | ns3::NrMacCschedSapProvider |
Provides the CSCHED SAP. More... | |
class | ns3::NrMacHarqVector |
Data structure to save all the HARQ process of an UE. More... | |
class | ns3::NrMacSchedSapProvider |
The SAP interface between MAC and scheduler. More... | |
class | ns3::NrMacSchedSapUser |
The Interface between Scheduler and MAC. More... | |
class | ns3::NrMacScheduler |
Interface for all the nr schedulers. More... | |
class | ns3::NrMacSchedulerCQIManagement |
CQI management for schedulers. More... | |
class | ns3::NrMacSchedulerHarqRr |
Schedule the HARQ retransmission. More... | |
class | ns3::NrMacSchedulerLC |
Represent a DL Logical Channel of an UE. More... | |
class | ns3::NrMacSchedulerLcAlgorithm |
This class is the interface for the creation of various scheduling algorithms for the distribution of the assigned bytes to the different LCGs/LCs of a UE. More... | |
class | ns3::NrMacSchedulerLCG |
Represent an UE LCG (can be DL or UL) More... | |
class | ns3::NrMacSchedulerLcQos |
Algorithm for distributing the assigned bytes to the different LCGs/LCs of a UE based on the resource type and the ERAB guaranteed bit rate. More... | |
class | ns3::NrMacSchedulerLcRR |
Default algorithm for distributing the assigned bytes to the different LCGs/LCs of a UE in a Round Robin fashion. More... | |
class | ns3::NrMacSchedulerNs3 |
A general scheduler for nr in NS3. More... | |
class | ns3::NrMacSchedulerOfdma |
The base for all the OFDMA schedulers. More... | |
class | ns3::NrMacSchedulerOfdmaMR |
Assign frequencies in a maximum-rate fashion. More... | |
class | ns3::NrMacSchedulerOfdmaPF |
Assign frequencies in a proportional fair fashion. More... | |
class | ns3::NrMacSchedulerOfdmaQos |
Assign frequencies in QoS-based fashion. More... | |
class | ns3::NrMacSchedulerOfdmaRR |
Assign frequencies in a round-robin fashion. More... | |
class | ns3::NrMacSchedulerSrs |
MAC scheduler SRS interface. More... | |
class | ns3::NrMacSchedulerTdma |
The base for all the TDMA schedulers. More... | |
class | ns3::NrMacSchedulerTdmaMR |
Assign entire symbols in a maximum-rate fashion. More... | |
class | ns3::NrMacSchedulerTdmaPF |
Assign entire symbols in a proportional fair fashion. More... | |
class | ns3::NrMacSchedulerTdmaQos |
Assign entire symbols in a QoS-based fashion. More... | |
class | ns3::NrMacSchedulerTdmaRR |
Assign entire symbols in a round-robin fashion. More... | |
class | ns3::NrMacSchedulerUeInfo |
The representation of an user for any Mac scheduler. More... | |
class | ns3::NrMacSchedulerUeInfoMR |
UE representation for a maximum rate scheduler. More... | |
class | ns3::NrMacSchedulerUeInfoPF |
UE representation for a proportional fair scheduler. More... | |
class | ns3::NrMacSchedulerUeInfoQos |
UE representation for a QoS-based scheduler. More... | |
class | ns3::NrMacSchedulerUeInfoRR |
UE representation for a round-robin scheduler. More... | |
Typedefs | |
typedef std::unique_ptr< NrMacSchedulerLCG > | ns3::LCGPtr |
LCGPtr unique pointer to a LCG. | |
typedef std::unique_ptr< NrMacSchedulerLC > | ns3::LCPtr |
Unique pointer to an instance of NrMacSchedulerLC. | |
NR-enabled schedulers module.
This group contains the copy of FAPI documentation that was included in the original "LTE MAC Scheduler Interface v1.11" document by FemtoForum (Document number: FF_Tech_001_v1.11 , Date issued: 12-10-2010, Document status: Document for public distribution).
This group specifies the MAC Scheduler interface and their implementation. The goal of this interface specification is to allow the use of a wide range of schedulers which can be plugged into the eNodeB and to allow for standardized interference coordination interface to the scheduler.
Not only the interface between the MAC and the scheduler is standardized, but also the internals of the scheduler. The objective is to be able to write new kind of schedulers with minimum efforts and the minimum amount of code, re-using existing classes and methods.
The MAC scheduler is part of MAC from a logical view and the MAC scheduler should be independent from the PHY interface.
The description in this interface does not foresee any specific implementation of the interface. What is specified in the FAPI document is the structure of the parameters. In order to describe the interface in detail the following model is used:
The description using primitives does not foresee any specific implementation and is used for illustration purposes. Therefore an implementation could be message-based or function-based interface. Timing constrains applicable to the MAC scheduler are not yet specified.
For the MAC scheduler interface specification a push-based concept is employed, that is all parameters needed by the scheduler are passed to the scheduler at specific times rather than using a pull-based concept (i.e. fetching the parameters from different places as needed). The parameters specified are as far as possible aligned with the 3GPP specifications.
[Figure 1]
Figure 1 shows the functionality split between the MAC scheduler and the remaining MAC. For the purposes of describing the MAC scheduler interface the MAC consists of a control block and a subframe block, which uses the CSCHED and SCHED SAP respectively. The subframe block triggers the MAC scheduler every TTI and receives the scheduler results. The control block forwards control information to the MAC scheduler as necessary.
typedef std::unique_ptr<NrMacSchedulerLCG> ns3::LCGPtr |
LCGPtr unique pointer to a LCG.
Definition at line 214 of file nr-mac-scheduler-lcg.h.
typedef std::unique_ptr<NrMacSchedulerLC> ns3::LCPtr |
Unique pointer to an instance of NrMacSchedulerLC.
Definition at line 79 of file nr-mac-scheduler-lcg.h.