5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
|
Assign entire symbols in a proportional fair fashion. More...
#include "nr-mac-scheduler-tdma-pf.h"
Public Member Functions | |
NrMacSchedulerTdmaPF () | |
NrMacSchedulerTdmaPF constructor. | |
~NrMacSchedulerTdmaPF () override | |
~NrMacSchedulerTdmaPF deconstructor | |
double | GetFairnessIndex () const |
Get the value of attribute "FairnessIndex". | |
double | GetTimeWindow () const |
Get the attribute "LastAvgTPutWeight". | |
void | SetFairnessIndex (double v) |
Set the value of attribute "FairnessIndex". | |
void | SetTimeWindow (double v) |
Set the attribute "LastAvgTPutWeight". | |
Public Member Functions inherited from ns3::NrMacSchedulerTdmaRR | |
NrMacSchedulerTdmaRR () | |
NrMacSchedulerTdmaRR constructor. | |
~NrMacSchedulerTdmaRR () override | |
~NrMacSchedulerTdmaRR deconstructor | |
Public Member Functions inherited from ns3::NrMacSchedulerTdma | |
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::NrMacSchedulerTdmaRR | |
static TypeId | GetTypeId () |
GetTypeId. | |
Static Public Member Functions inherited from ns3::NrMacSchedulerTdma | |
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 | |
void | AssignedDlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totAssigned) const override |
Update DL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFDlMetric. | |
void | AssignedUlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totAssigned) const override |
Update UL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFUlMetric. | |
void | BeforeDlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const override |
Calculate the potential throughput for the DL based on the available resources. | |
void | BeforeUlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const override |
Calculate the potential throughput for the UL based on the available resources. | |
std::shared_ptr< NrMacSchedulerUeInfo > | CreateUeRepresentation (const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) const override |
Create an UE representation of the type NrMacSchedulerUeInfoPF. | |
std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareDlFn () const override |
Return the comparison function to sort DL UE according to the scheduler policy. | |
std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareUlFn () const override |
Return the comparison function to sort UL UE according to the scheduler policy. | |
void | NotAssignedDlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totAssigned) const override |
Update DL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFDlMetric. | |
void | NotAssignedUlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totAssigned) const override |
Update UL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFUlMetric. | |
Protected Member Functions inherited from ns3::NrMacSchedulerTdmaRR | |
void | AssignedDlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totAssigned) const override |
Update the UE representation after a symbol (DL) has been assigned to it. | |
void | AssignedUlResources (const UePtrAndBufferReq &ue, const FTResources &assigned, const FTResources &totAssigned) const override |
Update the UE representation after a symbol (DL) has been assigned to it. | |
void | BeforeDlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const override |
Prepare UE for the DL scheduling. | |
void | BeforeUlSched (const UePtrAndBufferReq &ue, const FTResources &assignableInIteration) const override |
Prepare UE for the UL scheduling. | |
std::shared_ptr< NrMacSchedulerUeInfo > | CreateUeRepresentation (const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) const override |
Create an UE representation of the type NrMacSchedulerUeInfoRR. | |
std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareDlFn () const override |
Return the comparison function to sort DL UE according to the scheduler policy. | |
std::function< bool(const NrMacSchedulerNs3::UePtrAndBufferReq &lhs, const NrMacSchedulerNs3::UePtrAndBufferReq &rhs)> | GetUeCompareUlFn () const override |
Return the comparison function to sort UL UE according to the scheduler policy. | |
void | NotAssignedDlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totalAssigned) const override |
Update the UE representation after a symbol (DL) has been assigned to other UE. | |
void | NotAssignedUlResources (const UePtrAndBufferReq &ue, const FTResources ¬Assigned, const FTResources &totalAssigned) const override |
Update the UE representation after a symbol (UL) has been assigned to other UE. | |
Protected Member Functions inherited from ns3::NrMacSchedulerTdma | |
BeamSymbolMap | AssignDLRBG (uint32_t symAvail, const ActiveUeMap &activeDl) const override |
Assign the available DL RBG to the UEs. | |
BeamSymbolMap | AssignULRBG (uint32_t symAvail, const ActiveUeMap &activeUl) const override |
Assign the available UL RBG to the UEs. | |
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. | |
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. | |
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. | |
Assign entire symbols in a proportional fair fashion.
Sort the UE by their current throughput. Details in the class NrMacSchedulerUeInfoPF.
ns3::NrMacSchedulerTdmaPF 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/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerNs3/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdma/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdmaRR/$ns3::NrMacSchedulerTdmaPF
/NodeList/[i]/DeviceList/[i]/$ns3::NrNetDevice/$ns3::NrGnbNetDevice/BandwidthPartMap/[i]/MacScheduler/$ns3::NrMacSchedulerTdmaPF
No TraceSources are defined for this type.
Size of this type is 632 bytes (on a 64-bit architecture).
Definition at line 18 of file nr-mac-scheduler-tdma-pf.h.
ns3::NrMacSchedulerTdmaPF::NrMacSchedulerTdmaPF | ( | ) |
NrMacSchedulerTdmaPF constructor.
Definition at line 44 of file nr-mac-scheduler-tdma-pf.cc.
|
inlineoverride |
~NrMacSchedulerTdmaPF deconstructor
Definition at line 34 of file nr-mac-scheduler-tdma-pf.h.
|
overrideprotectedvirtual |
Update DL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFDlMetric.
ue | UE to update |
assigned | the amount of resources assigned |
totAssigned | the total amount of resources assigned in the slot |
The DL metrics (current Throughput and average Throughput) will be updated by calling the NrMacSchedulerUeInfoPF::UpdateDlPFMetric, which in turn will call NrMacSchedulerUeInfo::UpdateDlMetric in order to get the tbSize based on the resources assigned to the user. This will help the sorting function to sort the UEs for resource allocation.
Implements ns3::NrMacSchedulerTdma.
Definition at line 105 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_dlAmc.
|
overrideprotectedvirtual |
Update UL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFUlMetric.
ue | UE to update |
assigned | the amount of resources assigned |
totAssigned | the total amount of resources assigned in the slot |
The UL metrics (current Throughput and average Throughput) will be updated by calling the NrMacSchedulerUeInfoPF::UpdateUlPFMetric, which in turn will call NrMacSchedulerUeInfo::UpdateUlMetric in order to get the tbSize based on the resources assigned to the user. This will help the sorting function to sort the UEs for resource allocation.
Implements ns3::NrMacSchedulerTdma.
Definition at line 126 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_ulAmc.
|
overrideprotectedvirtual |
Calculate the potential throughput for the DL based on the available resources.
ue | UE to which a symbol has been assigned |
assignableInIteration | the minimum amount of resources to be assigned |
Calculates the the potential throughput by calling NrMacSchedulerUeInfoPF::CalculatePotentialTPutDl.
Implements ns3::NrMacSchedulerTdma.
Definition at line 147 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_dlAmc.
|
overrideprotectedvirtual |
Calculate the potential throughput for the UL based on the available resources.
ue | UE to which a symbol has been assigned |
assignableInIteration | the minimum amount of resources to be assigned |
Calculates the the potential throughput by calling NrMacSchedulerUeInfoPF::CalculatePotentialTPutUl.
Implements ns3::NrMacSchedulerTdma.
Definition at line 156 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_ulAmc.
|
overrideprotectedvirtual |
Create an UE representation of the type NrMacSchedulerUeInfoPF.
params | parameters |
Implements ns3::NrMacSchedulerNs3.
Definition at line 79 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::GetNumRbPerRbg(), and ns3::NrMacCschedSapProvider::CschedUeConfigReqParameters::m_beamId.
double ns3::NrMacSchedulerTdmaPF::GetFairnessIndex | ( | ) | const |
Get the value of attribute "FairnessIndex".
Definition at line 58 of file nr-mac-scheduler-tdma-pf.cc.
Referenced by GetTypeId().
double ns3::NrMacSchedulerTdmaPF::GetTimeWindow | ( | ) | const |
Get the attribute "LastAvgTPutWeight".
Definition at line 72 of file nr-mac-scheduler-tdma-pf.cc.
Referenced by GetTypeId().
|
static |
GetTypeId.
Definition at line 21 of file nr-mac-scheduler-tdma-pf.cc.
References GetFairnessIndex(), GetTimeWindow(), SetFairnessIndex(), and SetTimeWindow().
|
overrideprotectedvirtual |
Return the comparison function to sort DL UE according to the scheduler policy.
Implements ns3::NrMacSchedulerTdma.
Definition at line 92 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerUeInfoPF::CompareUeWeightsDl().
|
overrideprotectedvirtual |
Return the comparison function to sort UL UE according to the scheduler policy.
Implements ns3::NrMacSchedulerTdma.
Definition at line 99 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerUeInfoPF::CompareUeWeightsUl().
|
overrideprotectedvirtual |
Update DL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFDlMetric.
ue | UE to update (ue that didn't get any resources) |
notAssigned | the amount of resources not assigned |
totAssigned | the total amount of resources assigned in the slot |
Even if the UE did not get any resource assigned, change its current throughput over the total number of symbols assigned.
The DL metrics (current Throughput and average Throughput) will be updated by calling the NrMacSchedulerUeInfoPF::UpdateDlPFMetric, which in turn will call NrMacSchedulerUeInfo::UpdateDlMetric in order to get the tbSize based on the resources assigned to the user. Since no resources have been assigned, the tbSize will be zero. This will help the sorting function to sort the UEs for resource allocation.
Implements ns3::NrMacSchedulerTdma.
Definition at line 115 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_dlAmc.
|
overrideprotectedvirtual |
Update UL metrics by calling NrMacSchedulerUeInfoPF::UpdatePFUlMetric.
ue | UE to update (ue that didn't get any resources) |
notAssigned | the amount of resources not assigned |
totAssigned | the total amount of resources assigned in the slot |
Even if the UE did not get any resource assigned, change its current throughput over the total number of symbols assigned.
The UL metrics (current Throughput and average Throughput) will be updated by calling the NrMacSchedulerUeInfoPF::UpdateUlPFMetric, which in turn will call NrMacSchedulerUeInfo::UpdateUlMetric in order to get the tbSize based on the resources assigned to the user. Since no resources have been assigned, the tbSize will be zero. This will help the sorting function to sort the UEs for resource allocation.
Implements ns3::NrMacSchedulerTdma.
Definition at line 136 of file nr-mac-scheduler-tdma-pf.cc.
References ns3::NrMacSchedulerNs3::m_ulAmc.
void ns3::NrMacSchedulerTdmaPF::SetFairnessIndex | ( | double | v | ) |
Set the value of attribute "FairnessIndex".
v |
Definition at line 51 of file nr-mac-scheduler-tdma-pf.cc.
Referenced by GetTypeId().
void ns3::NrMacSchedulerTdmaPF::SetTimeWindow | ( | double | v | ) |
Set the attribute "LastAvgTPutWeight".
v | the value to save |
Definition at line 65 of file nr-mac-scheduler-tdma-pf.cc.
Referenced by GetTypeId().