Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Maximum Throughput scheduler. More...
#include <fdmt-ff-mac-scheduler.h>
Public Member Functions | |
FdMtFfMacScheduler () | |
Constructor. | |
virtual | ~FdMtFfMacScheduler () |
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 | FdMtSchedulerMemberCschedSapProvider |
class | FdMtSchedulerMemberSchedSapProvider |
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 Frequency Domain Maximum Throughput scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::FdMtFfMacScheduler 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 fdmt-ff-mac-scheduler.h.
ns3::FdMtFfMacScheduler::FdMtFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 217 of file fdmt-ff-mac-scheduler.cc.
References FdMtSchedulerMemberCschedSapProvider, FdMtSchedulerMemberSchedSapProvider, m_amc, m_cschedSapProvider, and m_schedSapProvider.
|
virtual |
|
private |
Definition at line 282 of file fdmt-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::FdMtSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 310 of file fdmt-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::FdMtSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 337 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 294 of file fdmt-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::FdMtSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 344 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberCschedSapProvider::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 fdmt-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 665 of file fdmt-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::FdMtSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 383 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 376 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 658 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 352 of file fdmt-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 428 of file fdmt-ff-mac-scheduler.cc.
References ns3::LteAmc::GetMcsFromCqi(), GetRbgSize(), ns3::LteAmc::GetTbSizeFromMcs(), LcActivePerFlow(), m_a30CqiRxed, 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, 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_FUNCTION, RefreshDlCqiMaps(), ns3::FfMacSchedSapUser::SchedDlConfigInd(), ns3::TransmissionModesLayers::TxMode2LayerNum(), and UpdateDlRlcBufferInfo().
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 962 of file fdmt-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::FdMtSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 928 of file fdmt-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::FdMtSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 914 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 921 of file fdmt-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::FdMtSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 757 of file fdmt-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::FdMtSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
private |
Definition at line 726 of file fdmt-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 fdmt-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 276 of file fdmt-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 390 of file fdmt-ff-mac-scheduler.cc.
References ns3::FdMtType0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 241 of file fdmt-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, and ns3::TypeId::SetParent().
|
private |
Definition at line 405 of file fdmt-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1110 of file fdmt-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 1163 of file fdmt-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 fdmt-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 fdmt-ff-mac-scheduler.cc.
References m_schedSapUser.
void ns3::FdMtFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1267 of file fdmt-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 1193 of file fdmt-ff-mac-scheduler.cc.
References m_rlcBufferReq, and NS_LOG_ERROR.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1243 of file fdmt-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 70 of file fdmt-ff-mac-scheduler.h.
Referenced by FdMtFfMacScheduler().
|
friend |
Definition at line 71 of file fdmt-ff-mac-scheduler.h.
Referenced by FdMtFfMacScheduler().
|
private |
Definition at line 160 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 164 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 170 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 130 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and FdMtFfMacScheduler().
|
private |
Definition at line 184 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 198 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedUlCqiInfoReq(), and GetTypeId().
|
private |
Definition at line 194 of file fdmt-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and EstimateUlSinr().
|
private |
Definition at line 189 of file fdmt-ff-mac-scheduler.h.
Referenced by DoDispose(), FdMtFfMacScheduler(), and GetFfMacCschedSapProvider().
|
private |
Definition at line 187 of file fdmt-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 141 of file fdmt-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and DoSchedDlTriggerReq().
|
private |
Definition at line 146 of file fdmt-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq().
|
private |
Definition at line 196 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 151 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 155 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 135 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), LcActivePerFlow(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 190 of file fdmt-ff-mac-scheduler.h.
Referenced by DoDispose(), FdMtFfMacScheduler(), and GetFfMacSchedSapProvider().
|
private |
Definition at line 188 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 175 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), EstimateUlSinr(), and RefreshUlCqiMaps().
|
private |
Definition at line 179 of file fdmt-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 200 of file fdmt-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().