The default component carrier manager that forwards all traffic, the uplink and the downlink, over the primary carrier, and will not use secondary carriers. More...
#include "no-op-component-carrier-manager.h"
Public Member Functions | |
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... | |
virtual void | SetRrc (const Ptr< LteEnbRrc > rrc) |
Sets a pointer to eNodeB RRC instance. 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<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. 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) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (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::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 | 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 (uint32_t bytes, uint8_t layer, uint8_t harqId, uint8_t componentCarrierId, uint16_t rnti, uint8_t lcid) |
Notify transmit opportunity. More... | |
virtual void | DoReceivePdu (Ptr< Packet > p, uint16_t rnti, uint8_t lcid) |
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 | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters params) |
Report buffer status. 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... | |
virtual void | DoUlReceiveMacCe (MacCeListElement_s bsr, uint8_t componentCarrierId) |
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface. 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... | |
Protected Attributes | |
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... | |
std::map< uint16_t, uint8_t > | m_enabledComponentCarrier |
This map tells for each RNTI the number of enabled component carriers. 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... | |
std::map< uint16_t, std::map< uint8_t, LteEnbCmacSapProvider::LcInfo > > | m_rlcLcInstantiated |
This map contains logical channel configuration per flow Id (rnti, lcid). More... | |
Ptr< LteEnbRrc > | m_rrc |
A pointer to the RRC instance of this eNb. More... | |
std::map< uint16_t, std::map< uint8_t, LteMacSapUser * > > | m_ueAttached |
The map that contains the rnti, lcid, SAP of the RLC instance. More... | |
std::map< uint16_t, uint8_t > | m_ueState |
Map of RRC states per UE (rnti, state), e.g. More... | |
Friends | |
class | EnbMacMemberLteMacSapProvider< NoOpComponentCarrierManager > |
allow EnbMacMemberLteMacSapProvider<NoOpComponentCarrierManager> class friend access More... | |
class | MemberLteCcmMacSapUser< NoOpComponentCarrierManager > |
allow MemberLteCcmMacSapUser<NoOpComponentCarrierManager> class friend access More... | |
class | MemberLteCcmRrcSapProvider< NoOpComponentCarrierManager > |
allow MemberLteCcmRrcSapProvider<NoOpComponentCarrierManager> class friend access More... | |
class | MemberLteCcmRrcSapUser< NoOpComponentCarrierManager > |
allow MemberLteCcmRrcSapUser<NoOpComponentCarrierManager> class friend access More... | |
Additional Inherited Members | |
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... | |
The default component carrier manager that forwards all traffic, the uplink and the downlink, over the primary carrier, and will not use secondary carriers.
To enable carrier aggregation feature, select another component carrier manager class, i.e., some of child classes of LteEnbComponentCarrierManager of NoOpComponentCarrierManager.
ns3::NoOpComponentCarrierManager 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 248 bytes (on a 64-bit architecture).
Definition at line 43 of file no-op-component-carrier-manager.h.
ns3::NoOpComponentCarrierManager::NoOpComponentCarrierManager | ( | ) |
Definition at line 33 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapProvider, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapUser, ns3::LteEnbComponentCarrierManager::m_macSapProvider, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 42 of file no-op-component-carrier-manager.cc.
References NS_LOG_FUNCTION.
|
protectedvirtual |
Add LC.
lcInfo | the LC info |
msu | the MSU |
Definition at line 194 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_rlcLcInstantiated, NS_ASSERT_MSG(), NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
protectedvirtual |
Add UE.
rnti | the RNTI |
state | the state |
Definition at line 141 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_enabledComponentCarrier, ns3::LteEnbComponentCarrierManager::m_rlcLcInstantiated, ns3::LteEnbComponentCarrierManager::m_ueAttached, ns3::LteEnbComponentCarrierManager::m_ueState, NS_ASSERT_MSG(), NS_FATAL_ERROR, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Configure the signal bearer.
lcinfo | the LteEnbCmacSapProvider::LcInfo |
msu | the MSU |
Definition at line 340 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_ueAttached, NS_ASSERT_MSG(), NS_LOG_ERROR, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
protectedvirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden 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::LteEnbComponentCarrierManager.
Definition at line 48 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapProvider, ns3::LteEnbComponentCarrierManager::m_macSapProvider, and NS_LOG_FUNCTION.
|
protectedvirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 70 of file no-op-component-carrier-manager.cc.
References ns3::Object::DoInitialize(), and NS_LOG_FUNCTION.
|
protectedvirtual |
Notify HARQ delivery failure.
Definition at line 128 of file no-op-component-carrier-manager.cc.
References NS_LOG_FUNCTION.
|
protectedvirtual |
Function implements the function of the SAP interface of CCM instance which is used by MAC to notify the PRB occupancy reported by scheduler.
prbOccupancy | the PRB occupancy |
componentCarrierId | the component carrier ID |
Definition at line 362 of file no-op-component-carrier-manager.cc.
References m_ccPrbOccupancy, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Notify transmit opportunity.
bytes | the number of bytes |
layer | the layer |
harqId | the HARQ ID |
componentCarrierId | the component carrier ID |
rnti | the RNTI |
lcid | the LCID |
Definition at line 102 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ueAttached, NS_ASSERT_MSG(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Receive PDU.
p | the packet |
rnti | the RNTI |
lcid | the LCID |
Definition at line 115 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ueAttached, NS_ASSERT_MSG(), and NS_LOG_FUNCTION.
|
protectedvirtual |
Release data radio bearer.
rnti | the RNTI |
lcid | the LCID |
Definition at line 308 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_enabledComponentCarrier, ns3::LteEnbComponentCarrierManager::m_rlcLcInstantiated, ns3::LteEnbComponentCarrierManager::m_ueAttached, NS_ASSERT_MSG(), NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Remove UE.
rnti | the RNTI |
Definition at line 203 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_enabledComponentCarrier, ns3::LteEnbComponentCarrierManager::m_ueState, NS_ASSERT_MSG(), and NS_LOG_FUNCTION.
|
protectedvirtual |
Report buffer status.
params | the report buffer status parameters |
Reimplemented in ns3::RrComponentCarrierManager.
Definition at line 92 of file no-op-component-carrier-manager.cc.
References ns3::LteCcmRrcSapUser::GetUeManager(), ns3::LteEnbComponentCarrierManager::m_ccmRrcSapUser, ns3::LteEnbComponentCarrierManager::m_macSapProvidersMap, NS_ASSERT_MSG(), NS_LOG_FUNCTION, and ns3::LteMacSapProvider::ReportBufferStatusParameters::rnti.
|
protectedvirtual |
Implementation of ReportUeMeas.
rnti | Radio Network Temporary Identity, an integer identifying the UE where the report originates from |
measResults | a single report of one measurement identity |
Implements ns3::LteEnbComponentCarrierManager.
Definition at line 134 of file no-op-component-carrier-manager.cc.
References ns3::LteRrcSap::MeasResults::measId, and NS_LOG_FUNCTION.
|
protectedvirtual |
Setup data radio bearer.
bearer | the radio bearer |
bearerId | the bearerID |
rnti | the RNTI |
lcid | the LCID |
lcGroup | the LC group |
msu | the MSU |
Definition at line 216 of file no-op-component-carrier-manager.cc.
References ns3::LteCcmRrcSapProvider::LcsConfig::componentCarrierId, ns3::GbrQosInformation::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::isGbr, ns3::EpsBearer::IsGbr(), ns3::LteCcmRrcSapProvider::LcsConfig::lc, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_enabledComponentCarrier, ns3::LteEnbComponentCarrierManager::m_noOfComponentCarriers, ns3::LteEnbComponentCarrierManager::m_rlcLcInstantiated, ns3::LteEnbComponentCarrierManager::m_ueAttached, ns3::GbrQosInformation::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::GbrQosInformation::mbrUl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, ns3::LteCcmRrcSapProvider::LcsConfig::msu, NS_ASSERT_MSG(), NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::EpsBearer::qci, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
protectedvirtual |
Transmit PDU.
params | the transmit PDU parameters |
Definition at line 82 of file no-op-component-carrier-manager.cc.
References ns3::LteMacSapProvider::TransmitPduParameters::componentCarrierId, ns3::LteEnbComponentCarrierManager::m_macSapProvidersMap, NS_ASSERT_MSG(), and NS_LOG_FUNCTION.
|
protectedvirtual |
Forwards uplink BSR to CCM, called by MAC through CCM SAP interface.
bsr | the BSR |
componentCarrierId | the component carrier ID |
Reimplemented in ns3::RrComponentCarrierManager.
Definition at line 370 of file no-op-component-carrier-manager.cc.
References ns3::MacCeListElement_s::BSR, ns3::BufferSizeLevelBsr::BsrId2BufferSize(), ns3::BufferSizeLevelBsr::BufferSize2BsrId(), ns3::MacCeValue_u::m_bufferStatus, ns3::LteEnbComponentCarrierManager::m_ccmMacSapProviderMap, ns3::MacCeValue_u::m_crnti, ns3::MacCeListElement_s::m_macCeType, ns3::MacCeListElement_s::m_macCeValue, ns3::MacCeValue_u::m_phr, ns3::MacCeListElement_s::m_rnti, NS_ASSERT_MSG(), NS_FATAL_ERROR, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 58 of file no-op-component-carrier-manager.cc.
References ns3::TypeId::SetParent().
|
friend |
allow EnbMacMemberLteMacSapProvider<NoOpComponentCarrierManager> class friend access
Definition at line 46 of file no-op-component-carrier-manager.h.
|
friend |
allow MemberLteCcmMacSapUser<NoOpComponentCarrierManager> class friend access
Definition at line 52 of file no-op-component-carrier-manager.h.
|
friend |
allow MemberLteCcmRrcSapProvider<NoOpComponentCarrierManager> class friend access
Definition at line 48 of file no-op-component-carrier-manager.h.
|
friend |
allow MemberLteCcmRrcSapUser<NoOpComponentCarrierManager> class friend access
Definition at line 50 of file no-op-component-carrier-manager.h.
|
protected |
The physical resource block occupancy per carrier.
Definition at line 156 of file no-op-component-carrier-manager.h.
Referenced by DoNotifyPrbOccupancy().