Implements the SCHED SAP and CSCHED SAP for a Time Domain Maximum Throughput scheduler. More...
#include <tdmt-ff-mac-scheduler.h>
Public Member Functions | |
TdMtFfMacScheduler () | |
Constructor. | |
virtual | ~TdMtFfMacScheduler () |
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) |
Private Attributes | |
std::map< uint16_t, SbMeasResult_s > | m_a30CqiRxed |
std::map< uint16_t, uint32_t > | m_a30CqiTimers |
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 |
std::set< uint16_t > | m_flowStatsDl |
std::set< uint16_t > | m_flowStatsUl |
uint16_t | m_nextRntiUl |
std::map< uint16_t, uint8_t > | m_p10CqiRxed |
std::map< uint16_t, uint32_t > | m_p10CqiTimers |
std::map< LteFlowId_t, 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 | TdMtSchedulerMemberCschedSapProvider |
class | TdMtSchedulerMemberSchedSapProvider |
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 Time Domain Maximum Throughput scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::TdMtFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 45 of file tdmt-ff-mac-scheduler.h.
ns3::TdMtFfMacScheduler::TdMtFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 217 of file tdmt-ff-mac-scheduler.cc.
References m_amc, m_cschedSapProvider, m_schedSapProvider, TdMtSchedulerMemberCschedSapProvider, and TdMtSchedulerMemberSchedSapProvider.
|
virtual |
|
private |
Definition at line 282 of file tdmt-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::TdMtSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 310 of file tdmt-ff-mac-scheduler.cc.
References m_flowStatsDl, m_flowStatsUl, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_logicalChannelConfigList, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_rnti, NS_LOG_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::TdMtSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 337 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 294 of file tdmt-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::TdMtSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 344 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberCschedSapProvider::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 233 of file tdmt-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 605 of file tdmt-ff-mac-scheduler.cc.
References ns3::CqiListElement_s::A30, m_a30CqiRxed, m_a30CqiTimers, 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::TdMtSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 383 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 376 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 598 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 352 of file tdmt-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 428 of file tdmt-ff-mac-scheduler.cc.
References ns3::LteAmc::GetMcsFromCqi(), GetRbgSize(), ns3::LteAmc::GetTbSizeFromMcs(), LcActivePerFlow(), m_amc, ns3::FfMacSchedSapUser::SchedDlConfigIndParameters::m_buildDataList, m_cschedCellConfig, ns3::BuildDataListElement_s::m_dci, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_dlBandwidth, m_flowStatsDl, ns3::RlcPduListElement_s::m_logicalChannelIdentity, ns3::DlDciListElement_s::m_mcs, ns3::DlDciListElement_s::m_ndi, 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_FUNCTION, RefreshDlCqiMaps(), ns3::FfMacSchedSapUser::SchedDlConfigInd(), ns3::TransmissionModesLayers::TxMode2LayerNum(), and UpdateDlRlcBufferInfo().
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 903 of file tdmt-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, NO_SINR, 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::TdMtSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 869 of file tdmt-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::TdMtSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 855 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 862 of file tdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 697 of file tdmt-ff-mac-scheduler.cc.
References EstimateUlSinr(), 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, NO_SINR, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, RefreshUlCqiMaps(), ns3::FfMacSchedSapUser::SchedUlConfigInd(), and UpdateUlRlcBufferInfo().
Referenced by ns3::TdMtSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
private |
Definition at line 666 of file tdmt-ff-mac-scheduler.cc.
References m_cschedCellConfig, m_ueCqi, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_ulBandwidth, and NO_SINR.
Referenced by DoSchedUlTriggerReq().
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 270 of file tdmt-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 276 of file tdmt-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 390 of file tdmt-ff-mac-scheduler.cc.
References ns3::TdMtType0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 241 of file tdmt-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, and ns3::TypeId::SetParent().
|
private |
Definition at line 405 of file tdmt-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1051 of file tdmt-ff-mac-scheduler.cc.
References m_a30CqiRxed, m_a30CqiTimers, m_p10CqiRxed, m_p10CqiTimers, NS_ASSERT_MSG, and NS_LOG_INFO.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1104 of file tdmt-ff-mac-scheduler.cc.
References 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 258 of file tdmt-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 264 of file tdmt-ff-mac-scheduler.cc.
References m_schedSapUser.
void ns3::TdMtFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1208 of file tdmt-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapUser::CschedUeConfigUpdateInd(), m_cschedSapUser, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_rnti, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_transmissionMode, and NS_LOG_FUNCTION.
|
private |
Definition at line 1134 of file tdmt-ff-mac-scheduler.cc.
References m_rlcBufferReq, and NS_LOG_ERROR.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1184 of file tdmt-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 70 of file tdmt-ff-mac-scheduler.h.
Referenced by TdMtFfMacScheduler().
|
friend |
Definition at line 71 of file tdmt-ff-mac-scheduler.h.
Referenced by TdMtFfMacScheduler().
|
private |
Definition at line 160 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 164 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 170 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 130 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and TdMtFfMacScheduler().
|
private |
Definition at line 184 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 198 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedUlCqiInfoReq(), and GetTypeId().
|
private |
Definition at line 194 of file tdmt-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and EstimateUlSinr().
|
private |
Definition at line 189 of file tdmt-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacCschedSapProvider(), and TdMtFfMacScheduler().
|
private |
Definition at line 187 of file tdmt-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 141 of file tdmt-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and DoSchedDlTriggerReq().
|
private |
Definition at line 146 of file tdmt-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq().
|
private |
Definition at line 196 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 151 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 155 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 135 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), LcActivePerFlow(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 190 of file tdmt-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacSchedSapProvider(), and TdMtFfMacScheduler().
|
private |
Definition at line 188 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 175 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), EstimateUlSinr(), and RefreshUlCqiMaps().
|
private |
Definition at line 179 of file tdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 200 of file tdmt-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().