![]() |
5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
|
UE representation for a round-robin scheduler. More...
#include "nr-mac-scheduler-ue-info-rr.h"
Public Member Functions | |
NrMacSchedulerUeInfoRR (uint16_t rnti, BeamId beamId, const GetRbPerRbgFn &fn) | |
NrMacSchedulerUeInfoRR constructor. | |
![]() | |
NrMacSchedulerUeInfo ()=delete | |
Default Constructor (deleted) | |
NrMacSchedulerUeInfo (uint16_t rnti, BeamId beamId, const GetRbPerRbgFn &fn) | |
Create a new UE representation. | |
virtual | ~NrMacSchedulerUeInfo () |
~NrMacSchedulerUeInfo deconstructor | |
uint8_t | GetDlMcs () const |
Get the downlink MCS, given by the wideband CQI, or the sub-band CQIs of the currently allocated RBGs, if available. | |
uint32_t | GetTotalDlBuffer () const |
void | ReleaseLC (uint8_t lcid) |
virtual void | ResetDlMetric () |
ResetDlMetric. | |
virtual void | ResetDlSchedInfo () |
Reset DL information. | |
virtual void | ResetUlMetric () |
ResetUlMetric. | |
virtual void | ResetUlSchedInfo () |
Reset UL information. | |
virtual void | UpdateDlMetric () |
Update DL metrics after resources have been assigned. | |
virtual void | UpdateUlMetric () |
Update UL metrics after resources have been assigned. | |
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. | |
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. | |
![]() | |
static NrMacHarqVector & | GetDlHarqVector (const UePtr &ue) |
GetDlHarqVector. | |
static std::unordered_map< uint8_t, LCGPtr > & | GetDlLCG (const UePtr &ue) |
GetDlLCG. | |
static uint8_t & | GetDlMcs (const UePtr &ue) |
GetDlMcs. | |
static std::vector< uint16_t > & | GetDlRBG (const UePtr &ue) |
GetDlRBG. | |
static std::vector< uint8_t > & | GetDlSym (const UePtr &ue) |
GetDlSym. | |
static uint32_t & | GetDlTBS (const UePtr &ue) |
GetDlTBS. | |
static NrMacHarqVector & | GetUlHarqVector (const UePtr &ue) |
GetUlHarqVector. | |
static std::unordered_map< uint8_t, LCGPtr > & | GetUlLCG (const UePtr &ue) |
GetUlLCG. | |
static uint8_t & | GetUlMcs (const UePtr &ue) |
GetUlMcs. | |
static std::vector< uint16_t > & | GetUlRBG (const UePtr &ue) |
GetUlRBG. | |
static std::vector< uint8_t > & | GetUlSym (const UePtr &ue) |
GetUlSym. | |
static uint32_t & | GetUlTBS (const UePtr &ue) |
GetUlTBS. | |
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. | |
Additional Inherited Members | |
![]() | |
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 |
enum class | McsCsiSource { AVG_MCS , AVG_SPEC_EFF , AVG_SINR , WIDEBAND_MCS } |
![]() | |
BeamId | m_beamId |
Beam ID of the UE (kept updated as much as possible by MAC) | |
Ptr< NrAmc > | m_dlAmc |
AMC instance of scheduler associated with DL. | |
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) | |
std::vector< uint16_t > | m_dlRBG |
DL Resource Block Group assigned in this slot. | |
std::vector< SbMcsInfo > | m_dlSbMcsInfo |
std::vector< uint8_t > | m_dlSym |
Corresponding symbol of m_dlRBG in this slot. | |
uint32_t | m_dlTbSize {0} |
std::optional< uint8_t > | m_fhMaxMcsAssignable |
Maximum DL MCS assignable due to FH limitations. | |
McsCsiSource | m_mcsCsiSource |
Source of MCS computation based on CSI feedback. | |
std::vector< uint8_t > | m_rbgToSb |
Precomputed RBG to SB mapping. | |
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. | |
Ptr< NrAmc > | m_ulAmc |
AMC instance of scheduler associated with UL. | |
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) | |
std::vector< uint16_t > | m_ulRBG |
UL Resource Block Group assigned in this slot. | |
std::vector< uint8_t > | m_ulSym |
Corresponding symbol of m_ulRBG in this slot. | |
uint32_t | m_ulTbSize {0} |
![]() | |
uint32_t | GetNumRbPerRbg () const |
Retrieve the number of RB per RBG. | |
UE representation for a round-robin scheduler.
The UE representation does not store any additional information, but provides a way for a RR scheduler to order the UE based on the assigned RBG.
Definition at line 22 of file nr-mac-scheduler-ue-info-rr.h.
|
inline |
NrMacSchedulerUeInfoRR 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 31 of file nr-mac-scheduler-ue-info-rr.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 RBG. An UE with 0 RBG will always be the first (i.e., has an higher priority) in a RR scheduler. The objective is to distribute evenly all the resources, in order to have the same RBG number for all the UEs.
Definition at line 49 of file nr-mac-scheduler-ue-info-rr.h.
Referenced by ns3::NrMacSchedulerUeInfoMR::CompareUeWeightsDl(), ns3::NrMacSchedulerOfdmaRR::GetUeCompareDlFn(), and ns3::NrMacSchedulerTdmaRR::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 RBG. An UE with 0 RBG will always be the first (i.e., has an higher priority) in a RR scheduler. The objective is to distribute evenly all the resources, in order to have the same RBG number for all the UEs.
Definition at line 68 of file nr-mac-scheduler-ue-info-rr.h.
Referenced by ns3::NrMacSchedulerUeInfoMR::CompareUeWeightsUl(), ns3::NrMacSchedulerOfdmaRR::GetUeCompareUlFn(), and ns3::NrMacSchedulerTdmaRR::GetUeCompareUlFn().