Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Blind Equal Throughput scheduler. More...
#include <fdbet-ff-mac-scheduler.h>
Public Member Functions | |
FdBetFfMacScheduler () | |
Constructor. More... | |
virtual | ~FdBetFfMacScheduler () |
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 | |
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::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, fdbetsFlowPerf_t > | m_flowStatsDl |
std::map< uint16_t, fdbetsFlowPerf_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 |
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 | FdBetSchedulerMemberCschedSapProvider |
class | FdBetSchedulerMemberSchedSapProvider |
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 Frequency Domain Blind Equal Throughput scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::FdBetFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 76 of file fdbet-ff-mac-scheduler.h.
ns3::FdBetFfMacScheduler::FdBetFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 215 of file fdbet-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 232 of file fdbet-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 286 of file fdbet-ff-mac-scheduler.cc.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 292 of file fdbet-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 528 of file fdbet-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 274 of file fdbet-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 280 of file fdbet-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 561 of file fdbet-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 264 of file fdbet-ff-mac-scheduler.h.
Referenced by UpdateHarqProcessId().