Implements the SCHED SAP and CSCHED SAP for a Time Domain Token Bank Fair Queue scheduler. More...
#include <tdtbfq-ff-mac-scheduler.h>
Public Member Functions | |
TdTbfqFfMacScheduler () | |
Constructor. More... | |
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 () |
![]() | |
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 | Initialize (void) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
void | DoCschedCellConfigReq (const struct FfMacCschedSapProvider::CschedCellConfigReqParameters ¶ms) |
void | DoCschedLcConfigReq (const struct FfMacCschedSapProvider::CschedLcConfigReqParameters ¶ms) |
void | DoCschedLcReleaseReq (const struct FfMacCschedSapProvider::CschedLcReleaseReqParameters ¶ms) |
void | DoCschedUeConfigReq (const struct FfMacCschedSapProvider::CschedUeConfigReqParameters ¶ms) |
void | DoCschedUeReleaseReq (const struct FfMacCschedSapProvider::CschedUeReleaseReqParameters ¶ms) |
void | DoSchedDlCqiInfoReq (const struct FfMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms) |
void | DoSchedDlMacBufferReq (const struct FfMacSchedSapProvider::SchedDlMacBufferReqParameters ¶ms) |
void | DoSchedDlPagingBufferReq (const struct FfMacSchedSapProvider::SchedDlPagingBufferReqParameters ¶ms) |
void | DoSchedDlRachInfoReq (const struct FfMacSchedSapProvider::SchedDlRachInfoReqParameters ¶ms) |
void | DoSchedDlRlcBufferReq (const struct FfMacSchedSapProvider::SchedDlRlcBufferReqParameters ¶ms) |
void | DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters ¶ms) |
void | DoSchedUlCqiInfoReq (const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms) |
void | DoSchedUlMacCtrlInfoReq (const struct FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ¶ms) |
void | DoSchedUlNoiseInterferenceReq (const struct FfMacSchedSapProvider::SchedUlNoiseInterferenceReqParameters ¶ms) |
void | DoSchedUlSrInfoReq (const struct FfMacSchedSapProvider::SchedUlSrInfoReqParameters ¶ms) |
void | DoSchedUlTriggerReq (const struct FfMacSchedSapProvider::SchedUlTriggerReqParameters ¶ms) |
double | EstimateUlSinr (uint16_t rnti, uint16_t rb) |
int | GetRbgSize (int dlbandwidth) |
uint8_t | HarqProcessAvailability (uint16_t rnti) |
Return the availability of free process for the RNTI specified. More... | |
int | LcActivePerFlow (uint16_t rnti) |
void | RefreshDlCqiMaps (void) |
void | RefreshHarqProcesses () |
Refresh HARQ processes according to the timers. | |
void | RefreshUlCqiMaps (void) |
void | UpdateDlRlcBufferInfo (uint16_t rnti, uint8_t lcid, uint16_t size) |
uint8_t | UpdateHarqProcessId (uint16_t rnti) |
Update and return a new process Id for the RNTI specified. More... | |
void | UpdateUlRlcBufferInfo (uint16_t rnti, uint16_t size) |
Private Attributes | |
uint64_t | bankSize |
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 |
uint32_t | m_creditableThreshold |
uint32_t | m_creditLimit |
FfMacCschedSapProvider::CschedCellConfigReqParameters | m_cschedCellConfig |
FfMacCschedSapProvider * | m_cschedSapProvider |
FfMacCschedSapUser * | m_cschedSapUser |
int | m_debtLimit |
std::map< uint16_t, uint8_t > | m_dlHarqCurrentProcessId |
std::map< uint16_t, DlHarqProcessesDciBuffer_t > | m_dlHarqProcessesDciBuffer |
std::map< uint16_t, DlHarqRlcPduListBuffer_t > | m_dlHarqProcessesRlcPduListBuffer |
std::map< uint16_t, DlHarqProcessesStatus_t > | m_dlHarqProcessesStatus |
std::map< uint16_t, DlHarqProcessesTimer_t > | m_dlHarqProcessesTimer |
std::vector< DlInfoListElement_s > | m_dlInfoListBuffered |
std::map< uint16_t, tdtbfqsFlowPerf_t > | m_flowStatsDl |
std::map< uint16_t, tdtbfqsFlowPerf_t > | m_flowStatsUl |
bool | m_harqOn |
uint16_t | m_nextRntiUl |
std::map< uint16_t, uint8_t > | m_p10CqiRxed |
std::map< uint16_t, uint32_t > | m_p10CqiTimers |
std::vector< uint16_t > | m_rachAllocationMap |
std::vector< struct RachListElement_s > | m_rachList |
std::map< LteFlowId_t, FfMacSchedSapProvider::SchedDlRlcBufferReqParameters > | m_rlcBufferReq |
FfMacSchedSapProvider * | m_schedSapProvider |
FfMacSchedSapUser * | m_schedSapUser |
double | m_timeWindow |
uint32_t | m_tokenPoolSize |
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 |
uint8_t | m_ulGrantMcs |
std::map< uint16_t, uint8_t > | m_ulHarqCurrentProcessId |
std::map< uint16_t, UlHarqProcessesDciBuffer_t > | m_ulHarqProcessesDciBuffer |
std::map< uint16_t, UlHarqProcessesStatus_t > | m_ulHarqProcessesStatus |
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 | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
![]() | |
UlCqiFilter_t | m_ulCqiFilter |
Implements the SCHED SAP and CSCHED SAP for a Time 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 83 of file tdtbfq-ff-mac-scheduler.h.
ns3::TdTbfqFfMacScheduler::TdTbfqFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 216 of file tdtbfq-ff-mac-scheduler.cc.
|
virtual |
|
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 234 of file tdtbfq-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 309 of file tdtbfq-ff-mac-scheduler.cc.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 315 of file tdtbfq-ff-mac-scheduler.cc.
|
private |
Return the availability of free process for the RNTI specified.
rnti | the RNTI of the UE to be updated |
Definition at line 571 of file tdtbfq-ff-mac-scheduler.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
|
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 297 of file tdtbfq-ff-mac-scheduler.cc.
|
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 303 of file tdtbfq-ff-mac-scheduler.cc.
|
private |
Update and return a new process Id for the RNTI specified.
rnti | the RNTI of the UE to be updated |
Definition at line 604 of file tdtbfq-ff-mac-scheduler.cc.
References m_harqOn, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
|
private |
m_harqOn when false inhibit te HARQ mechanisms (by default active)
Definition at line 281 of file tdtbfq-ff-mac-scheduler.h.
Referenced by UpdateHarqProcessId().