Implements the SCHED SAP and CSCHED SAP for a Priority Set scheduler. More...
#include <pss-ff-mac-scheduler.h>
Public Member Functions | |
PssFfMacScheduler () | |
Constructor. | |
virtual | ~PssFfMacScheduler () |
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 | PssSchedulerMemberCschedSapProvider |
class | PssSchedulerMemberSchedSapProvider |
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 Priority Set scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::PssFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 58 of file pss-ff-mac-scheduler.h.
ns3::PssFfMacScheduler::PssFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 215 of file pss-ff-mac-scheduler.cc.
References m_amc, m_cschedSapProvider, m_schedSapProvider, PssSchedulerMemberCschedSapProvider, and PssSchedulerMemberSchedSapProvider.
|
virtual |
|
private |
Definition at line 291 of file pss-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::PssSchedulerMemberCschedSapProvider::CschedCellConfigReq().
|
private |
Definition at line 319 of file pss-ff-mac-scheduler.cc.
References ns3::pssFlowPerf_t::flowStart, ns3::pssFlowPerf_t::lastAveragedThroughput, ns3::pssFlowPerf_t::lastTtiBytesTransmitted, m_flowStatsDl, m_flowStatsUl, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_logicalChannelConfigList, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_rnti, ns3::Now(), NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::pssFlowPerf_t::secondLastAveragedThroughput, ns3::pssFlowPerf_t::targetThroughput, and ns3::pssFlowPerf_t::totalBytesTransmitted.
Referenced by ns3::PssSchedulerMemberCschedSapProvider::CschedLcConfigReq().
|
private |
Definition at line 361 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberCschedSapProvider::CschedLcReleaseReq().
|
private |
Definition at line 303 of file pss-ff-mac-scheduler.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, m_uesTxMode, and NS_LOG_FUNCTION.
Referenced by ns3::PssSchedulerMemberCschedSapProvider::CschedUeConfigReq().
|
private |
Definition at line 368 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberCschedSapProvider::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 pss-ff-mac-scheduler.cc.
References m_cschedSapProvider, m_schedSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 998 of file pss-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::PssSchedulerMemberSchedSapProvider::SchedDlCqiInfoReq().
|
private |
Definition at line 407 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedDlMacBufferReq().
|
private |
Definition at line 400 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedDlPagingBufferReq().
|
private |
Definition at line 991 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedDlRachInfoReq().
|
private |
Definition at line 376 of file pss-ff-mac-scheduler.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, m_rlcBufferReq, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Definition at line 451 of file pss-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_fdSchedulerType, m_flowStatsDl, ns3::RlcPduListElement_s::m_logicalChannelIdentity, ns3::DlDciListElement_s::m_mcs, ns3::DlDciListElement_s::m_ndi, m_nMux, 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_timeWindow, m_uesTxMode, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, RefreshDlCqiMaps(), ns3::FfMacSchedSapUser::SchedDlConfigInd(), ns3::TransmissionModesLayers::TxMode2LayerNum(), and UpdateDlRlcBufferInfo().
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedDlTriggerReq().
|
private |
Definition at line 1294 of file pss-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::PssSchedulerMemberSchedSapProvider::SchedUlCqiInfoReq().
|
private |
Definition at line 1260 of file pss-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::PssSchedulerMemberSchedSapProvider::SchedUlMacCtrlInfoReq().
|
private |
Definition at line 1246 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedUlNoiseInterferenceReq().
|
private |
Definition at line 1253 of file pss-ff-mac-scheduler.cc.
References NS_FATAL_ERROR.
Referenced by ns3::PssSchedulerMemberSchedSapProvider::SchedUlSrInfoReq().
|
private |
Definition at line 1090 of file pss-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::PssSchedulerMemberSchedSapProvider::SchedUlTriggerReq().
|
private |
Definition at line 1059 of file pss-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 279 of file pss-ff-mac-scheduler.cc.
References m_cschedSapProvider.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 285 of file pss-ff-mac-scheduler.cc.
References m_schedSapProvider.
|
private |
Definition at line 414 of file pss-ff-mac-scheduler.cc.
References ns3::PssType0AllocationRbg.
Referenced by DoSchedDlTriggerReq().
|
static |
Reimplemented from ns3::FfMacScheduler.
Definition at line 240 of file pss-ff-mac-scheduler.cc.
References m_cqiTimersThreshold, m_fdSchedulerType, m_nMux, and ns3::TypeId::SetParent().
|
private |
Definition at line 429 of file pss-ff-mac-scheduler.cc.
References m_rlcBufferReq.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1442 of file pss-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 1495 of file pss-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 267 of file pss-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 273 of file pss-ff-mac-scheduler.cc.
References m_schedSapUser.
void ns3::PssFfMacScheduler::TransmissionModeConfigurationUpdate | ( | uint16_t | rnti, |
uint8_t | txMode | ||
) |
Definition at line 1599 of file pss-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 1525 of file pss-ff-mac-scheduler.cc.
References m_rlcBufferReq, and NS_LOG_ERROR.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 1575 of file pss-ff-mac-scheduler.cc.
References m_ceBsrRxed, and NS_LOG_ERROR.
Referenced by DoSchedUlTriggerReq().
|
friend |
Definition at line 83 of file pss-ff-mac-scheduler.h.
Referenced by PssFfMacScheduler().
|
friend |
Definition at line 84 of file pss-ff-mac-scheduler.h.
Referenced by PssFfMacScheduler().
|
private |
Definition at line 173 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 177 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 183 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and DoSchedUlTriggerReq().
Definition at line 143 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and PssFfMacScheduler().
|
private |
Definition at line 197 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedUlMacCtrlInfoReq(), DoSchedUlTriggerReq(), and UpdateUlRlcBufferInfo().
|
private |
Definition at line 213 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedUlCqiInfoReq(), and GetTypeId().
|
private |
Definition at line 207 of file pss-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), DoSchedDlTriggerReq(), DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), and EstimateUlSinr().
|
private |
Definition at line 202 of file pss-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacCschedSapProvider(), and PssFfMacScheduler().
|
private |
Definition at line 200 of file pss-ff-mac-scheduler.h.
Referenced by DoCschedCellConfigReq(), SetFfMacCschedSapUser(), and TransmissionModeConfigurationUpdate().
|
private |
Definition at line 217 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), and GetTypeId().
|
private |
Definition at line 154 of file pss-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq(), and DoSchedDlTriggerReq().
|
private |
Definition at line 159 of file pss-ff-mac-scheduler.h.
Referenced by DoCschedLcConfigReq().
|
private |
Definition at line 211 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedUlTriggerReq().
|
private |
Definition at line 219 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), and GetTypeId().
|
private |
Definition at line 164 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), DoSchedDlTriggerReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 168 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlCqiInfoReq(), and RefreshDlCqiMaps().
|
private |
Definition at line 148 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlRlcBufferReq(), DoSchedDlTriggerReq(), LcActivePerFlow(), and UpdateDlRlcBufferInfo().
|
private |
Definition at line 203 of file pss-ff-mac-scheduler.h.
Referenced by DoDispose(), GetFfMacSchedSapProvider(), and PssFfMacScheduler().
|
private |
Definition at line 201 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq(), DoSchedUlTriggerReq(), and SetFfMacSchedSapUser().
|
private |
Definition at line 209 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedDlTriggerReq().
|
private |
Definition at line 188 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), DoSchedUlTriggerReq(), EstimateUlSinr(), and RefreshUlCqiMaps().
|
private |
Definition at line 192 of file pss-ff-mac-scheduler.h.
Referenced by DoSchedUlCqiInfoReq(), and RefreshUlCqiMaps().
|
private |
Definition at line 215 of file pss-ff-mac-scheduler.h.
Referenced by DoCschedUeConfigReq(), and DoSchedDlTriggerReq().