Implements the SCHED SAP and CSCHED SAP for a Round Robin scheduler. More...
#include <rr-ff-mac-scheduler.h>
Public Member Functions | |
RrFfMacScheduler () | |
Constructor. | |
virtual | ~RrFfMacScheduler () |
virtual void | DoDispose (void) |
virtual FfMacCschedSapProvider * | GetFfMacCschedSapProvider () |
virtual FfMacSchedSapProvider * | GetFfMacSchedSapProvider () |
virtual void | SetFfMacCschedSapUser (FfMacCschedSapUser *s) |
virtual void | SetFfMacSchedSapUser (FfMacSchedSapUser *s) |
void | TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode) |
![]() | |
FfMacScheduler () | |
virtual | ~FfMacScheduler () |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Start (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Private Member Functions | |
static bool | SortRlcBufferReq (FfMacSchedSapProvider::SchedDlRlcBufferReqParameters i, FfMacSchedSapProvider::SchedDlRlcBufferReqParameters j) |
Private Attributes | |
std::map< uint16_t, std::vector< uint16_t > > | m_allocationMaps |
Ptr< LteAmc > | m_amc |
std::map< uint16_t, uint32_t > | m_ceBsrRxed |
uint32_t | m_cqiTimersThreshold |
FfMacCschedSapProvider::CschedCellConfigReqParameters | m_cschedCellConfig |
FfMacCschedSapProvider * | m_cschedSapProvider |
FfMacCschedSapUser * | m_cschedSapUser |
uint16_t | m_nextRntiDl |
uint16_t | m_nextRntiUl |
std::map< uint16_t, uint8_t > | m_p10CqiRxed |
std::map< uint16_t, uint32_t > | m_p10CqiTimers |
std::list < FfMacSchedSapProvider::SchedDlRlcBufferReqParameters > | m_rlcBufferReq |
FfMacSchedSapProvider * | m_schedSapProvider |
FfMacSchedSapUser * | m_schedSapUser |
std::map< uint16_t, std::vector< double > > | m_ueCqi |
std::map< uint16_t, uint32_t > | m_ueCqiTimers |
std::map< uint16_t, uint8_t > | m_uesTxMode |
Friends | |
class | RrSchedulerMemberCschedSapProvider |
class | RrSchedulerMemberSchedSapProvider |
Additional Inherited Members | |
![]() | |
enum | UlCqiFilter_t { SRS_UL_CQI, PUSCH_UL_CQI, ALL_UL_CQI } |
![]() | |
Object (const Object &o) | |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
UlCqiFilter_t | m_ulCqiFilter |
Implements the SCHED SAP and CSCHED SAP for a Round Robin scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::RrFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 49 of file rr-ff-mac-scheduler.h.
ns3::RrFfMacScheduler::RrFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 214 of file rr-ff-mac-scheduler.cc.
References m_amc, m_cschedSapProvider, m_schedSapProvider, RrSchedulerMemberCschedSapProvider, and RrSchedulerMemberSchedSapProvider.
|
virtual |
|
private |
Definition at line 280 of file rr-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapUser::CschedUeConfigCnf(), m_cschedCellConfig, m_cschedSapUser, ns3::FfMacCschedSapUser::CschedUeConfigCnfParameters::m_result, NS_LOG_FUNCTION, and ns3::SUCCESS.
Referenced by ns3::RrSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 308 of file rr-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 316 of file rr-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 292 of file rr-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 324 of file rr-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberCschedSapProvider::CschedUeReleaseReq().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
It is safe to call GetObject from within this method.
Reimplemented from ns3::FfMacScheduler.
Definition at line 231 of file rr-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 606 of file rr-ff-mac-scheduler.cc.
References ns3::CqiListElement_s::A30, ns3::FfMacSchedSapProvider::SchedDlCqiInfoReqParameters::m_cqiList, m_cqiTimersThreshold, m_p10CqiRxed, m_p10CqiTimers, NS_LOG_ERROR, NS_LOG_FUNCTION, and ns3::CqiListElement_s::P10.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 374 of file rr-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 366 of file rr-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 598 of file rr-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 333 of file rr-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_p10CqiRxed, m_p10CqiTimers, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 403 of file rr-ff-mac-scheduler.cc.
References ns3::LteAmc::GetMcsFromCqi(), GetRbgSize(), ns3::LteAmc::GetTbSizeFromMcs(), m_amc, ns3::FfMacSchedSapUser::SchedDlConfigIndParameters::m_buildDataList, m_cschedCellConfig, ns3::BuildDataListElement_s::m_dci, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_dlBandwidth, ns3::RlcPduListElement_s::m_logicalChannelIdentity, ns3::DlDciListElement_s::m_mcs, ns3::DlDciListElement_s::m_ndi, m_nextRntiDl, ns3::FfMacSchedSapUser::SchedDlConfigIndParameters::m_nrOfPdcchOfdmSymbols, m_p10CqiRxed, ns3::DlDciListElement_s::m_rbBitmap, ns3::DlDciListElement_s::m_resAlloc, m_rlcBufferReq, ns3::BuildDataListElement_s::m_rlcPduList, ns3::DlDciListElement_s::m_rnti, ns3::BuildDataListElement_s::m_rnti, ns3::DlDciListElement_s::m_rv, m_schedSapUser, ns3::FfMacSchedSapProvider::SchedDlTriggerReqParameters::m_sfnSf, ns3::RlcPduListElement_s::m_size, ns3::DlDciListElement_s::m_tbsSize, m_uesTxMode, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, RefreshDlCqiMaps(), ns3::FfMacSchedSapUser::SchedDlConfigInd(), SortRlcBufferReq(), ns3::TransmissionModesLayers::TxMode2LayerNum(), and UpdateDlRlcBufferInfo().
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 851 of file rr-ff-mac-scheduler.cc.
References ns3::FfMacScheduler::ALL_UL_CQI, ns3::LteFfConverter::fpS11dot3toDouble(), m_allocationMaps, m_cqiTimersThreshold, m_cschedCellConfig, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_sfnSf, ns3::UlCqi_s::m_sinr, ns3::UlCqi_s::m_type, m_ueCqi, m_ueCqiTimers, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_ulBandwidth, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_ulCqi, ns3::FfMacScheduler::m_ulCqiFilter, ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_vendorSpecificList, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::UlCqi_s::PRACH, ns3::UlCqi_s::PUCCH_1, ns3::UlCqi_s::PUCCH_2, ns3::UlCqi_s::PUSCH, ns3::FfMacScheduler::PUSCH_UL_CQI, ns3::UlCqi_s::SRS, SRS_CQI_RNTI_VSP, and ns3::FfMacScheduler::SRS_UL_CQI.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 817 of file rr-ff-mac-scheduler.cc.
References ns3::MacCeListElement_s::BSR, ns3::BufferSizeLevelBsr::BsrId2BufferSize(), m_ceBsrRxed, ns3::FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters::m_macCeList, and NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 801 of file rr-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 809 of file rr-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 651 of file rr-ff-mac-scheduler.cc.
References ns3::LteAmc::GetCqiFromSpectralEfficiency(), ns3::LteAmc::GetMcsFromCqi(), ns3::LteAmc::GetTbSizeFromMcs(), ns3::UlDciListElement_s::m_aggrLevel, m_allocationMaps, m_amc, ns3::UlDciListElement_s::m_cceIndex, m_ceBsrRxed, ns3::UlDciListElement_s::m_cqiRequest, m_cschedCellConfig, ns3::UlDciListElement_s::m_dai, ns3::FfMacSchedSapUser::SchedUlConfigIndParameters::m_dciList, ns3::UlDciListElement_s::m_freqHopping, ns3::UlDciListElement_s::m_hopping, ns3::UlDciListElement_s::m_mcs, ns3::UlDciListElement_s::m_n2Dmrs, ns3::UlDciListElement_s::m_ndi, m_nextRntiUl, ns3::UlDciListElement_s::m_pdcchPowerOffset, ns3::UlDciListElement_s::m_rbLen, ns3::UlDciListElement_s::m_rbStart, ns3::UlDciListElement_s::m_rnti, m_schedSapUser, ns3::FfMacSchedSapProvider::SchedUlTriggerReqParameters::m_sfnSf, ns3::UlDciListElement_s::m_tbSize, ns3::UlDciListElement_s::m_tpc, m_ueCqi, ns3::UlDciListElement_s::m_ueTxAntennaSelection, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_ulBandwidth, ns3::UlDciListElement_s::m_ulIndex, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, RefreshUlCqiMaps(), ns3::FfMacSchedSapUser::SchedUlConfigInd(), and UpdateUlRlcBufferInfo().
Referenced by ns3::RrSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 268 of file rr-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 274 of file rr-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 382 of file rr-ff-mac-scheduler.cc.
References ns3::Type0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 239 of file rr-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, and ns3::TypeId::SetParent().
|
private |
Definition at line 1001 of file rr-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, m_p10CqiRxed, m_p10CqiTimers, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_INFO.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1032 of file rr-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, m_ueCqi, m_ueCqiTimers, NS_ASSERT_MSG, and NS_LOG_INFO.
Referenced by DoSchedUlTriggerReq().
|
virtual |
set the user part of the FfMacCschedSap that this Scheduler will interact with. Normally this part of the SAP is exported by the MAC.
s |
Implements ns3::FfMacScheduler.
Definition at line 256 of file rr-ff-mac-scheduler.cc.
References m_cschedSapUser.
|
virtual |
set the user part of the FfMacSchedSap that this Scheduler will interact with. Normally this part of the SAP is exported by the MAC.
s |
Implements ns3::FfMacScheduler.
Definition at line 262 of file rr-ff-mac-scheduler.cc.
References m_schedSapUser.
|
staticprivate |
Definition at line 396 of file rr-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti.
Referenced by DoSchedDlTriggerReq().
void ns3::RrFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1137 of file rr-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapUser::CschedUeConfigUpdateInd(), m_cschedSapUser, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_rnti, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_transmissionMode, and NS_LOG_FUNCTION.
Referenced by ns3::LenaMimoTestCase::DoRun().
|
private |
Definition at line 1062 of file rr-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1111 of file rr-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 74 of file rr-ff-mac-scheduler.h.
Referenced by RrFfMacScheduler().
|
friend |
Definition at line 75 of file rr-ff-mac-scheduler.h.
Referenced by RrFfMacScheduler().
|
private |
Definition at line 153 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 133 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and RrFfMacScheduler().
|
private |
Definition at line 169 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 184 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlRlcBufferReq(), DoSchedUlCqiInfoReq(), GetTypeId(), RefreshDlCqiMaps(), and RefreshUlCqiMaps().
|
private |
Definition at line 179 of file rr-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
|
private |
Definition at line 174 of file rr-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacCschedSapProvider(), and RrFfMacScheduler().
|
private |
Definition at line 172 of file rr-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 181 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 182 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 143 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 147 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlRlcBufferReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 138 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 175 of file rr-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacSchedSapProvider(), and RrFfMacScheduler().
|
private |
Definition at line 173 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 158 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 162 of file rr-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 186 of file rr-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().