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 () | |
~NoOpComponentCarrierManager () override | |
Public Member Functions inherited from ns3::LteEnbComponentCarrierManager | |
LteEnbComponentCarrierManager () | |
~LteEnbComponentCarrierManager () override | |
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... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated 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... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () 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 () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () 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 errors. 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 () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
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... | |
void | DoDispose () override |
Destructor implementation. More... | |
void | DoInitialize () override |
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 | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters params) |
Report buffer status. More... | |
void | DoReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults) override |
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... | |
virtual void | DoUlReceiveSr (uint16_t rnti, uint8_t componentCarrierId) |
Forward uplink SR 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 () |
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 () |
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... | |
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... | |
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 () |
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.
Definition at line 44 of file no-op-component-carrier-manager.h.
ns3::NoOpComponentCarrierManager::NoOpComponentCarrierManager | ( | ) |
Definition at line 36 of file no-op-component-carrier-manager.cc.
References EnbMacMemberLteMacSapProvider< NoOpComponentCarrierManager >, ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapProvider, ns3::LteEnbComponentCarrierManager::m_ccmRrcSapUser, ns3::LteEnbComponentCarrierManager::m_macSapProvider, MemberLteCcmMacSapUser< NoOpComponentCarrierManager >, MemberLteCcmRrcSapProvider< NoOpComponentCarrierManager >, and NS_LOG_FUNCTION.
|
override |
Definition at line 45 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 163 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
protectedvirtual |
Add UE.
rnti | the RNTI |
state | the state |
Definition at line 136 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::UeInfo::m_enabledComponentCarrier, ns3::LteEnbComponentCarrierManager::m_ueInfo, ns3::LteEnbComponentCarrierManager::UeInfo::m_ueState, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Configure the signal bearer.
lcinfo | the LteEnbCmacSapProvider::LcInfo |
msu | the MSU |
Definition at line 282 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_ASSERT_MSG, NS_LOG_ERROR, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
overrideprotectedvirtual |
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 51 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.
|
overrideprotectedvirtual |
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 124 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 305 of file no-op-component-carrier-manager.cc.
References m_ccPrbOccupancy, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
protectedvirtual |
Notify transmit opportunity.
txOpParams | the LteMacSapUser::TxOpportunityParameters |
Definition at line 103 of file no-op-component-carrier-manager.cc.
References ns3::LteMacSapUser::TxOpportunityParameters::componentCarrierId, ns3::LteMacSapUser::TxOpportunityParameters::layer, ns3::LteMacSapUser::TxOpportunityParameters::lcid, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::LteMacSapUser::TxOpportunityParameters::rnti.
|
protectedvirtual |
Receive PDU.
rxPduParams | the LteMacSapUser::ReceivePduParameters |
Definition at line 113 of file no-op-component-carrier-manager.cc.
References ns3::LteMacSapUser::ReceivePduParameters::lcid, ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_LOG_FUNCTION, and ns3::LteMacSapUser::ReceivePduParameters::rnti.
|
protectedvirtual |
Release data radio bearer.
rnti | the RNTI |
lcid | the LCID |
Definition at line 252 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ueInfo, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::res.
|
protectedvirtual |
Remove UE.
rnti | the RNTI |
Definition at line 170 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ueInfo, 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 two-ray-to-three-gpp-ch-calibration::params.
|
overrideprotectedvirtual |
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 130 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 179 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::EpsBearer::GetResourceType(), ns3::LteCcmRrcSapProvider::LcsConfig::lc, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, ns3::LteEnbComponentCarrierManager::m_ccmMacSapUser, ns3::LteEnbComponentCarrierManager::m_noOfComponentCarriers, ns3::LteEnbComponentCarrierManager::m_ueInfo, 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::EpsBearer::qci, ns3::LteEnbCmacSapProvider::LcInfo::qci, two-ray-to-three-gpp-ch-calibration::res, ns3::LteEnbCmacSapProvider::LcInfo::resourceType, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
|
protectedvirtual |
Transmit PDU.
params | the transmit PDU parameters |
Definition at line 81 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_macSapProvidersMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
|
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 314 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_macCeValue, ns3::MacCeValue_u::m_phr, ns3::MacCeListElement_s::m_rnti, NS_ASSERT_MSG, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
|
protectedvirtual |
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 in ns3::RrComponentCarrierManager.
Definition at line 361 of file no-op-component-carrier-manager.cc.
References ns3::LteEnbComponentCarrierManager::m_ccmMacSapProviderMap, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 60 of file no-op-component-carrier-manager.cc.
References ns3::TypeId::SetParent().
|
friend |
allow EnbMacMemberLteMacSapProvider<NoOpComponentCarrierManager> class friend access
Definition at line 1 of file no-op-component-carrier-manager.h.
Referenced by NoOpComponentCarrierManager().
|
friend |
allow MemberLteCcmMacSapUser<NoOpComponentCarrierManager> class friend access
Definition at line 1 of file no-op-component-carrier-manager.h.
Referenced by NoOpComponentCarrierManager().
|
friend |
allow MemberLteCcmRrcSapProvider<NoOpComponentCarrierManager> class friend access
Definition at line 1 of file no-op-component-carrier-manager.h.
Referenced by NoOpComponentCarrierManager().
|
friend |
allow MemberLteCcmRrcSapUser<NoOpComponentCarrierManager> class friend access
Definition at line 1 of file no-op-component-carrier-manager.h.
|
protected |
The physical resource block occupancy per carrier.
Definition at line 163 of file no-op-component-carrier-manager.h.
Referenced by DoNotifyPrbOccupancy().