A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::LteEnbRrc Class Reference

#include <lte-enb-rrc.h>

+ Inheritance diagram for ns3::LteEnbRrc:
+ Collaboration diagram for ns3::LteEnbRrc:

Public Member Functions

 LteEnbRrc ()
virtual ~LteEnbRrc ()
uint16_t AddUe (uint64_t imsi)
void ConfigureCell (uint8_t ulBandwidth, uint8_t dlBandwidth)
void ConfigureNewUe (uint16_t rnti)
virtual void DoDispose (void)
uint16_t GetLastAllocatedRnti () const
LteEnbCmacSapUserGetLteEnbCmacSapUser ()
std::map< uint16_t, Ptr< UeInfo > > GetUeMap (void) const
void ReleaseRadioBearer (uint16_t rnti, uint8_t lcId)
void RemoveUe (uint16_t rnti)
bool Send (Ptr< Packet > p)
void SetCellId (uint16_t m_cellId)
void SetFfMacSchedSapProvider (FfMacSchedSapProvider *s)
void SetForwardUpCallback (Callback< void, Ptr< Packet > > cb)
void SetLastAllocatedRnti (uint16_t lastAllocatedRnti)
void SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s)
void SetLteMacSapProvider (LteMacSapProvider *s)
void SetUeMap (std::map< uint16_t, Ptr< UeInfo > > ueMap)
uint8_t SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId)
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~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 Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~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)

Private Member Functions

uint16_t CreateUeInfo (uint64_t imsi)
void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success)
void DoReceiveRrcPdu (LtePdcpSapUser::ReceiveRrcPduParameters params)
void DoRrcConfigurationUpdateInd (LteUeConfig_t params)
LtePdcpSapProviderGetLtePdcpSapProvider (uint16_t rnti, uint8_t lcid)
uint16_t GetNewSrsConfigurationIndex (void)
Ptr< UeInfoGetUeInfo (uint16_t rnti)
void RemoveSrsConfigurationIndex (uint16_t srcCi)
void RemoveUeInfo (uint16_t rnti)
void SendUeConfigurationUpdate (LteUeConfig_t params)

Private Attributes

uint16_t m_cellId
LteEnbCmacSapProviderm_cmacSapProvider
LteEnbCmacSapUserm_cmacSapUser
bool m_configured
uint8_t m_defaultTransmissionMode
FfMacSchedSapProviderm_ffMacSchedSapProvider
Callback< void, Ptr< Packet > > m_forwardUpCallback
uint16_t m_lastAllocatedConfigurationIndex
uint16_t m_lastAllocatedRnti
LteMacSapProviderm_macSapProvider
LtePdcpSapUserm_pdcpSapUser
bool m_reconfigureUes
uint16_t m_srsCurrentPeriodicityId
std::map< uint16_t, Ptr< UeInfo > > m_ueMap
std::set< uint16_t > m_ueSrsConfigurationIndexSet

Friends

class EnbRrcMemberLteEnbCmacSapUser
class LtePdcpSpecificLtePdcpSapUser< LteEnbRrc >

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoStart (void)
virtual void NotifyNewAggregate (void)

Detailed Description

Config Paths

ns3::LteEnbRrc is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/LteEnbRrc
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/LteEnbRrc

Attributes

No TraceSources are defined for this type.

Definition at line 104 of file lte-enb-rrc.h.

Constructor & Destructor Documentation

ns3::LteEnbRrc::LteEnbRrc ( )

create an RRC instance for use within an eNB

Definition at line 251 of file lte-enb-rrc.cc.

References EnbRrcMemberLteEnbCmacSapUser, m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.

ns3::LteEnbRrc::~LteEnbRrc ( )
virtual

Destructor

Definition at line 267 of file lte-enb-rrc.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

uint16_t ns3::LteEnbRrc::AddUe ( uint64_t  imsi)

Add a new UE to the cell

