5G-LENA
nr-v3.0-25-g90be5d1
The 5G/NR module for the ns-3 simulator
|
UE representation for a maximum rate scheduler. More...
#include "nr-mac-scheduler-ue-info-mr.h"
Public Member Functions | |
NrMacSchedulerUeInfoMR (uint16_t rnti, BeamId beamId, const GetRbPerRbgFn &fn) | |
NrMacSchedulerUeInfoMR constructor. More... | |
Public Member Functions inherited from ns3::NrMacSchedulerUeInfo | |
NrMacSchedulerUeInfo ()=delete | |
Default Constructor (deleted) | |
NrMacSchedulerUeInfo (uint16_t rnti, BeamId beamId, const GetRbPerRbgFn &fn) | |
Create a new UE representation. More... | |
virtual | ~NrMacSchedulerUeInfo () |
~NrMacSchedulerUeInfo deconstructor | |
virtual void | ResetDlMetric () |
ResetDlMetric. More... | |
virtual void | ResetDlSchedInfo () |
Reset DL information. More... | |
virtual void | ResetUlMetric () |
ResetUlMetric. More... | |
virtual void | ResetUlSchedInfo () |
Reset UL information. More... | |
virtual void | UpdateDlMetric (const Ptr< const NrAmc > &amc) |
Update DL metrics after resources have been assigned. More... | |
virtual void | UpdateUlMetric (const Ptr< const NrAmc > &amc) |
Update UL metrics after resources have been assigned. More... | |
Static Public Member Functions | |
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 true if the first argument is less than (i.e. is ordered before) the second. More... | |
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 true if the first argument is less than (i.e. is ordered before) the second. More... | |
Static Public Member Functions inherited from ns3::NrMacSchedulerUeInfo | |
static NrMacHarqVector & | GetDlHarqVector (const UePtr &ue) |
GetDlHarqVector. More... | |
static std::unordered_map< uint8_t, LCGPtr > & | GetDlLCG (const UePtr &ue) |
GetDlLCG. More... | |
static uint8_t & | GetDlMcs (const UePtr &ue) |
GetDlMcs. More... | |
static uint32_t & | GetDlRBG (const UePtr &ue) |
GetDlRBG. More... | |
static uint8_t & | GetDlSym (const UePtr &ue) |
GetDlSym. More... | |
static uint32_t & | GetDlTBS (const UePtr &ue) |
GetDlTBS. More... | |
static NrMacHarqVector & | GetUlHarqVector (const UePtr &ue) |
GetUlHarqVector. More... | |
static std::unordered_map< uint8_t, LCGPtr > & | GetUlLCG (const UePtr &ue) |
GetUlLCG. More... | |
static uint8_t & | GetUlMcs (const UePtr &ue) |
GetUlMcs. More... | |
static uint32_t & | GetUlRBG (const UePtr &ue) |
GetUlRBG. More... | |
static uint8_t & | GetUlSym (const UePtr &ue) |
GetUlSym. More... | |
static uint32_t & | GetUlTBS (const UePtr &ue) |
GetUlTBS. More... | |
static void | PrintLcInfo (uint16_t ue, uint8_t lcgId, uint8_t lcId, uint8_t cqi, uint8_t P, uint8_t minP) |
Prints information related to the QCI of a UEs LC. More... | |
Additional Inherited Members | |
Public Types inherited from ns3::NrMacSchedulerUeInfo | |
typedef std::function< NrMacHarqVector &(const UePtr &ue)> | GetHarqVectorFn |
typedef std::function< std::unordered_map< uint8_t, LCGPtr > &(const UePtr &ue)> | GetLCGFn |
typedef std::function< uint32_t()> | GetRbPerRbgFn |
Public Attributes inherited from ns3::NrMacSchedulerUeInfo | |
BeamId | m_beamId |
Beam ID of the UE (kept updated as much as possible by MAC) | |
CqiInfo | m_dlCqi |
DL CQI information. | |
NrMacHarqVector | m_dlHarq |
HARQ process vector for DL. | |
std::unordered_map< uint8_t, LCGPtr > | m_dlLCG |
DL LCG. | |
uint8_t | m_dlMcs {0} |
DL MCS. | |
uint32_t | m_dlMRBRetx {0} |
Ptr< const ComplexMatrixArray > | m_dlPrecMats {nullptr} |
DL Precoding matrices. | |
uint8_t | m_dlRank {1} |
DL rank (number of MIMO layers) | |
uint32_t | m_dlRBG {0} |
DL Resource Block Group assigned in this slot. | |
uint8_t | m_dlSym {0} |
Number of (new data) symbols assigned in this slot. | |
uint32_t | m_dlTbSize {0} |
uint16_t | m_rnti {0} |
RNTI of the UE. | |
uint32_t | m_srsOffset {0} |
SRS offset. | |
uint32_t | m_srsPeriodicity {0} |
SRS periodicity. | |
uint8_t | m_startMcsDlUe {0} |
Starting DL MCS to be used. | |
CqiInfo | m_ulCqi |
UL CQI information. | |
NrMacHarqVector | m_ulHarq |
HARQ process vector for UL. | |
std::unordered_map< uint8_t, LCGPtr > | m_ulLCG |
UL LCG. | |
uint8_t | m_ulMcs {0} |
UL MCS. | |
uint32_t | m_ulMRBRetx {0} |
Ptr< const ComplexMatrixArray > | m_ulPrecMats {nullptr} |
UL Precoding matrices. | |
uint8_t | m_ulRank {1} |
UL rank (number of MIMO layers) | |
uint32_t | m_ulRBG {0} |
UL Resource Block Group assigned in this slot. | |
uint8_t | m_ulSym {0} |
Number of (new data) symbols assigned in this slot. | |
uint32_t | m_ulTbSize {0} |
Protected Member Functions inherited from ns3::NrMacSchedulerUeInfo | |
uint32_t | GetNumRbPerRbg () const |
Retrieve the number of RB per RBG. More... | |
UE representation for a maximum rate scheduler.
The class does not store anything more than the NrMacSchedulerUeInfo base class. However, it provides functions to sort the UE based on their maximum achievable rate.
Definition at line 25 of file nr-mac-scheduler-ue-info-mr.h.
|
inline |
NrMacSchedulerUeInfoMR constructor.
rnti | RNTI of the UE |
beamId | Beam ID of the UE |
fn | A function that tells how many RB per RBG |
Definition at line 34 of file nr-mac-scheduler-ue-info-mr.h.
|
inlinestatic |
comparison function object (i.e. an object that satisfies the requirements of Compare) which returns true if the first argument is less than (i.e. is ordered before) the second.
lue | Left UE |
rue | Right UE |
The ordering is made by considering the MCS of the UE. The higher the MCS, the higher the assigned resources until it has enough to transmit the data.
Definition at line 50 of file nr-mac-scheduler-ue-info-mr.h.
References ns3::NrMacSchedulerUeInfoRR::CompareUeWeightsDl().
Referenced by ns3::NrMacSchedulerOfdmaMR::GetUeCompareDlFn(), and ns3::NrMacSchedulerTdmaMR::GetUeCompareDlFn().
|
inlinestatic |
comparison function object (i.e. an object that satisfies the requirements of Compare) which returns true if the first argument is less than (i.e. is ordered before) the second.
lue | Left UE |
rue | Right UE |
The ordering is made by considering the MCS of the UE. The higher the MCS, the higher the assigned resources until it has enough to transmit the data.
Definition at line 72 of file nr-mac-scheduler-ue-info-mr.h.
References ns3::NrMacSchedulerUeInfoRR::CompareUeWeightsUl().
Referenced by ns3::NrMacSchedulerOfdmaMR::GetUeCompareUlFn(), and ns3::NrMacSchedulerTdmaMR::GetUeCompareUlFn().