![]() |
5G-LENA nr-v3.3-159-ga6832aa7
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. | |
![]() | |
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 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 23 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 32 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 48 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 70 of file nr-mac-scheduler-ue-info-mr.h.
References ns3::NrMacSchedulerUeInfoRR::CompareUeWeightsUl().
Referenced by ns3::NrMacSchedulerOfdmaMR::GetUeCompareUlFn(), and ns3::NrMacSchedulerTdmaMR::GetUeCompareUlFn().