5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrMacScheduler Class Referenceabstract

Interface for all the nr schedulers. More...

#include "nr-mac-scheduler.h"

+ Inheritance diagram for ns3::NrMacScheduler:
+ Collaboration diagram for ns3::NrMacScheduler:

Public Member Functions

 NrMacScheduler ()
 NrMacScheduler constructor.
 
 ~NrMacScheduler () override
 NrMacScheduler deconstructor.
 
virtual int64_t AssignStreams (int64_t stream)=0
 
virtual void DoCschedCellConfigReq (const NrMacCschedSapProvider::CschedCellConfigReqParameters &params)=0
 Configure cell.
 
virtual void DoCschedLcConfigReq (const NrMacCschedSapProvider::CschedLcConfigReqParameters &params)=0
 Configure UE's logical channel(s).
 
virtual void DoCschedLcReleaseReq (const NrMacCschedSapProvider::CschedLcReleaseReqParameters &params)=0
 Release UE's logical channel(s).
 
virtual void DoCschedUeConfigReq (const NrMacCschedSapProvider::CschedUeConfigReqParameters &params)=0
 Configure single UE.
 
virtual void DoCschedUeReleaseReq (const NrMacCschedSapProvider::CschedUeReleaseReqParameters &params)=0
 Release UE.
 
virtual void DoSchedDlCqiInfoReq (const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters &params)=0
 Provides CQI measurement report information to the scheduler.
 
virtual void DoSchedDlRachInfoReq (const NrMacSchedSapProvider::SchedDlRachInfoReqParameters &params)=0
 RACH information.
 
virtual void DoSchedDlRlcBufferReq (const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters &params)=0
 DoSchedDlRlcBufferReq.
 
virtual void DoSchedDlTriggerReq (const NrMacSchedSapProvider::SchedDlTriggerReqParameters &params)=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 &params)=0
 Provides UL CQI measurement information to the scheduler.
 
virtual void DoSchedUlMacCtrlInfoReq (const NrMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters &params)=0
 Provides mac control information (power headroom, ul buffer status) to the scheduler.
 
virtual void DoSchedUlSrInfoReq (const NrMacSchedSapProvider::SchedUlSrInfoReqParameters &params)=0
 One or more UE asked to be scheduled in UL.
 
virtual void DoSchedUlTriggerReq (const NrMacSchedSapProvider::SchedUlTriggerReqParameters &params)=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.
 
NrMacCschedSapProviderGetMacCschedSapProvider ()
 Get the MacCschedSapProvider pointer.
 
NrMacSchedSapProviderGetMacSchedSapProvider ()
 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

NrMacCschedSapProviderm_macCschedSapProvider {nullptr}
 SAP Provider.
 
NrMacCschedSapUserm_macCschedSapUser {nullptr}
 SAP User.
 
NrMacSchedSapProviderm_macSchedSapProvider {nullptr}
 SAP Provider.
 
NrMacSchedSapUserm_macSchedSapUser {nullptr}
 SAP user.
 

Detailed Description

Interface for all the nr schedulers.

TODO: Add description of SAP user/providers

See also
NrMacSchedulerNs3

Config Paths

ns3::NrMacScheduler is accessible through the following paths with Config::Set and Config::Connect:

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.

Constructor & Destructor Documentation

◆ NrMacScheduler()

ns3::NrMacScheduler::NrMacScheduler ( )

NrMacScheduler constructor.

Definition at line 147 of file nr-mac-scheduler.cc.

References m_macCschedSapProvider, and m_macSchedSapProvider.

◆ ~NrMacScheduler()

ns3::NrMacScheduler::~NrMacScheduler ( )
override

NrMacScheduler deconstructor.

Definition at line 154 of file nr-mac-scheduler.cc.

References m_macCschedSapProvider, and m_macSchedSapProvider.

Member Function Documentation

◆ AssignStreams()

virtual int64_t ns3::NrMacScheduler::AssignStreams ( int64_t  stream)
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.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Implemented in ns3::NrMacSchedulerNs3.

◆ DoCschedCellConfigReq()

virtual void ns3::NrMacScheduler::DoCschedCellConfigReq ( const NrMacCschedSapProvider::CschedCellConfigReqParameters params)
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.

Parameters
paramsCell configuration

Implemented in ns3::NrMacSchedulerNs3.

◆ DoCschedLcConfigReq()

virtual void ns3::NrMacScheduler::DoCschedLcConfigReq ( const NrMacCschedSapProvider::CschedLcConfigReqParameters params)
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.

Parameters
paramsUE's logical channel configuration

Implemented in ns3::NrMacSchedulerNs3.

◆ DoCschedLcReleaseReq()

virtual void ns3::NrMacScheduler::DoCschedLcReleaseReq ( const NrMacCschedSapProvider::CschedLcReleaseReqParameters params)
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.

Parameters
paramsUE's logical channel(s) to be released

Implemented in ns3::NrMacSchedulerNs3.

◆ DoCschedUeConfigReq()

virtual void ns3::NrMacScheduler::DoCschedUeConfigReq ( const NrMacCschedSapProvider::CschedUeConfigReqParameters params)
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.

Parameters
paramsUE configuration

Implemented in ns3::NrMacSchedulerNs3.

◆ DoCschedUeReleaseReq()

virtual void ns3::NrMacScheduler::DoCschedUeReleaseReq ( const NrMacCschedSapProvider::CschedUeReleaseReqParameters params)
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.

Parameters
paramsUE to be released

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedDlCqiInfoReq()

virtual void ns3::NrMacScheduler::DoSchedDlCqiInfoReq ( const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters params)
pure virtual

