5#include "nr-mac-scheduler-tdma-rr.h"
7#include "nr-mac-scheduler-ue-info-rr.h"
17NS_LOG_COMPONENT_DEFINE(
"NrMacSchedulerTdmaRR");
18NS_OBJECT_ENSURE_REGISTERED(NrMacSchedulerTdmaRR);
23 static TypeId tid = TypeId(
"ns3::NrMacSchedulerTdmaRR")
25 .AddConstructor<NrMacSchedulerTdmaRR>();
32 NS_LOG_FUNCTION(
this);
35std::shared_ptr<NrMacSchedulerUeInfo>
39 NS_LOG_FUNCTION(
this);
40 return std::make_shared<NrMacSchedulerUeInfoRR>(
49 [[maybe_unused]]
const FTResources& totAssigned)
const
51 NS_LOG_FUNCTION(
this);
53 GetUe(ue)->UpdateDlMetric();
59 [[maybe_unused]]
const FTResources& totAssigned)
const
61 NS_LOG_FUNCTION(
this);
63 GetUe(ue)->UpdateUlMetric();
uint64_t GetNumRbPerRbg() const
Private function that is used to get the number of resource blocks per resource block group and also ...
std::pair< UePtr, uint32_t > UePtrAndBufferReq
Pair between a pointer to NrMacSchedulerUeInfo and its buffer occupancy.
The base for all the TDMA schedulers.
std::shared_ptr< NrMacSchedulerUeInfo > CreateUeRepresentation(const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) const override
Create an UE representation of the type NrMacSchedulerUeInfoRR.
NrMacSchedulerTdmaRR()
NrMacSchedulerTdmaRR constructor.
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.
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.
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.
static TypeId GetTypeId()
GetTypeId.
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.
static bool CompareUeWeightsDl(const NrMacSchedulerNs3::UePtrAndBufferReq &lue, const NrMacSchedulerNs3::UePtrAndBufferReq &rue)
comparison function object (i.e. an object that satisfies the requirements of Compare) which returns ...
static bool CompareUeWeightsUl(const NrMacSchedulerNs3::UePtrAndBufferReq &lue, const NrMacSchedulerNs3::UePtrAndBufferReq &rue)
comparison function object (i.e. an object that satisfies the requirements of Compare) which returns ...
Point in the Frequency/Time plane.