Implements the SCHED SAP and CSCHED SAP for a Round Robin scheduler. More...
#include <rr-ff-mac-scheduler.h>
Public Member Functions | |
RrFfMacScheduler () | |
Constructor. More... | |
virtual | ~RrFfMacScheduler () |
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) |
int | GetRbgSize (int dlbandwidth) |
uint8_t | HarqProcessAvailability (uint16_t rnti) |
Return the availability of free process for the RNTI specified. More... | |
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) |
Static Private Member Functions | |
static bool | SortRlcBufferReq (FfMacSchedSapProvider::SchedDlRlcBufferReqParameters i, FfMacSchedSapProvider::SchedDlRlcBufferReqParameters j) |
Private Attributes | |
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 |
bool | m_harqOn |
uint16_t | m_nextRntiDl |
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::list < 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 |
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 | RrSchedulerMemberCschedSapProvider |
class | RrSchedulerMemberSchedSapProvider |
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 Round Robin scheduler.
This class implements the interface defined by the FfMacScheduler abstract class
ns3::RrFfMacScheduler is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 62 of file rr-ff-mac-scheduler.h.
ns3::RrFfMacScheduler::RrFfMacScheduler | ( | ) |
Constructor.
Creates the MAC Scheduler interface implementation
Definition at line 216 of file rr-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 233 of file rr-ff-mac-scheduler.cc.
References NS_LOG_FUNCTION.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 287 of file rr-ff-mac-scheduler.cc.
|
virtual |
Implements ns3::FfMacScheduler.
Definition at line 293 of file rr-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 494 of file rr-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 275 of file rr-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 281 of file rr-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 527 of file rr-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 229 of file rr-ff-mac-scheduler.h.
Referenced by UpdateHarqProcessId().