Implements the SCHED SAP and CSCHED SAP for a Throughput to Average scheduler. More...
#include <tta-ff-mac-scheduler.h>
Public Member Functions | |
TtaFfMacScheduler () | |
Constructor. | |
virtual | ~TtaFfMacScheduler () |
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 | TtaSchedulerMemberCschedSapProvider |
class | TtaSchedulerMemberSchedSapProvider |
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 Throughput to Average scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::TtaFfMacScheduler 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 tta-ff-mac-scheduler.h.
ns3::TtaFfMacScheduler::TtaFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 217 of file tta-ff-mac-scheduler.cc.
References m_amc, m_cschedSapProvider, m_schedSapProvider, TtaSchedulerMemberCschedSapProvider, and TtaSchedulerMemberSchedSapProvider.
|
virtual |
|
private |
Definition at line 282 of file tta-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::TtaSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 310 of file tta-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::TtaSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 337 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 294 of file tta-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::TtaSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 344 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberCschedSapProvider::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 tta-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 681 of file tta-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::TtaSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 383 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 376 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 674 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 352 of file tta-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 428 of file tta-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, 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_FUNCTION, RefreshDlCqiMaps(), ns3::FfMacSchedSapUser::SchedDlConfigInd(), ns3::TransmissionModesLayers::TxMode2LayerNum(), and UpdateDlRlcBufferInfo().
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 979 of file tta-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::TtaSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 945 of file tta-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::TtaSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 931 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 938 of file tta-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::TtaSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 773 of file tta-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::TtaSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
private |
Definition at line 742 of file tta-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 tta-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 276 of file tta-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 390 of file tta-ff-mac-scheduler.cc.
References ns3::TtaType0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 241 of file tta-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, and ns3::TypeId::SetParent().
|
private |
Definition at line 405 of file tta-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1127 of file tta-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 1180 of file tta-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 tta-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 tta-ff-mac-scheduler.cc.
References m_schedSapUser.
void ns3::TtaFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1284 of file tta-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 1210 of file tta-ff-mac-scheduler.cc.
References m_rlcBufferReq, and NS_LOG_ERROR.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1260 of file tta-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 70 of file tta-ff-mac-scheduler.h.
Referenced by TtaFfMacScheduler().
|
friend |
Definition at line 71 of file tta-ff-mac-scheduler.h.
Referenced by TtaFfMacScheduler().
|
private |
Definition at line 160 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 164 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 170 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 130 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and TtaFfMacScheduler().
|
private |
Definition at line 184 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 198 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedUlCqiInfoReq(), and GetTypeId().
|
private |
Definition at line 194 of file tta-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and EstimateUlSinr().
|
private |
Definition at line 189 of file tta-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacCschedSapProvider(), and TtaFfMacScheduler().
|
private |
Definition at line 187 of file tta-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 141 of file tta-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and DoSchedDlTriggerReq().
|
private |
Definition at line 146 of file tta-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq().
|
private |
Definition at line 196 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 151 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 155 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 135 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), LcActivePerFlow(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 190 of file tta-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacSchedSapProvider(), and TtaFfMacScheduler().
|
private |
Definition at line 188 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 175 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), EstimateUlSinr(), and RefreshUlCqiMaps().
|
private |
Definition at line 179 of file tta-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 200 of file tta-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().