Parameters
imsiIMSI of the attaching UE
Returns
the C-RNTI of the newly added UE

Definition at line 373 of file lte-enb-rrc.cc.

References ns3::LteEnbCmacSapProvider::AddUe(), CreateUeInfo(), m_cmacSapProvider, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::Attach().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::ConfigureCell ( uint8_t  ulBandwidth,
uint8_t  dlBandwidth 
)

configure cell-specific parameters

Parameters
ulBandwidththe uplink bandwidth in number of RB
dlBandwidththe downlink bandwidth in number of RB

Definition at line 364 of file lte-enb-rrc.cc.

References ns3::LteEnbCmacSapProvider::ConfigureMac(), m_cmacSapProvider, m_configured, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by ns3::LteEnbNetDevice::UpdateConfig().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::ConfigureNewUe ( uint16_t  rnti)

Configure the UE peer RRC with all the correspondet info

Parameters
rntithe RNTI of the UE to be configured

Definition at line 696 of file lte-enb-rrc.cc.

References ns3::LteUeConfig_t::m_rnti, m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and SendUeConfigurationUpdate().

Referenced by ns3::LteHelper::Attach().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::LteEnbRrc::CreateUeInfo ( uint64_t  imsi)
private

Definition at line 514 of file lte-enb-rrc.cc.

References GetNewSrsConfigurationIndex(), ns3::UeInfo::GetSrsConfigurationIndex(), m_cellId, m_lastAllocatedRnti, m_ueMap, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by AddUe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 274 of file lte-enb-rrc.cc.

References m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::DoNotifyLcConfigResult ( uint16_t  rnti,
uint8_t  lcid,
bool  success 
)
private

Definition at line 489 of file lte-enb-rrc.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::DoRrcConfigurationUpdateInd ( LteUeConfig_t  params)
private
uint16_t ns3::LteEnbRrc::GetLastAllocatedRnti ( ) const

Definition at line 303 of file lte-enb-rrc.cc.

References m_lastAllocatedRnti, and NS_LOG_FUNCTION.

LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser ( )

Get the CMAC SAP offered by this RRC

Returns
s the CMAC SAP User interface offered to the MAC by this RRC

Definition at line 336 of file lte-enb-rrc.cc.

References m_cmacSapUser, and NS_LOG_FUNCTION.

LtePdcpSapProvider * ns3::LteEnbRrc::GetLtePdcpSapProvider ( uint16_t  rnti,
uint8_t  lcid 
)
private

Definition at line 358 of file lte-enb-rrc.cc.

References ns3::LtePdcp::GetLtePdcpSapProvider(), ns3::UeInfo::GetRadioBearer(), GetUeInfo(), and ns3::LteRadioBearerInfo::m_pdcp.

Referenced by Send().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from ns3::Object.

Definition at line 282 of file lte-enb-rrc.cc.

References m_defaultTransmissionMode, m_ueMap, ns3::MakeObjectMapAccessor(), NS_LOG_FUNCTION, and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

Ptr< UeInfo > ns3::LteEnbRrc::GetUeInfo ( uint16_t  rnti)
private

Definition at line 657 of file lte-enb-rrc.cc.

References m_ueMap, NS_ABORT_IF, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by GetLtePdcpSapProvider(), ReleaseRadioBearer(), and SetupRadioBearer().

+ Here is the caller graph for this function:

std::map< uint16_t, Ptr< UeInfo > > ns3::LteEnbRrc::GetUeMap ( void  ) const

Definition at line 308 of file lte-enb-rrc.cc.

References m_ueMap.

void ns3::LteEnbRrc::ReleaseRadioBearer ( uint16_t  rnti,
uint8_t  lcId 
)

Release the given radio bearer

Parameters
rntithe C-RNTI of the user owning the bearer
lcIdthe logical channel id of the bearer to be released

Definition at line 439 of file lte-enb-rrc.cc.

