A Discrete-Event Network Simulator
API
ns3::NoOpComponentCarrierManager Class Reference

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"

+ Inheritance diagram for ns3::NoOpComponentCarrierManager:
+ Collaboration diagram for ns3::NoOpComponentCarrierManager:

Public Member Functions

 NoOpComponentCarrierManager ()
 
 ~NoOpComponentCarrierManager () override
 
- Public Member Functions inherited from ns3::LteEnbComponentCarrierManager
 LteEnbComponentCarrierManager ()
 
 ~LteEnbComponentCarrierManager () override
 
virtual LteCcmMacSapUserGetLteCcmMacSapUser ()
 This function returns a pointer to the LteCcmMacSapUser interface, which is used by MAC to communicate to CCM when e.g. More...
 
virtual LteCcmRrcSapProviderGetLteCcmRrcSapProvider ()
 Export the "provider" part of the ComponentCarrier Management SAP interface. More...
 
virtual LteMacSapProviderGetLteMacSapProvider ()
 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< ObjectGetObject () 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< ObjectGetObject (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...
 
SimpleRefCountoperator= (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 LteMacSapUserDoConfigureSignalBearer (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::LcsConfigDoSetupDataRadioBearer (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...
 
LteCcmMacSapUserm_ccmMacSapUser
 LteCcmMacSapUser is extended version of LteMacSapUser interface. More...
 
LteCcmRrcSapProviderm_ccmRrcSapProvider
 A pointer to the SAP interface of the CCM instance to receive API calls from the eNodeB RRC instance. More...
 
LteCcmRrcSapUserm_ccmRrcSapUser
 A pointer to SAP interface of RRC instance, i.e. More...
 
LteMacSapProviderm_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< LteEnbRrcm_rrc
 A pointer to the RRC instance of this eNb. More...
 
std::map< uint16_t, UeInfom_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

Detailed Description

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.

Constructor & Destructor Documentation

◆ NoOpComponentCarrierManager()

◆ ~NoOpComponentCarrierManager()

ns3::NoOpComponentCarrierManager::~NoOpComponentCarrierManager ( )
override

Definition at line 45 of file no-op-component-carrier-manager.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ DoAddLc()

void ns3::NoOpComponentCarrierManager::DoAddLc ( LteEnbCmacSapProvider::LcInfo  lcInfo,
LteMacSapUser msu 
)
protectedvirtual

◆ DoAddUe()

void ns3::NoOpComponentCarrierManager::DoAddUe ( uint16_t  rnti,
uint8_t  state 
)
protectedvirtual

◆ DoConfigureSignalBearer()

LteMacSapUser * ns3::NoOpComponentCarrierManager::DoConfigureSignalBearer ( LteEnbCmacSapProvider::LcInfo  lcinfo,
LteMacSapUser msu 
)
protectedvirtual

◆ DoDispose()

void ns3::NoOpComponentCarrierManager::DoDispose ( void  )
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.

◆ DoInitialize()

void ns3::NoOpComponentCarrierManager::DoInitialize ( void  )
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.

+ Here is the call graph for this function:

◆ DoNotifyHarqDeliveryFailure()

void ns3::NoOpComponentCarrierManager::DoNotifyHarqDeliveryFailure ( )
protectedvirtual

Notify HARQ delivery failure.

Definition at line 124 of file no-op-component-carrier-manager.cc.

References NS_LOG_FUNCTION.

◆ DoNotifyPrbOccupancy()

void ns3::NoOpComponentCarrierManager::DoNotifyPrbOccupancy ( double  prbOccupancy,
uint8_t  componentCarrierId 
)
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.

Parameters
prbOccupancythe PRB occupancy
componentCarrierIdthe 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.

◆ DoNotifyTxOpportunity()

◆ DoReceivePdu()

void ns3::NoOpComponentCarrierManager::DoReceivePdu ( LteMacSapUser::ReceivePduParameters  rxPduParams)
protectedvirtual

◆ DoReleaseDataRadioBearer()

std::vector< uint8_t > ns3::NoOpComponentCarrierManager::DoReleaseDataRadioBearer ( uint16_t  rnti,
uint8_t  lcid 
)
protectedvirtual

Release data radio bearer.

Parameters
rntithe RNTI
lcidthe LCID
Returns
updated data radio bearer list

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.

◆ DoRemoveUe()

void ns3::NoOpComponentCarrierManager::DoRemoveUe ( uint16_t  rnti)
protectedvirtual

Remove UE.

Parameters
rntithe 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.

◆ DoReportBufferStatus()

void ns3::NoOpComponentCarrierManager::DoReportBufferStatus ( LteMacSapProvider::ReportBufferStatusParameters  params)
protectedvirtual

Report buffer status.

Parameters
paramsthe 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.

+ Here is the call graph for this function:

◆ DoReportUeMeas()

void ns3::NoOpComponentCarrierManager::DoReportUeMeas ( uint16_t  rnti,
LteRrcSap::MeasResults  measResults 
)
overrideprotectedvirtual

Implementation of ReportUeMeas.

Parameters
rntiRadio Network Temporary Identity, an integer identifying the UE where the report originates from
measResultsa 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.

◆ DoSetupDataRadioBearer()

std::vector< LteCcmRrcSapProvider::LcsConfig > ns3::NoOpComponentCarrierManager::DoSetupDataRadioBearer ( EpsBearer  bearer,
uint8_t  bearerId,
uint16_t  rnti,
uint8_t  lcid,
uint8_t  lcGroup,
LteMacSapUser msu 
)
protectedvirtual

◆ DoTransmitPdu()

void ns3::NoOpComponentCarrierManager::DoTransmitPdu ( LteMacSapProvider::TransmitPduParameters  params)
protectedvirtual

Transmit PDU.

Parameters
paramsthe 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.

◆ DoUlReceiveMacCe()

void ns3::NoOpComponentCarrierManager::DoUlReceiveMacCe ( MacCeListElement_s  bsr,
uint8_t  componentCarrierId 
)
protectedvirtual

◆ DoUlReceiveSr()

void ns3::NoOpComponentCarrierManager::DoUlReceiveSr ( uint16_t  rnti,
uint8_t  componentCarrierId 
)
protectedvirtual

Forward uplink SR to CCM, called by MAC through CCM SAP interface.

Parameters
rntiRNTI of the UE that requested SR
componentCarrierIdthe 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.

◆ GetTypeId()

TypeId ns3::NoOpComponentCarrierManager::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 60 of file no-op-component-carrier-manager.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

Friends And Related Function Documentation

◆ EnbMacMemberLteMacSapProvider< NoOpComponentCarrierManager >

allow EnbMacMemberLteMacSapProvider<NoOpComponentCarrierManager> class friend access

Definition at line 1 of file no-op-component-carrier-manager.h.

Referenced by NoOpComponentCarrierManager().

◆ MemberLteCcmMacSapUser< NoOpComponentCarrierManager >

allow MemberLteCcmMacSapUser<NoOpComponentCarrierManager> class friend access

Definition at line 1 of file no-op-component-carrier-manager.h.

Referenced by NoOpComponentCarrierManager().

◆ MemberLteCcmRrcSapProvider< NoOpComponentCarrierManager >

allow MemberLteCcmRrcSapProvider<NoOpComponentCarrierManager> class friend access

Definition at line 1 of file no-op-component-carrier-manager.h.

Referenced by NoOpComponentCarrierManager().

◆ MemberLteCcmRrcSapUser< NoOpComponentCarrierManager >

allow MemberLteCcmRrcSapUser<NoOpComponentCarrierManager> class friend access

Definition at line 1 of file no-op-component-carrier-manager.h.

Member Data Documentation

◆ m_ccPrbOccupancy

std::map<uint8_t, double> ns3::NoOpComponentCarrierManager::m_ccPrbOccupancy
protected

The physical resource block occupancy per carrier.

Definition at line 163 of file no-op-component-carrier-manager.h.

Referenced by DoNotifyPrbOccupancy().


The documentation for this class was generated from the following files: