Component carrier manager implementation that splits traffic equally among carriers. More...
#include "no-op-component-carrier-manager.h"
Public Member Functions | |
RrComponentCarrierManager () | |
virtual | ~RrComponentCarrierManager () override |
Public Member Functions inherited from ns3::NoOpComponentCarrierManager | |
NoOpComponentCarrierManager () | |
virtual | ~NoOpComponentCarrierManager () |
Public Member Functions inherited from ns3::LteEnbComponentCarrierManager | |
LteEnbComponentCarrierManager () | |
virtual | ~LteEnbComponentCarrierManager () |
virtual LteCcmMacSapUser * | GetLteCcmMacSapUser () |
This function returns a pointer to the LteCcmMacSapUser interface, which is used by MAC to communicate to CCM when e.g. More... | |
virtual LteCcmRrcSapProvider * | GetLteCcmRrcSapProvider () |
Export the "provider" part of the ComponentCarrier Management SAP interface. More... | |
virtual LteMacSapProvider * | GetLteMacSapProvider () |
Returns the pointer to the LteMacSapProvider interface, the provider of MAC, which is this new architecture served by LteEnbComponentCarrierManager object which will behave as a proxy, and will forward calls between to MAC objects of component carriers based on the logic implemented in the specific component carrier manager. More... | |
virtual bool | SetCcmMacSapProviders (uint8_t componentCarrierId, LteCcmMacSapProvider *sap) |
Set LteCcmMacSapProvider interface for the MAC object of the specified component carrier. More... | |
virtual void | SetLteCcmRrcSapUser (LteCcmRrcSapUser *s) |
Set the "user" part of the ComponentCarrier Management SAP interface that this ComponentCarrier algorithm instance will interact with. More... | |
virtual bool | SetMacSapProvider (uint8_t componentCarrierId, LteMacSapProvider *sap) |
Set LteMacSapProvider interface for the MAC object of the specified component carrier. More... | |
virtual void | SetNumberOfComponentCarriers (uint16_t noOfComponentCarriers) |
Sets the total number of component carriers. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Get the most derived TypeId for this Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::NoOpComponentCarrierManager | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::LteEnbComponentCarrierManager | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
virtual void | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters params) override |
Report buffer status. More... | |
virtual void | DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId) override |
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface. More... | |
virtual void | DoUlReceiveSr (uint16_t rnti, uint8_t componentCarrierId) override |
Forward uplink SR to CCM, called by MAC through CCM SAP interface. More... | |
Protected Member Functions inherited from ns3::NoOpComponentCarrierManager | |
virtual void | DoAddLc (LteEnbCmacSapProvider::LcInfo lcInfo, LteMacSapUser *msu) |
Add LC. More... | |
virtual void | DoAddUe (uint16_t rnti, uint8_t state) |
Add UE. More... | |
virtual LteMacSapUser * | DoConfigureSignalBearer (LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu) |
Configure the signal bearer. More... | |
virtual void | DoDispose () |
Destructor implementation. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | DoNotifyHarqDeliveryFailure () |
Notify HARQ delivery failure. More... | |
virtual void | DoNotifyPrbOccupancy (double prbOccupancy, uint8_t componentCarrierId) |
Function implements the function of the SAP interface of CCM instance which is used by MAC to notify the PRB occupancy reported by scheduler. More... | |
virtual void | DoNotifyTxOpportunity (LteMacSapUser::TxOpportunityParameters txOpParams) |
Notify transmit opportunity. More... | |
virtual void | DoReceivePdu (LteMacSapUser::ReceivePduParameters rxPduParams) |
Receive PDU. More... | |
virtual std::vector< uint8_t > | DoReleaseDataRadioBearer (uint16_t rnti, uint8_t lcid) |
Release data radio bearer. More... | |
virtual void | DoRemoveUe (uint16_t rnti) |
Remove UE. More... | |
virtual void | DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults) |
Implementation of ReportUeMeas. More... | |
virtual std::vector< LteCcmRrcSapProvider::LcsConfig > | DoSetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint16_t rnti, uint8_t lcid, uint8_t lcGroup, LteMacSapUser *msu) |
Setup data radio bearer. More... | |
virtual void | DoTransmitPdu (LteMacSapProvider::TransmitPduParameters params) |
Transmit PDU. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
Private Attributes | |
uint8_t | m_lastCcIdForSr {0} |
Last CCID to which a SR was routed. More... | |
Additional Inherited Members | |
Protected Attributes inherited from ns3::NoOpComponentCarrierManager | |
std::map< uint8_t, double > | m_ccPrbOccupancy |
The physical resource block occupancy per carrier. More... | |
Protected Attributes inherited from ns3::LteEnbComponentCarrierManager | |
std::map< uint8_t, LteCcmMacSapProvider * > | m_ccmMacSapProviderMap |
A map of pointers to the SAP interfaces of CCM instance that provides the CCM specific functionalities to MAC, i.e. More... | |
LteCcmMacSapUser * | m_ccmMacSapUser |
LteCcmMacSapUser is extended version of LteMacSapUser interface. More... | |
LteCcmRrcSapProvider * | m_ccmRrcSapProvider |
A pointer to the SAP interface of the CCM instance to receive API calls from the eNodeB RRC instance. More... | |
LteCcmRrcSapUser * | m_ccmRrcSapUser |
A pointer to SAP interface of RRC instance, i.e. More... | |
LteMacSapProvider * | m_macSapProvider |
A pointer to main SAP interface of the MAC instance, which is in this case handled by CCM. More... | |
std::map< uint8_t, LteMacSapProvider * > | m_macSapProvidersMap |
A map of pointers to real SAP interfaces of MAC instances. More... | |
uint16_t | m_noOfComponentCarriers |
The number component of carriers that are supported by this eNb. More... | |
Ptr< LteEnbRrc > | m_rrc |
A pointer to the RRC instance of this eNb. More... | |
std::map< uint16_t, UeInfo > | m_ueInfo |
The map from RNTI to UE information. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
Component carrier manager implementation that splits traffic equally among carriers.
ns3::RrComponentCarrierManager is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 280 bytes (on a 64-bit architecture).
Definition at line 165 of file no-op-component-carrier-manager.h.
ns3::RrComponentCarrierManager::RrComponentCarrierManager | ( | ) |
Definition at line 364 of file no-op-component-carrier-manager.cc.
References NS_LOG_FUNCTION.
|
overridevirtual |
Definition at line 370 of file no-op-component-carrier-manager.cc.
References NS_LOG_FUNCTION.
|
overrideprotectedvirtual |
Report buffer status.
params | the report buffer status parameters |
Reimplemented from ns3::NoOpComponentCarrierManager.
Definition at line 388 of file no-op-component-carrier-manager.cc.
References ns3::LteCcmRrcSapUser::GetUeManager(), ns3::LteMacSapProvider::ReportBufferStatusParameters::lcid, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapUser, ns3::LteEnbComponentCarrierManager::m_macSapProvidersMap, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueSize, ns3::LteMacSapProvider::ReportBufferStatusParameters::rnti, and ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueSize.
|
overrideprotectedvirtual |
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
bsr | the BSR |
componentCarrierId | the component carrier ID |
Reimplemented from ns3::NoOpComponentCarrierManager.
Definition at line 413 of file no-op-component-carrier-manager.cc.
References ns3::MacCeListElement_s::BSR, ns3::BufferSizeLevelBsr::BsrId2BufferSize(), ns3::BufferSizeLevelBsr::BufferSize2BsrId(), ns3::LteCcmRrcSapUser::GetUeManager(), ns3::MacCeValue_u::m_bufferStatus, ns3::LteEnbComponentCarrierManager::m_ccmMacSapProviderMap, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapUser, ns3::MacCeValue_u::m_crnti, ns3::MacCeListElement_s::m_macCeValue, ns3::MacCeValue_u::m_phr, ns3::MacCeListElement_s::m_rnti, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
overrideprotectedvirtual |
Forward uplink SR to CCM, called by MAC through CCM SAP interface.
rnti | RNTI of the UE that requested SR |
componentCarrierId | the component carrier ID that forwarded the SR |
Reimplemented from ns3::NoOpComponentCarrierManager.
Definition at line 462 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ccmMacSapProviderMap, m_lastCcIdForSr, ns3::LteEnbComponentCarrierManager::m_ueInfo, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 376 of file no-op-component-carrier-manager.cc.
References ns3::TypeId::SetParent().
|
private |
Last CCID to which a SR was routed.
Definition at line 185 of file no-op-component-carrier-manager.h.
Referenced by DoUlReceiveSr().