5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
|
Interface for all the nr schedulers. More...
#include "nr-mac-scheduler.h"
Public Member Functions | |
NrMacScheduler () | |
NrMacScheduler constructor. | |
~NrMacScheduler () override | |
NrMacScheduler deconstructor. | |
virtual int64_t | AssignStreams (int64_t stream)=0 |
virtual void | DoCschedCellConfigReq (const NrMacCschedSapProvider::CschedCellConfigReqParameters ¶ms)=0 |
Configure cell. | |
virtual void | DoCschedLcConfigReq (const NrMacCschedSapProvider::CschedLcConfigReqParameters ¶ms)=0 |
Configure UE's logical channel(s). | |
virtual void | DoCschedLcReleaseReq (const NrMacCschedSapProvider::CschedLcReleaseReqParameters ¶ms)=0 |
Release UE's logical channel(s). | |
virtual void | DoCschedUeConfigReq (const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms)=0 |
Configure single UE. | |
virtual void | DoCschedUeReleaseReq (const NrMacCschedSapProvider::CschedUeReleaseReqParameters ¶ms)=0 |
Release UE. | |
virtual void | DoSchedDlCqiInfoReq (const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms)=0 |
Provides CQI measurement report information to the scheduler. | |
virtual void | DoSchedDlRachInfoReq (const NrMacSchedSapProvider::SchedDlRachInfoReqParameters ¶ms)=0 |
RACH information. | |
virtual void | DoSchedDlRlcBufferReq (const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters ¶ms)=0 |
DoSchedDlRlcBufferReq. | |
virtual void | DoSchedDlTriggerReq (const NrMacSchedSapProvider::SchedDlTriggerReqParameters ¶ms)=0 |
Request for scheduling a slot in DL. | |
virtual void | DoSchedSetMcs (uint32_t mcs)=0 |
Forcefully set a default MCS. | |
virtual void | DoSchedUlCqiInfoReq (const NrMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)=0 |
Provides UL CQI measurement information to the scheduler. | |
virtual void | DoSchedUlMacCtrlInfoReq (const NrMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ¶ms)=0 |
Provides mac control information (power headroom, ul buffer status) to the scheduler. | |
virtual void | DoSchedUlSrInfoReq (const NrMacSchedSapProvider::SchedUlSrInfoReqParameters ¶ms)=0 |
One or more UE asked to be scheduled in UL. | |
virtual void | DoSchedUlTriggerReq (const NrMacSchedSapProvider::SchedUlTriggerReqParameters ¶ms)=0 |
Request for scheduling a slot in UL. | |
virtual uint8_t | GetDlCtrlSyms () const =0 |
Retrieve the number of DL ctrl symbols configured in the scheduler. | |
NrMacCschedSapProvider * | GetMacCschedSapProvider () |
Get the MacCschedSapProvider pointer. | |
NrMacSchedSapProvider * | GetMacSchedSapProvider () |
Get the MacSchedSapProvider pointer. | |
virtual uint8_t | GetUlCtrlSyms () const =0 |
Retrieve the number of UL ctrl symbols configured in the scheduler. | |
void | SetMacCschedSapUser (NrMacCschedSapUser *sap) |
SetMacCschedSapUser. | |
void | SetMacSchedSapUser (NrMacSchedSapUser *sap) |
Set the MacSchedSapUser pointer. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type id. | |
Protected Attributes | |
NrMacCschedSapProvider * | m_macCschedSapProvider {nullptr} |
SAP Provider. | |
NrMacCschedSapUser * | m_macCschedSapUser {nullptr} |
SAP User. | |
NrMacSchedSapProvider * | m_macSchedSapProvider {nullptr} |
SAP Provider. | |
NrMacSchedSapUser * | m_macSchedSapUser {nullptr} |
SAP user. | |
Interface for all the nr schedulers.
TODO: Add description of SAP user/providers
ns3::NrMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 88 bytes (on a 64-bit architecture).
Definition at line 23 of file nr-mac-scheduler.h.
ns3::NrMacScheduler::NrMacScheduler | ( | ) |
NrMacScheduler constructor.
Definition at line 147 of file nr-mac-scheduler.cc.
References m_macCschedSapProvider, and m_macSchedSapProvider.
|
override |
NrMacScheduler deconstructor.
Definition at line 154 of file nr-mac-scheduler.cc.
References m_macCschedSapProvider, and m_macSchedSapProvider.
|
pure virtual |
Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Configure cell.
(Re-)configure MAC scheduler with cell configuration and scheduler configuration. The cell configuration will also setup the BCH, BCCH, PCCH and CCCH LC configuration (for each component carrier).
Ns-3 does nothing.
params | Cell configuration |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Configure UE's logical channel(s).
(Re-)configure MAC scheduler with UE's logical channel configuration. A logical channel can only be configured when a UE configuration has been received.
params | UE's logical channel configuration |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Release UE's logical channel(s).
Release UE's logical channel(s) in the MAC scheduler. A logical channel can only be released if it has been configured previously.
params | UE's logical channel(s) to be released |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Configure single UE.
(Re-)configure MAC scheduler with single UE specific parameters. A UE can only be configured when a cell configuration has been received.
params | UE configuration |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Release UE.
Release a UE in the MAC scheduler. The release of the UE configuration implies the release of LCs, which are still active. A UE can only be released if it has been configured previously.
params | UE to be released |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Provides CQI measurement report information to the scheduler.
params | DL CQI information |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
RACH information.
params | SchedDlRachInfoReqParameters |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
DoSchedDlRlcBufferReq.
Update buffer status of logical channel data in RLC. The update rate with which the buffer status is updated in the scheduler is outside of the scope of the document.
params | RLC Buffer status |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Request for scheduling a slot in DL.
params | DL HARQ information |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
|
pure virtual |
Provides UL CQI measurement information to the scheduler.
params | UL CQI information |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Provides mac control information (power headroom, ul buffer status) to the scheduler.
params | MAC control information received |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
One or more UE asked to be scheduled in UL.
params | SR information |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Request for scheduling a slot in UL.
params | UL HARQ information |
Implemented in ns3::NrMacSchedulerNs3.
|
pure virtual |
Retrieve the number of DL ctrl symbols configured in the scheduler.
Implemented in ns3::NrMacSchedulerNs3.
|
inline |
Get the MacCschedSapProvider pointer.
Definition at line 73 of file nr-mac-scheduler.h.
References m_macCschedSapProvider.
|
inline |
Get the MacSchedSapProvider pointer.
Definition at line 55 of file nr-mac-scheduler.h.
References m_macSchedSapProvider.
|
static |
Get the type id.
Definition at line 140 of file nr-mac-scheduler.cc.
|
pure virtual |
Retrieve the number of UL ctrl symbols configured in the scheduler.
Implemented in ns3::NrMacSchedulerNs3.
|
inline |
SetMacCschedSapUser.
sap | the pointer to the sap user |
Definition at line 64 of file nr-mac-scheduler.h.
References m_macCschedSapUser.
|
inline |
Set the MacSchedSapUser pointer.
sap | pointer to the mac sched sap user class |
Definition at line 46 of file nr-mac-scheduler.h.
References m_macSchedSapUser.
|
protected |
SAP Provider.
Definition at line 242 of file nr-mac-scheduler.h.
Referenced by NrMacScheduler(), ~NrMacScheduler(), and GetMacCschedSapProvider().
|
protected |
SAP User.
Definition at line 241 of file nr-mac-scheduler.h.
Referenced by ns3::NrMacSchedulerNs3::DoCschedCellConfigReq(), and SetMacCschedSapUser().
|
protected |
SAP Provider.
Definition at line 243 of file nr-mac-scheduler.h.
Referenced by NrMacScheduler(), ~NrMacScheduler(), and GetMacSchedSapProvider().
|
protected |
SAP user.
Definition at line 240 of file nr-mac-scheduler.h.
Referenced by ns3::NrMacSchedulerNs3::DoCschedUeConfigReq(), ns3::NrMacSchedulerNs3::DoSchedDlCqiInfoReq(), ns3::NrMacSchedulerNs3::DoSchedUlCqiInfoReq(), ns3::NrMacSchedulerNs3::GetBwpId(), ns3::NrMacSchedulerNs3::GetCellId(), ns3::NrMacSchedulerNs3::GetNumRbPerRbg(), and SetMacSchedSapUser().