5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
|
The base for all the TDMA schedulers. More...
#include "nr-mac-scheduler-tdma.h"
Public Member Functions | |
NrMacSchedulerTdma () | |
NrMacSchedulerTdma constructor. | |
~NrMacSchedulerTdma () override | |
NrMacSchedulerTdma deconstructor. | |
Public Member Functions inherited from ns3::NrMacSchedulerNs3 | |
NrMacSchedulerNs3 () | |
NrMacSchedulerNs3 default constructor. | |
NrMacSchedulerNs3 (const NrMacSchedulerNs3 &other)=delete | |
NrMacSchedulerNs3 copy constructor (deleted) | |
~NrMacSchedulerNs3 () override | |
NrMacSchedulerNs3 deconstructor. | |
int64_t | AssignStreams (int64_t stream) override |
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. | |
void | DoCschedCellConfigReq (const NrMacCschedSapProvider::CschedCellConfigReqParameters ¶ms) override |
Cell configuration. | |
void | DoCschedLcConfigReq (const NrMacCschedSapProvider::CschedLcConfigReqParameters ¶ms) override |
Configure a logical channel for a UE. | |
void | DoCschedLcReleaseReq (const NrMacCschedSapProvider::CschedLcReleaseReqParameters ¶ms) override |
Release a LC. | |
void | DoCschedUeConfigReq (const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) override |
Register an UE. | |
void | DoCschedUeReleaseReq (const NrMacCschedSapProvider::CschedUeReleaseReqParameters ¶ms) override |
Release an UE. | |
void | DoSchedDlCqiInfoReq (const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms) override |
Received a DL CQI message. | |
void | DoSchedDlRachInfoReq (const NrMacSchedSapProvider::SchedDlRachInfoReqParameters ¶ms) override |
RACH information. | |
void | DoSchedDlRlcBufferReq (const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters ¶ms) override |
RLC informs of DL data. | |
void | DoSchedDlTriggerReq (const NrMacSchedSapProvider::SchedDlTriggerReqParameters ¶ms) override |
Decide how to fill the frequency/time of a DL slot. | |
void | DoSchedSetMcs (uint32_t mcs) override |
Set a fixed MCS. | |
void | DoSchedUlCqiInfoReq (const NrMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms) override |
Received a UL CQI message. | |
void | DoSchedUlMacCtrlInfoReq (const NrMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ¶ms) override |
Evaluate different types of control messages (only BSR for the moment) | |
void | DoSchedUlSrInfoReq (const NrMacSchedSapProvider::SchedUlSrInfoReqParameters ¶ms) override |
Save the SR list into m_srList. | |
void | DoSchedUlTriggerReq (const NrMacSchedSapProvider::SchedUlTriggerReqParameters ¶ms) override |
Decide how to fill the frequency/time of a UL slot. | |
void | EnableHarqReTx (bool enableFlag) |
Enable HARQ ReTx function. | |
Time | GetCqiTimerThreshold () const |
Get the CqiTimerThreshold. | |
Ptr< const NrAmc > | GetDlAmc () const |
Get the AMC for DL. | |
uint8_t | GetDlCtrlSyms () const override |
Retrieve the number of DL ctrl symbols configured in the scheduler. | |
std::vector< uint8_t > | GetDlNotchedRbgMask () const |
Get the notched (blank) RBGs Mask for the DL. | |
int8_t | GetMaxDlMcs () const |
Get the maximum DL MCS index. | |
uint8_t | GetSrsCtrlSyms () const |
Get the configured value for the SRS symbols. | |
uint8_t | GetStartMcsDl () const |
Get the DL MCS starting value. | |
uint8_t | GetStartMcsUl () const |
Get the DL MCS starting value. | |
Ptr< const NrAmc > | GetUlAmc () const |
Get the AMC for UL. | |
uint8_t | GetUlCtrlSyms () const override |
Retrieve the number of UL ctrl symbols configured in the scheduler. | |
std::vector< uint8_t > | GetUlNotchedRbgMask () const |
Get the notched (blank) RBGs Mask for the UL. | |
void | InstallDlAmc (const Ptr< NrAmc > &dlAmc) |
Install the AMC for the DL part. | |
void | InstallUlAmc (const Ptr< NrAmc > &ulAmc) |
Install the AMC for the DL part. | |
bool | IsDlMcsFixed () const |
Check if the MCS in DL is fixed. | |
bool | IsHarqReTxEnable () const |
Is HARQ ReTx enable function. | |
bool | IsSrsInFSlots () const |
Check if the F slots are allowed for SRS transmission. | |
bool | IsSrsInUlSlots () const |
Check if the UL slots are allowed for SRS transmission. | |
bool | IsUlMcsFixed () const |
Check if the MCS in UL is fixed. | |
void | SetCqiTimerThreshold (const Time &v) |
Set the CqiTimerThreshold. | |
void | SetDlCtrlSyms (uint8_t v) |
Set the number of DL ctrl symbols. | |
void | SetDlNotchedRbgMask (const std::vector< uint8_t > &dlNotchedRbgsMask) |
Set the notched (blank) RBGs Mask for the DL. | |
void | SetFixedDlMcs (bool v) |
Set if the MCS in DL is fixed (in case, it will take the starting value) | |
void | SetFixedUlMcs (bool v) |
Set if the MCS in UL is fixed (in case, it will take the starting value) | |
void | SetLcSched (const TypeId &type) |
Set LC Scheduler Algorithm model type. | |
void | SetMaxDlMcs (int8_t v) |
Set the maximum index for the DL MCS. | |
void | SetRachUlGrantMcs (uint8_t v) |
Sets the default RACH UL grant MCS. | |
void | SetSrsCtrlSyms (uint8_t v) |
Set the number of UL SRS symbols. | |
void | SetSrsInFSlots (bool v) |
Set if the F slots are allowed for SRS transmission. | |
void | SetSrsInUlSlots (bool v) |
Set if the UL slots are allowed for SRS transmission (if True, UL and F slots may carry SRS, if False, SRS are transmitted only in F slots) | |
void | SetStartMcsDl (uint8_t v) |
Set the starting value for the DL MCS. | |
void | SetStartMcsUl (uint8_t v) |
Set the starting value for the UL MCS. | |
void | SetUlCtrlSyms (uint8_t v) |
Set the number of UL ctrl symbols. | |
void | SetUlNotchedRbgMask (const std::vector< uint8_t > &ulNotchedRbgsMask) |
Set the notched (blank) RBGs Mask for the UL. | |
Public Member Functions inherited from ns3::NrMacScheduler | |
NrMacScheduler () | |
NrMacScheduler constructor. | |
~NrMacScheduler () override | |
NrMacScheduler deconstructor. | |
NrMacCschedSapProvider * | GetMacCschedSapProvider () |
Get the MacCschedSapProvider pointer. | |
NrMacSchedSapProvider * | GetMacSchedSapProvider () |
Get the MacSchedSapProvider pointer. | |
void | SetMacCschedSapUser (NrMacCschedSapUser *sap) |
SetMacCschedSapUser. | |
void | SetMacSchedSapUser (NrMacSchedSapUser *sap) |
Set the MacSchedSapUser pointer. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
GetTypeId. | |
Static Public Member Functions inherited from ns3::NrMacSchedulerNs3 | |
static TypeId | GetTypeId () |
GetTypeId. | |
Static Public Member Functions inherited from ns3::NrMacScheduler | |
static TypeId | GetTypeId () |
Get the type id. | |
Protected Member Functions | |
BeamSymbolMap | AssignDLRBG (uint32_t symAvail, const ActiveUeMap &activeDl) const override |
Assign the available DL RBG to the UEs. | |
virtual void | AssignedDlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totalAssigned) const =0 |
Update the UE representation after a symbol (DL) has been assigned to it. | |
virtual void | AssignedUlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totalAssigned) const =0 |
Update the UE representation after a symbol (DL) has been assigned to it. | |
BeamSymbolMap | AssignULRBG (uint32_t symAvail, const ActiveUeMap &activeUl) const override |
Assign the available UL RBG to the UEs. | |
virtual void | BeforeDlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const =0 |
Prepare UE for the DL scheduling. | |
virtual void | BeforeUlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const =0 |
Prepare UE for the UL scheduling. | |
void | ChangeDlBeam (PointInFTPlane *spoint, uint32_t symOfBeam) const override |
Not doing anything, moving forward the spoint is done by CreateDci. | |
void | ChangeUlBeam (PointInFTPlane *spoint, uint32_t symOfBeam) const override |
Not doing anything, moving forward the spoint is done by CreateDci. | |
std::shared_ptr< DciInfoElementTdma > | CreateDlDci (PointInFTPlane *spoint, const std::shared_ptr< NrMacSchedulerUeInfo > &ueInfo, uint32_t maxSym) const override |
Create a DL DCI starting from spoint and spanning maxSym symbols. | |
std::shared_ptr< DciInfoElementTdma > | CreateUlDci (PointInFTPlane *spoint, const std::shared_ptr< NrMacSchedulerUeInfo > &ueInfo, uint32_t maxSym) const override |
Create a UL DCI starting from spoint and spanning maxSym symbols. | |
uint8_t | GetTpc () const override |
Returns TPC command. | |
virtual std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareDlFn () const =0 |
Provide the comparison function to order the UE when scheduling DL. | |
virtual std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareUlFn () const =0 |
Provide the comparison function to order the UE when scheduling UL. | |
virtual void | NotAssignedDlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totalAssigned) const =0 |
Update the UE representation after a symbol (DL) has been assigned to other UE. | |
virtual void | NotAssignedUlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totalAssigned) const =0 |
Update the UE representation after a symbol (UL) has been assigned to other UE. | |
Protected Member Functions inherited from ns3::NrMacSchedulerNs3 | |
virtual LCPtr | CreateLC (const nr::LogicalChannelConfigListElement_s &config) const |
Create a logical channel starting from a configuration. | |
virtual LCGPtr | CreateLCG (const nr::LogicalChannelConfigListElement_s &config) const |
Create a logical channel group starting from a configuration. | |
virtual std::shared_ptr< NrMacSchedulerUeInfo > | CreateUeRepresentation (const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) const =0 |
Create an UE representation for the scheduler. | |
uint16_t | GetBandwidthInRbg () const |
uint16_t | GetBwpId () const |
Get the bwp id of this MAC. | |
uint16_t | GetCellId () const |
Get the cell id of this MAC. | |
uint64_t | GetNumRbPerRbg () const |
Private function that is used to get the number of resource blocks per resource block group and also to check whether this value is configured. | |
virtual uint8_t | ScheduleDlHarq (NrMacSchedulerNs3::PointInFTPlane *startingPoint, uint8_t symAvail, const ActiveHarqMap &activeDlHarq, const std::unordered_map< uint16_t, UePtr > &ueMap, std::vector< DlHarqInfo > *dlHarqToRetransmit, const std::vector< DlHarqInfo > &dlHarqFeedback, SlotAllocInfo *slotAlloc) const |
Giving the input, append to slotAlloc the allocations for the DL HARQ retransmissions. | |
virtual uint8_t | ScheduleUlHarq (NrMacSchedulerNs3::PointInFTPlane *startingPoint, uint8_t symAvail, const std::unordered_map< uint16_t, UePtr > &ueMap, std::vector< UlHarqInfo > *ulHarqToRetransmit, const std::vector< UlHarqInfo > &ulHarqFeedback, SlotAllocInfo *slotAlloc) const |
Giving the input, append to slotAlloc the allocations for the DL HARQ retransmissions. | |
virtual void | SortDlHarq (ActiveHarqMap *activeDlHarq) const |
Sort the DL HARQ retransmission. | |
virtual void | SortUlHarq (ActiveHarqMap *activeUlHarq) const |
Sort the UL HARQ retransmission. | |
Additional Inherited Members | |
Public Types inherited from ns3::NrMacSchedulerNs3 | |
typedef std::unordered_map< BeamId, HarqVectorIteratorList, BeamIdHash > | ActiveHarqMap |
Map between a beamID and the HARQ of that beam. | |
typedef std::unordered_map< BeamId, std::vector< UePtrAndBufferReq >, BeamIdHash > | ActiveUeMap |
Map between a BeamId and a vector of UE (the UE are in that beam) | |
typedef std::unordered_map< BeamId, uint32_t, BeamIdHash > | BeamSymbolMap |
Map between a BeamId and the symbol assigned to that beam. | |
typedef PointInFTPlane | FTResources |
Represent an amount of RBG/symbols that can be, or is, assigned. | |
using | HarqVectorIterator = NrMacHarqVector::iterator |
using | HarqVectorIteratorList = std::vector< HarqVectorIterator > |
typedef std::pair< UePtr, uint32_t > | UePtrAndBufferReq |
Pair between a pointer to NrMacSchedulerUeInfo and its buffer occupancy. | |
Protected Attributes inherited from ns3::NrMacSchedulerNs3 | |
Ptr< NrAmc > | m_dlAmc |
AMC pointer. | |
Ptr< NrAmc > | m_ulAmc |
AMC pointer. | |
Protected Attributes inherited from ns3::NrMacScheduler | |
NrMacCschedSapProvider * | m_macCschedSapProvider {nullptr} |
SAP Provider. | |
NrMacCschedSapUser * | m_macCschedSapUser {nullptr} |
SAP User. | |
NrMacSchedSapProvider * | m_macSchedSapProvider {nullptr} |
SAP Provider. | |
NrMacSchedSapUser * | m_macSchedSapUser {nullptr} |
SAP user. | |
The base for all the TDMA schedulers.
An example of TDMA-based scheduling is the following:
(f) ^ |=|===|===|===|===|=| |C| U | U | U | U |C| |T| E | E | E | E |T| |R| | | | |R| |L| 1 | 2 | 3 | 4 |L| |----------------------------> (t)
The UEs are scheduled by prioritizing the assignment of symbols: the entire available spectrum is assigned, for a number of symbols that depend on the LC byte requirements.
In order to construct a slot like the previous one, the class defines a general algorithm, based on top of NrMacSchedulerNs3, to know how many, and what, UEs to schedule. The NrMacSchedulerNs3::ScheduleDl function needs three information that should be provided by the subclasses, to answer the following three questions:
The first two are answered by the methods AssignDLRBG() and AssignULRBG(). The choice of what UE should be scheduled, and their order, is demanded to the subclasses. For more information, please refer to the methods documentation.
Subclasses should also implement what actions should be done before any assignment (NrMacSchedulerTdma::BeforeDlSched and NrMacSchedulerTdma::BeforeUlSched) as well as what to do after a symbol has been assigned (for the UE that got that symbols, and the UE that did not).
The last one is answered by CreateDlDci() or CreateUlDci(), which call CreateDci() to perform the "hard" work.
ns3::NrMacSchedulerTdma is accessible through the following paths with Config::Set and Config::Connect:
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdma
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdma
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 616 bytes (on a 64-bit architecture).
Definition at line 62 of file nr-mac-scheduler-tdma.h.
ns3::NrMacSchedulerTdma::NrMacSchedulerTdma | ( | ) |
NrMacSchedulerTdma constructor.
Definition at line 31 of file nr-mac-scheduler-tdma.cc.
|
override |
NrMacSchedulerTdma deconstructor.
Definition at line 35 of file nr-mac-scheduler-tdma.cc.
|
overrideprotectedvirtual |
Assign the available DL RBG to the UEs.
symAvail | Number of available symbols |
activeDl | active DL flows and UE |
The function will prepare all the needed callbacks to return UE DL parameters (e.g., the DL TBS, the DL RBG) and then will call NrMacSchedulerTdma::AssignRBGTDMA.
Implements ns3::NrMacSchedulerNs3.
Definition at line 223 of file nr-mac-scheduler-tdma.cc.
References AssignedDlResources(), BeforeDlSched(), ns3::NrMacSchedulerUeInfo::GetDlRBG(), ns3::NrMacSchedulerUeInfo::GetDlSym(), ns3::NrMacSchedulerUeInfo::GetDlTBS(), GetUeCompareDlFn(), and NotAssignedDlResources().
|
protectedpure virtual |
Update the UE representation after a symbol (DL) has been assigned to it.
ue | UE to which a symbol has been assigned |
assigned | the amount of resources assigned |
totalAssigned | the amount of total resources assigned until now |
After an UE is selected to be eligible for a symbol assignment, its representation should be updated. The subclasses, by implementing this method, update the representation by updating some custom values that reflect the assignment done. These values are the one that, hopefully, are checked by the comparison function returned by GetUeCompareDlFn().
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignDLRBG(), and AssignDLRBG().
|
protectedpure virtual |
Update the UE representation after a symbol (DL) has been assigned to it.
ue | UE to which a symbol has been assigned |
assigned | the amount of resources assigned |
totalAssigned | the amount of total resources assigned until now |
After an UE is selected to be eligible for a symbol assignment, its representation should be updated. The subclasses, by implementing this method, update the representation by updating some custom values that reflect the assignment done. These values are the one that, hopefully, are checked by the comparison function returned by GetUeCompareUelFn().
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignULRBG(), and AssignULRBG().
|
overrideprotectedvirtual |
Assign the available UL RBG to the UEs.
symAvail | Number of available symbols |
activeUl | active DL flows and UE |
The function will prepare all the needed callbacks to return UE UL parameters (e.g., the UL TBS, the UL RBG) and then will call NrMacSchedulerTdma::AssignRBGTDMA.
Implements ns3::NrMacSchedulerNs3.
Definition at line 269 of file nr-mac-scheduler-tdma.cc.
References AssignedUlResources(), BeforeUlSched(), GetUeCompareUlFn(), ns3::NrMacSchedulerUeInfo::GetUlRBG(), ns3::NrMacSchedulerUeInfo::GetUlSym(), ns3::NrMacSchedulerUeInfo::GetUlTBS(), and NotAssignedUlResources().
|
protectedpure virtual |
Prepare UE for the DL scheduling.
ue | UE that is eligible for an assignation in any iteration round |
assignableInIteration | Resources that can be assigned in each iteration |
The default implementation is empty, but a subclass can specialize the behaviour, e.g., to calculate some value before the choice of RBG to assign to each UE is done.
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignDLRBG(), and AssignDLRBG().
|
protectedpure virtual |
Prepare UE for the UL scheduling.
ue | UE that is eligible for an assignation in any iteration round |
assignableInIteration | Resources that can be assigned in each iteration |
The default implementation is empty, but a subclass can specialize the behaviour, e.g., to calculate some value before the choice of RBG to assign to each UE is done.
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignULRBG(), and AssignULRBG().
|
inlineoverrideprotectedvirtual |
Not doing anything, moving forward the spoint is done by CreateDci.
spoint | Starting point |
symOfBeam | the number of symbols assigned to the beam |
Implements ns3::NrMacSchedulerNs3.
Definition at line 98 of file nr-mac-scheduler-tdma.h.
|
inlineoverrideprotectedvirtual |
Not doing anything, moving forward the spoint is done by CreateDci.
spoint | Starting point |
symOfBeam | the number of symbols assigned to the beam |
Implements ns3::NrMacSchedulerNs3.
Definition at line 108 of file nr-mac-scheduler-tdma.h.
|
overrideprotectedvirtual |
Create a DL DCI starting from spoint and spanning maxSym symbols.
spoint | Starting point of the DCI |
ueInfo | UE representation |
maxSym | Maximum number of symbols for the creation of the DCI |
The method calculates the TBS and the real number of symbols needed, and then call CreateDci().
Implements ns3::NrMacSchedulerNs3.
Definition at line 314 of file nr-mac-scheduler-tdma.cc.
References ns3::DciInfoElementTdma::DL, ns3::NrMacSchedulerNs3::GetBandwidthInRbg(), ns3::NrMacSchedulerNs3::GetDlNotchedRbgMask(), ns3::NrMacSchedulerNs3::GetNumRbPerRbg(), ns3::NrMacSchedulerNs3::m_dlAmc, ns3::NrMacSchedulerNs3::PointInFTPlane::m_rbg, and ns3::NrMacSchedulerNs3::PointInFTPlane::m_sym.
|
overrideprotectedvirtual |
Create a UL DCI starting from spoint and spanning maxSym symbols.
spoint | Starting point of the DCI |
ueInfo | UE representation |
The method calculates the TBS and the real number of symbols needed, and then call CreateDci(). Allocate the DCI going backward from the starting point (it should be called ending point maybe).
Implements ns3::NrMacSchedulerNs3.
Definition at line 366 of file nr-mac-scheduler-tdma.cc.
References ns3::NrMacSchedulerNs3::GetBandwidthInRbg(), ns3::NrMacSchedulerNs3::GetNumRbPerRbg(), ns3::NrMacSchedulerNs3::GetUlNotchedRbgMask(), ns3::NrMacSchedulerNs3::PointInFTPlane::m_rbg, ns3::NrMacSchedulerNs3::PointInFTPlane::m_sym, ns3::NrMacSchedulerNs3::m_ulAmc, and ns3::DciInfoElementTdma::UL.
|
overrideprotectedvirtual |
Returns TPC command.
Implements ns3::NrMacSchedulerNs3.
Definition at line 413 of file nr-mac-scheduler-tdma.cc.
|
static |
|
protectedpure virtual |
Provide the comparison function to order the UE when scheduling DL.
Implemented in ns3::NrMacSchedulerOfdmaMR, ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaMR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignDLRBG(), and AssignDLRBG().
|
protectedpure virtual |
Provide the comparison function to order the UE when scheduling UL.
Implemented in ns3::NrMacSchedulerOfdmaMR, ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaMR, ns3::NrMacSchedulerTdmaPF, ns3::NrMacSchedulerTdmaQos, and ns3::NrMacSchedulerTdmaRR.
Referenced by ns3::NrMacSchedulerOfdma::AssignULRBG(), and AssignULRBG().
|
protectedpure virtual |
Update the UE representation after a symbol (DL) has been assigned to other UE.
ue | UE to which a symbol has not been assigned |
notAssigned | the amount of resources not assigned |
totalAssigned | the amount of total resources assigned until now |
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaRR, ns3::NrMacSchedulerTdmaPF, and ns3::NrMacSchedulerTdmaQos.
Referenced by ns3::NrMacSchedulerOfdma::AssignDLRBG(), and AssignDLRBG().
|
protectedpure virtual |
Update the UE representation after a symbol (UL) has been assigned to other UE.
ue | UE to which a symbol has not been assigned |
notAssigned | the amount of resources not assigned |
totalAssigned | the amount of total resources assigned until now |
Implemented in ns3::NrMacSchedulerOfdmaPF, ns3::NrMacSchedulerOfdmaQos, ns3::NrMacSchedulerOfdmaRR, ns3::NrMacSchedulerTdmaRR, ns3::NrMacSchedulerTdmaPF, and ns3::NrMacSchedulerTdmaQos.
Referenced by ns3::NrMacSchedulerOfdma::AssignULRBG(), and AssignULRBG().