References GetUeInfo(), NS_LOG_FUNCTION, and ns3::UeInfo::RemoveRadioBearer().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::RemoveUe ( uint16_t  rnti)

remove a UE from the cell

Parameters
rntithe C-RNTI identiftying the user

Definition at line 384 of file lte-enb-rrc.cc.

References NS_FATAL_ERROR, NS_LOG_FUNCTION, and RemoveUeInfo().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::RemoveUeInfo ( uint16_t  rnti)
private

Definition at line 667 of file lte-enb-rrc.cc.

References m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, and RemoveSrsConfigurationIndex().

Referenced by RemoveUe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::LteEnbRrc::Send ( Ptr< Packet p)

Enqueue an IP packet on the proper bearer for downlink transmission

Parameters
pthe packet
Returns
true if successful, false if an error occurred

Definition at line 449 of file lte-enb-rrc.cc.

References ns3::LteRadioBearerTag::GetLcid(), GetLtePdcpSapProvider(), ns3::LteRadioBearerTag::GetRnti(), ns3::LtePdcpSapProvider::TransmitRrcPduParameters::lcid, NS_ASSERT, NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rnti, ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rrcPdu, and ns3::LtePdcpSapProvider::TransmitRrcPdu().

Referenced by ns3::LteEnbNetDevice::Send().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::SetCellId ( uint16_t  m_cellId)

Definition at line 508 of file lte-enb-rrc.cc.

References m_cellId.

Referenced by ns3::LteEnbNetDevice::UpdateConfig().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::SetFfMacSchedSapProvider ( FfMacSchedSapProvider s)

set the FF MAC SCHED SAP provider. The eNB RRC does not use this directly, but it needs to provide it to newly created RLC instances.

Parameters
sthe FF MAC SCHED SAP provider that will be used by all newly created RLC instances

Definition at line 343 of file lte-enb-rrc.cc.

References m_ffMacSchedSapProvider, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::SetForwardUpCallback ( Callback< void, Ptr< Packet > >  cb)

set the callback used to forward data packets up the stack

Parameters
void
cb

Definition at line 468 of file lte-enb-rrc.cc.

References m_forwardUpCallback.

void ns3::LteEnbRrc::SetLastAllocatedRnti ( uint16_t  lastAllocatedRnti)

Definition at line 320 of file lte-enb-rrc.cc.

References m_lastAllocatedRnti, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::SetLteEnbCmacSapProvider ( LteEnbCmacSapProvider s)

set the CMAC SAP this RRC should interact with

Parameters
sthe CMAC SAP Provider to be used by this RRC

Definition at line 329 of file lte-enb-rrc.cc.

References m_cmacSapProvider, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::InstallSingleEnbDevice().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::SetLteMacSapProvider ( LteMacSapProvider s)

set the MAC SAP provider. The eNB RRC does not use this directly, but it needs to provide it to newly created RLC instances.

Parameters
sthe MAC SAP provider that will be used by all newly created RLC instances

Definition at line 351 of file lte-enb-rrc.cc.

References m_macSapProvider, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::SetUeMap ( std::map< uint16_t, Ptr< UeInfo > >  ueMap)

Definition at line 313 of file lte-enb-rrc.cc.

References m_ueMap.

uint8_t ns3::LteEnbRrc::SetupRadioBearer ( uint16_t  rnti,
EpsBearer  bearer,
TypeId  rlcTypeId 
)

Setup a new radio bearer for the given user

Parameters
rntithe RNTI of the user
bearerthe characteristics of the bearer to be activated
rlcTypeIdthe TypeId identifying the type of RLC to be used for this bearer.
Returns
the logical channel identifier of the radio bearer for the considered user

Definition at line 392 of file lte-enb-rrc.cc.