Provides CQI measurement report information to the scheduler.

Parameters
paramsDL CQI information

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedDlRachInfoReq()

virtual void ns3::NrMacScheduler::DoSchedDlRachInfoReq ( const NrMacSchedSapProvider::SchedDlRachInfoReqParameters params)
pure virtual

RACH information.

Parameters
paramsSchedDlRachInfoReqParameters

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedDlRlcBufferReq()

virtual void ns3::NrMacScheduler::DoSchedDlRlcBufferReq ( const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters params)
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.

Parameters
paramsRLC Buffer status

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedDlTriggerReq()

virtual void ns3::NrMacScheduler::DoSchedDlTriggerReq ( const NrMacSchedSapProvider::SchedDlTriggerReqParameters params)
pure virtual

Request for scheduling a slot in DL.

Parameters
paramsDL HARQ information

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedSetMcs()

virtual void ns3::NrMacScheduler::DoSchedSetMcs ( uint32_t  mcs)
pure virtual

Forcefully set a default MCS.

Parameters
mcsMCS

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedUlCqiInfoReq()

virtual void ns3::NrMacScheduler::DoSchedUlCqiInfoReq ( const NrMacSchedSapProvider::SchedUlCqiInfoReqParameters params)
pure virtual

Provides UL CQI measurement information to the scheduler.

Parameters
paramsUL CQI information

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedUlMacCtrlInfoReq()

virtual void ns3::NrMacScheduler::DoSchedUlMacCtrlInfoReq ( const NrMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters params)
pure virtual

Provides mac control information (power headroom, ul buffer status) to the scheduler.

Parameters
paramsMAC control information received

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedUlSrInfoReq()

virtual void ns3::NrMacScheduler::DoSchedUlSrInfoReq ( const NrMacSchedSapProvider::SchedUlSrInfoReqParameters params)
pure virtual

One or more UE asked to be scheduled in UL.

Parameters
paramsSR information

Implemented in ns3::NrMacSchedulerNs3.

◆ DoSchedUlTriggerReq()

virtual void ns3::NrMacScheduler::DoSchedUlTriggerReq ( const NrMacSchedSapProvider::SchedUlTriggerReqParameters params)
pure virtual

Request for scheduling a slot in UL.

Parameters
paramsUL HARQ information

Implemented in ns3::NrMacSchedulerNs3.

◆ GetDlCtrlSyms()

virtual uint8_t ns3::NrMacScheduler::GetDlCtrlSyms ( ) const
pure virtual

Retrieve the number of DL ctrl symbols configured in the scheduler.

Returns
the number of DL ctrl symbols

Implemented in ns3::NrMacSchedulerNs3.

◆ GetMacCschedSapProvider()

NrMacCschedSapProvider * ns3::NrMacScheduler::GetMacCschedSapProvider ( )
inline

Get the MacCschedSapProvider pointer.

Returns
the pointer to the sap provider

Definition at line 73 of file nr-mac-scheduler.h.

References m_macCschedSapProvider.

◆ GetMacSchedSapProvider()

NrMacSchedSapProvider * ns3::NrMacScheduler::GetMacSchedSapProvider ( )
inline

Get the MacSchedSapProvider pointer.

Returns
the pointer to the mac sched sap provider class

Definition at line 55 of file nr-mac-scheduler.h.

References m_macSchedSapProvider.

◆ GetTypeId()

TypeId ns3::NrMacScheduler::GetTypeId ( )
static

Get the type id.

Returns
the type id of the class

Definition at line 140 of file nr-mac-scheduler.cc.

◆ GetUlCtrlSyms()

virtual uint8_t ns3::NrMacScheduler::GetUlCtrlSyms ( ) const
pure virtual

Retrieve the number of UL ctrl symbols configured in the scheduler.

Returns
the number of UL ctrl symbols

Implemented in ns3::NrMacSchedulerNs3.

◆ SetMacCschedSapUser()

void ns3::NrMacScheduler::SetMacCschedSapUser ( NrMacCschedSapUser sap)
inline

SetMacCschedSapUser.

Parameters
sapthe pointer to the sap user

Definition at line 64 of file nr-mac-scheduler.h.

References m_macCschedSapUser.

◆ SetMacSchedSapUser()

void ns3::NrMacScheduler::SetMacSchedSapUser ( NrMacSchedSapUser sap)
inline

Set the MacSchedSapUser pointer.

Parameters
sappointer to the mac sched sap user class

Definition at line 46 of file nr-mac-scheduler.h.

References m_macSchedSapUser.

Member Data Documentation

◆ m_macCschedSapProvider

NrMacCschedSapProvider* ns3::NrMacScheduler::m_macCschedSapProvider {nullptr}
protected

SAP Provider.

Definition at line 242 of file nr-mac-scheduler.h.

Referenced by NrMacScheduler(), ~NrMacScheduler(), and GetMacCschedSapProvider().

◆ m_macCschedSapUser

NrMacCschedSapUser* ns3::NrMacScheduler::m_macCschedSapUser {nullptr}
protected

SAP User.

Definition at line 241 of file nr-mac-scheduler.h.

Referenced by ns3::NrMacSchedulerNs3::DoCschedCellConfigReq(), and SetMacCschedSapUser().

◆ m_macSchedSapProvider

NrMacSchedSapProvider* ns3::NrMacScheduler::m_macSchedSapProvider {nullptr}
protected

SAP Provider.

Definition at line 243 of file nr-mac-scheduler.h.

Referenced by NrMacScheduler(), ~NrMacScheduler(), and GetMacSchedSapProvider().

◆ m_macSchedSapUser


The documentation for this class was generated from the following files: