Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Token Bank Fair Queue scheduler. More...
#include <tdtbfq-ff-mac-scheduler.h>
Public Member Functions | |
TdTbfqFfMacScheduler () | |
Constructor. | |
virtual | ~TdTbfqFfMacScheduler () |
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) |
Friends | |
class | TdTbfqSchedulerMemberCschedSapProvider |
class | TdTbfqSchedulerMemberSchedSapProvider |
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 Token Bank Fair Queue scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::TdTbfqFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 61 of file tdtbfq-ff-mac-scheduler.h.
ns3::TdTbfqFfMacScheduler::TdTbfqFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 214 of file tdtbfq-ff-mac-scheduler.cc.
References m_amc, m_cschedSapProvider, m_schedSapProvider, TdTbfqSchedulerMemberCschedSapProvider, and TdTbfqSchedulerMemberSchedSapProvider.
|
virtual |
|
private |
Definition at line 301 of file tdtbfq-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::TdTbfqSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 329 of file tdtbfq-ff-mac-scheduler.cc.
References ns3::tdtbfqsFlowPerf_t::burstCredit, ns3::tdtbfqsFlowPerf_t::counter, ns3::tdtbfqsFlowPerf_t::creditableThreshold, ns3::tdtbfqsFlowPerf_t::debtLimit, ns3::tdtbfqsFlowPerf_t::flowStart, m_creditableThreshold, m_creditLimit, m_debtLimit, m_flowStatsDl, m_flowStatsUl, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_logicalChannelConfigList, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_rnti, m_tokenPoolSize, ns3::tdtbfqsFlowPerf_t::maxTokenPoolSize, ns3::Now(), NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::tdtbfqsFlowPerf_t::packetArrivalRate, ns3::tdtbfqsFlowPerf_t::tokenGenerationRate, and ns3::tdtbfqsFlowPerf_t::tokenPoolSize.
Referenced by ns3::TdTbfqSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 377 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 313 of file tdtbfq-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::TdTbfqSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 384 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberCschedSapProvider::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 232 of file tdtbfq-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 697 of file tdtbfq-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::TdTbfqSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 423 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 416 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 690 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 392 of file tdtbfq-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 466 of file tdtbfq-ff-mac-scheduler.cc.
References bankSize, 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::TdTbfqSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 994 of file tdtbfq-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::TdTbfqSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 960 of file tdtbfq-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::TdTbfqSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 946 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 953 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TdTbfqSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 789 of file tdtbfq-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::TdTbfqSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
private |
Definition at line 758 of file tdtbfq-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 289 of file tdtbfq-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 295 of file tdtbfq-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 430 of file tdtbfq-ff-mac-scheduler.cc.
References ns3::TdTbfqType0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 240 of file tdtbfq-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, m_creditableThreshold, m_creditLimit, m_debtLimit, m_tokenPoolSize, and ns3::TypeId::SetParent().
|
private |
Definition at line 444 of file tdtbfq-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1142 of file tdtbfq-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 1195 of file tdtbfq-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 277 of file tdtbfq-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 283 of file tdtbfq-ff-mac-scheduler.cc.
References m_schedSapUser.
void ns3::TdTbfqFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1299 of file tdtbfq-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 1225 of file tdtbfq-ff-mac-scheduler.cc.
References m_rlcBufferReq, and NS_LOG_ERROR.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1275 of file tdtbfq-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 86 of file tdtbfq-ff-mac-scheduler.h.
Referenced by TdTbfqFfMacScheduler().
|
friend |
Definition at line 87 of file tdtbfq-ff-mac-scheduler.h.
Referenced by TdTbfqFfMacScheduler().
|
private |
Definition at line 222 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 177 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 181 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 187 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 146 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and TdTbfqFfMacScheduler().
|
private |
Definition at line 201 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 218 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedUlCqiInfoReq(), and GetTypeId().
|
private |
Definition at line 230 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and GetTypeId().
|
private |
Definition at line 226 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and GetTypeId().
|
private |
Definition at line 211 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and EstimateUlSinr().
|
private |
Definition at line 206 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacCschedSapProvider(), and TdTbfqFfMacScheduler().
|
private |
Definition at line 204 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 224 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and GetTypeId().
|
private |
Definition at line 157 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and DoSchedDlTriggerReq().
|
private |
Definition at line 162 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq().
|
private |
Definition at line 216 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 168 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 172 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 151 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), LcActivePerFlow(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 207 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacSchedSapProvider(), and TdTbfqFfMacScheduler().
|
private |
Definition at line 205 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 214 of file tdtbfq-ff-mac-scheduler.h.
|
private |
Definition at line 228 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and GetTypeId().
|
private |
Definition at line 192 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), EstimateUlSinr(), and RefreshUlCqiMaps().
|
private |
Definition at line 196 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 220 of file tdtbfq-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().