References ns3::LteEnbCmacSapProvider::AddLc(), ns3::UeInfo::AddRadioBearer(), ns3::ObjectFactory::Create(), ns3::GbrQosInformation::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::LtePdcp::GetLteRlcSapUser(), ns3::Object::GetObject(), ns3::LteRlcSm::GetTypeId(), GetUeInfo(), ns3::LteEnbCmacSapProvider::LcInfo::isGbr, ns3::EpsBearer::IsGbr(), ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, m_cmacSapProvider, m_macSapProvider, ns3::LteRadioBearerInfo::m_pdcp, m_pdcpSapUser, ns3::LteRadioBearerInfo::m_rlc, ns3::GbrQosInformation::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::GbrQosInformation::mbrUl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_LOG_FUNCTION, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::EpsBearer::qci, ns3::LteEnbCmacSapProvider::LcInfo::rnti, ns3::LtePdcp::SetLcId(), ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LtePdcp::SetLtePdcpSapUser(), ns3::LtePdcp::SetLteRlcSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LtePdcp::SetRnti(), ns3::LteRlc::SetRnti(), and ns3::ObjectFactory::SetTypeId().

Referenced by ns3::LteHelper::ActivateEpsBearer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class EnbRrcMemberLteEnbCmacSapUser
friend

Definition at line 107 of file lte-enb-rrc.h.

Referenced by LteEnbRrc().

friend class LtePdcpSpecificLtePdcpSapUser< LteEnbRrc >
friend

Definition at line 108 of file lte-enb-rrc.h.

Member Data Documentation

uint16_t ns3::LteEnbRrc::m_cellId
private

Definition at line 273 of file lte-enb-rrc.h.

Referenced by CreateUeInfo(), SendUeConfigurationUpdate(), and SetCellId().

LteEnbCmacSapProvider* ns3::LteEnbRrc::m_cmacSapProvider
private
LteEnbCmacSapUser* ns3::LteEnbRrc::m_cmacSapUser
private

Definition at line 259 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetLteEnbCmacSapUser(), and LteEnbRrc().

bool ns3::LteEnbRrc::m_configured
private

Definition at line 266 of file lte-enb-rrc.h.

Referenced by ConfigureCell().

uint8_t ns3::LteEnbRrc::m_defaultTransmissionMode
private

Definition at line 271 of file lte-enb-rrc.h.

Referenced by GetTypeId().

FfMacSchedSapProvider* ns3::LteEnbRrc::m_ffMacSchedSapProvider
private

Definition at line 262 of file lte-enb-rrc.h.

Referenced by SetFfMacSchedSapProvider().

Callback<void, Ptr<Packet> > ns3::LteEnbRrc::m_forwardUpCallback
private

Definition at line 257 of file lte-enb-rrc.h.

Referenced by DoReceiveRrcPdu(), and SetForwardUpCallback().

uint16_t ns3::LteEnbRrc::m_lastAllocatedConfigurationIndex
private

Definition at line 278 of file lte-enb-rrc.h.

Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().

uint16_t ns3::LteEnbRrc::m_lastAllocatedRnti
private

Definition at line 267 of file lte-enb-rrc.h.

Referenced by CreateUeInfo(), GetLastAllocatedRnti(), and SetLastAllocatedRnti().

LteMacSapProvider* ns3::LteEnbRrc::m_macSapProvider
private

Definition at line 263 of file lte-enb-rrc.h.

Referenced by SetLteMacSapProvider(), and SetupRadioBearer().

LtePdcpSapUser* ns3::LteEnbRrc::m_pdcpSapUser
private

Definition at line 264 of file lte-enb-rrc.h.

Referenced by DoDispose(), LteEnbRrc(), and SetupRadioBearer().

bool ns3::LteEnbRrc::m_reconfigureUes
private

Definition at line 279 of file lte-enb-rrc.h.

uint16_t ns3::LteEnbRrc::m_srsCurrentPeriodicityId
private

Definition at line 276 of file lte-enb-rrc.h.

Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().

std::set<uint16_t> ns3::LteEnbRrc::m_ueSrsConfigurationIndexSet
private

Definition at line 277 of file lte-enb-rrc.h.

Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().


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