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)
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 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)
 This method returns the TypeId associated to ns3::LteEnbRrc.

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)
Ptr< UeInfoGetUeInfo (uint16_t rnti)
void RemoveUeInfo (uint16_t rnti)

Private Attributes

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

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

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

Constructor & Destructor Documentation

ns3::LteEnbRrc::LteEnbRrc ( )

create an RRC instance for use within an eNB

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

References EnbRrcMemberLteEnbCmacSapUser, m_cmacSapUser, m_pdcpSapUser, and NS_LOG_FUNCTION.

ns3::LteEnbRrc::~LteEnbRrc ( )
virtual

Destructor

Definition at line 224 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 330 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 bandwdith in number of RB
dlBandwidththe downlink bandwidth in number of RB

Definition at line 321 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:

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

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

References m_lastAllocatedRnti, m_ueMap, and NS_LOG_FUNCTION.

Referenced by AddUe().

+ 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 231 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 452 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:

uint16_t ns3::LteEnbRrc::GetLastAllocatedRnti ( ) const

Definition at line 260 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 293 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 315 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

This method returns the TypeId associated to ns3::LteEnbRrc.

This object 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 defined for this type:

No TraceSources defined for this type.

Reimplemented from ns3::Object.

Definition at line 239 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 485 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 265 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 402 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 341 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 495 of file lte-enb-rrc.cc.

References m_ueMap, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by RemoveUe().

+ 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 412 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::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 300 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 431 of file lte-enb-rrc.cc.

References m_forwardUpCallback.

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

Definition at line 277 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 286 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 308 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 270 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 349 of file lte-enb-rrc.cc.

References ns3::LteEnbCmacSapProvider::AddLc(), ns3::UeInfo::AddRadioBearer(), ns3::ObjectFactory::Create(), DoRrcConfigurationUpdateInd(), 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_defaultTransmissionMode, m_macSapProvider, ns3::LteRadioBearerInfo::m_pdcp, m_pdcpSapUser, ns3::LteRadioBearerInfo::m_rlc, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_transmissionMode, 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 97 of file lte-enb-rrc.h.

Referenced by LteEnbRrc().

friend class LtePdcpSpecificLtePdcpSapUser< LteEnbRrc >
friend

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

Member Data Documentation

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

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

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

bool ns3::LteEnbRrc::m_configured
private

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

Referenced by ConfigureCell().

uint8_t ns3::LteEnbRrc::m_defaultTransmissionMode
private

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

Referenced by GetTypeId(), and SetupRadioBearer().

FfMacSchedSapProvider* ns3::LteEnbRrc::m_ffMacSchedSapProvider
private

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

Referenced by SetFfMacSchedSapProvider().

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

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

Referenced by DoReceiveRrcPdu(), and SetForwardUpCallback().

uint16_t ns3::LteEnbRrc::m_lastAllocatedRnti
private

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

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

LteMacSapProvider* ns3::LteEnbRrc::m_macSapProvider
private

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

Referenced by SetLteMacSapProvider(), and SetupRadioBearer().

LtePdcpSapUser* ns3::LteEnbRrc::m_pdcpSapUser
private

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

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

std::map<uint16_t, Ptr<UeInfo> > ns3::LteEnbRrc::m_ueMap
private

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

Referenced by CreateUeInfo(), GetTypeId(), GetUeInfo(), GetUeMap(), RemoveUeInfo(), and SetUeMap().


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