5G-LENA nr-v3.0-33-g7aea1e4
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
g-Node-B scheduler classes

NR-enabled schedulers module. More...

+ Collaboration diagram for g-Node-B scheduler classes:

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< NrMacSchedulerLCGns3::LCGPtr
 LCGPtr unique pointer to a LCG.
 
typedef std::unique_ptr< NrMacSchedulerLCns3::LCPtr
 Unique pointer to an instance of NrMacSchedulerLC.
 

Detailed Description

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).

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 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.

Note
CTTC implementation The documentation of the implementation starts with class NrMacScheduler. Please start your journey into the scheduler documentation from there.

Typedef Documentation

◆ LCGPtr

typedef std::unique_ptr<NrMacSchedulerLCG> ns3::LCGPtr

LCGPtr unique pointer to a LCG.

Definition at line 214 of file nr-mac-scheduler-lcg.h.

◆ LCPtr

typedef std::unique_ptr<NrMacSchedulerLC> ns3::LCPtr

Unique pointer to an instance of NrMacSchedulerLC.

Definition at line 81 of file nr-mac-scheduler-lcg.h.