7#include "nr-mac-scheduler-ue-info-rr.h"
145 double lPfMetric = std::pow(luePtr->m_potentialTputDl, luePtr->m_alpha) /
146 std::max(1E-9, luePtr->m_avgTputDl);
147 double rPfMetric = std::pow(ruePtr->m_potentialTputDl, ruePtr->m_alpha) /
148 std::max(1E-9, ruePtr->m_avgTputDl);
150 return (lPfMetric > rPfMetric);
174 double lPfMetric = std::pow(luePtr->m_potentialTputUl, luePtr->m_alpha) /
175 std::max(1E-9, luePtr->m_avgTputUl);
176 double rPfMetric = std::pow(ruePtr->m_potentialTputUl, ruePtr->m_alpha) /
177 std::max(1E-9, ruePtr->m_avgTputUl);
179 return (lPfMetric > rPfMetric);
Representation of a beam id.
std::pair< UePtr, uint32_t > UePtrAndBufferReq
Pair between a pointer to NrMacSchedulerUeInfo and its buffer occupancy.
The representation of an user for any Mac scheduler.
virtual void ResetDlSchedInfo()
Reset DL information.
virtual void ResetUlMetric()
ResetUlMetric.
virtual void ResetDlMetric()
ResetDlMetric.
virtual void ResetUlSchedInfo()
Reset UL information.
UE representation for a proportional fair scheduler.
NrMacSchedulerUeInfoPF(float alpha, uint16_t rnti, BeamId beamId, const GetRbPerRbgFn &fn)
NrMacSchedulerUeInfoPF constructor.
double m_currTputDl
Current slot throughput in downlink.
double m_avgTputDl
Average throughput in downlink during all the slots.
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 ...
void ResetUlMetric() override
Reset the UL avg Th to the last value.
void UpdateUlPFMetric(const NrMacSchedulerNs3::FTResources &totAssigned, double timeWindow)
Update the PF metric for uplink.
double m_lastAvgTputUl
Last average throughput in uplink.
void ResetDlSchedInfo() override
Reset DL PF scheduler info.
void ResetDlMetric() override
Reset the DL avg Th to the last value.
void CalculatePotentialTPutDl(const NrMacSchedulerNs3::FTResources &assignableInIteration)
Calculate the Potential throughput for downlink.
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 ...
void UpdateDlPFMetric(const NrMacSchedulerNs3::FTResources &totAssigned, double timeWindow)
Update the PF metric for downlink.
double m_lastAvgTputDl
Last average throughput in downlink.
float m_alpha
PF fairness metric.
double m_currTputUl
Current slot throughput in uplink.
void CalculatePotentialTPutUl(const NrMacSchedulerNs3::FTResources &assignableInIteration)
Calculate the Potential throughput for uplink.
void ResetUlSchedInfo() override
Reset UL PF scheduler info.
double m_avgTputUl
Average throughput in uplink during all the slots.
Point in the Frequency/Time plane.