Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Token Bank Fair Queue scheduler. More...
#include <fdtbfq-ff-mac-scheduler.h>
Public Member Functions | |
FdTbfqFfMacScheduler () | |
Constructor. More... | |
virtual | ~FdTbfqFfMacScheduler () |
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) |
Public Member Functions inherited from ns3::FfMacScheduler | |
FfMacScheduler () | |
virtual | ~FfMacScheduler () |
Public Member Functions inherited from ns3::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 | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::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) |
Static Public Member Functions inherited from ns3::FfMacScheduler | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
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, fdtbfqsFlowPerf_t > | m_flowStatsDl |
std::map< uint16_t, fdtbfqsFlowPerf_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 | FdTbfqSchedulerMemberCschedSapProvider |
class | FdTbfqSchedulerMemberSchedSapProvider |
Additional Inherited Members | |
Public Types inherited from ns3::FfMacScheduler | |
enum | UlCqiFilter_t { SRS_UL_CQI, PUSCH_UL_CQI, ALL_UL_CQI } |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Protected Attributes inherited from ns3::FfMacScheduler | |
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::FdTbfqFfMacScheduler 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 fdtbfq-ff-mac-scheduler.h.
ns3::FdTbfqFfMacScheduler::FdTbfqFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 216 of file fdtbfq-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 fdtbfq-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 309 of file fdtbfq-ff-mac-scheduler.cc.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 315 of file fdtbfq-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 fdtbfq-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 fdtbfq-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 fdtbfq-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 fdtbfq-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 fdtbfq-ff-mac-scheduler.h.
Referenced by UpdateHarqProcessId().