module
g-Node-B scheduler classesNR-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).
Description of the module
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.
FAPI interface overview
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 interface is defined as a service access point offered by the MAC scheduler to the remaining MAC functionality, as shown in Figure 1.
- A _REQ primitive is from MAC to the MAC scheduler.
- A _IND/_CNF primitives are from the MAC scheduler to the MAC.
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.
Classes
- struct ns3::HarqProcess
- The HarqProcess struct.
- class ns3::NrMacCschedSapProvider
- Provides the CSCHED SAP.
- class ns3::NrMacHarqVector
- Data structure to save all the HARQ process of an UE.
- class ns3::NrMacSchedSapProvider
- The SAP interface between MAC and scheduler.
- class ns3::NrMacSchedSapUser
- The Interface between Scheduler and MAC.
- class ns3::NrMacScheduler
- Interface for all the nr schedulers.
- class ns3::NrMacSchedulerCQIManagement
- CQI management for schedulers.
- class ns3::NrMacSchedulerHarqRr
- Schedule the HARQ retransmission.
- class ns3::NrMacSchedulerLC
- Represent a DL Logical Channel of an UE.
- class ns3::NrMacSchedulerLCG
- Represent an UE LCG (can be DL or UL)
- class ns3::NrMacSchedulerNs3
- A general scheduler for nr in NS3.
- class ns3::NrMacSchedulerOfdma
- The base for all the OFDMA schedulers.
- class ns3::NrMacSchedulerOfdmaMR
- Assign frequencies in a maximum-rate fashion.
- class ns3::NrMacSchedulerOfdmaPF
- Assign frequencies in a proportional fair fashion.
- class ns3::NrMacSchedulerOfdmaRR
- Assign frequencies in a round-robin fashion.
- class ns3::NrMacSchedulerSrs
- MAC scheduler SRS interface.
- class ns3::NrMacSchedulerTdma
- The base for all the TDMA schedulers.
- class ns3::NrMacSchedulerTdmaMR
- Assign entire symbols in a maximum-rate fashion.
- class ns3::NrMacSchedulerTdmaPF
- Assign entire symbols in a proportional fair fashion.
- class ns3::NrMacSchedulerTdmaRR
- Assign entire symbols in a round-robin fashion.
- class ns3::NrMacSchedulerUeInfo
- The representation of an user for any Mac scheduler.
- class ns3::NrMacSchedulerUeInfoMR
- UE representation for a maximum rate scheduler.
- class ns3::NrMacSchedulerUeInfoPF
- UE representation for a proportional fair scheduler.
- class ns3::NrMacSchedulerUeInfoRR
- UE representation for a round-robin scheduler.
Typedefs
- using LCGPtr = std::unique_ptr<NrMacSchedulerLCG>
- LCGPtr unique pointer to a LCG.
- using LCPtr = std::unique_ptr<NrMacSchedulerLC>
- Unique pointer to an instance of NrMacSchedulerLC.