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

#include <lte-ue-rrc.h>

+ Inheritance diagram for ns3::LteUeRrc:
+ Collaboration diagram for ns3::LteUeRrc:

Public Member Functions

 LteUeRrc ()
virtual ~LteUeRrc ()
void ConfigureUe (uint16_t rnti, uint16_t cellId)
virtual void DoDispose (void)
void DoRrcConfigurationUpdateInd (LteUeConfig_t params)
uint16_t GetCellId ()
std::vector< uint8_t > GetLcIdVector ()
LteUeCmacSapUserGetLteUeCmacSapUser ()
uint16_t GetRnti ()
void ReleaseRadioBearer (uint16_t rnti, uint8_t lcId)
bool Send (Ptr< Packet > p)
void SetForwardUpCallback (Callback< void, Ptr< Packet > > cb)
void SetLteMacSapProvider (LteMacSapProvider *s)
void SetLteUeCmacSapProvider (LteUeCmacSapProvider *s)
void SetupRadioBearer (uint16_t rnti, EpsBearer bearer, TypeId rlcTypeId, uint8_t lcid, Ptr< EpcTft > tft)
- 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::LteUeRrc.

Private Member Functions

void DoLcConfigCompleted ()
void DoReceiveRrcPdu (LtePdcpSapUser::ReceiveRrcPduParameters params)

Private Attributes

uint16_t m_cellId
LteUeCmacSapProviderm_cmacSapProvider
LteUeCmacSapUserm_cmacSapUser
Callback< void, Ptr< Packet > > m_forwardUpCallback
LteMacSapProviderm_macSapProvider
LtePdcpSapUserm_pdcpSapUser
std::map< uint8_t, Ptr
< LteRadioBearerInfo > > 
m_rbMap
uint16_t m_rnti
EpcTftClassifier m_tftClassifier

Friends

class LtePdcpSpecificLtePdcpSapUser< LteUeRrc >
class UeMemberLteUeCmacSapUser
class UeRrcMemberLteEnbCmacSapUser

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 47 of file lte-ue-rrc.h.

Constructor & Destructor Documentation

ns3::LteUeRrc::LteUeRrc ( )

create an RRC instance for use within an ue

Definition at line 99 of file lte-ue-rrc.cc.

References m_cmacSapUser, m_pdcpSapUser, NS_LOG_FUNCTION, and UeMemberLteUeCmacSapUser.

ns3::LteUeRrc::~LteUeRrc ( )
virtual

Destructor

Definition at line 110 of file lte-ue-rrc.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::LteUeRrc::ConfigureUe ( uint16_t  rnti,
uint16_t  cellId 
)

Set UE RRC parameters

Parameters
rntiC-RNTI of the UE
cellIdServing cell identifier

Definition at line 172 of file lte-ue-rrc.cc.

References ns3::LteUeCmacSapProvider::ConfigureUe(), m_cellId, m_cmacSapProvider, m_rnti, 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::LteUeRrc::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 116 of file lte-ue-rrc.cc.

References m_cmacSapUser, m_pdcpSapUser, m_rbMap, and NS_LOG_FUNCTION.

void ns3::LteUeRrc::DoLcConfigCompleted ( )
private

Definition at line 270 of file lte-ue-rrc.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by ns3::UeMemberLteUeCmacSapUser::LcConfigCompleted().

+ Here is the caller graph for this function:

void ns3::LteUeRrc::DoReceiveRrcPdu ( LtePdcpSapUser::ReceiveRrcPduParameters  params)
private
void ns3::LteUeRrc::DoRrcConfigurationUpdateInd ( LteUeConfig_t  params)

message from eNB-RRC for changing UE's configuration (up to now TxMode)

Definition at line 302 of file lte-ue-rrc.cc.

References m_cmacSapProvider, ns3::LteUeConfig_t::m_rnti, ns3::LteUeConfig_t::m_transmissionMode, NS_LOG_FUNCTION, and ns3::LteUeCmacSapProvider::RrcUpdateConfigurationReq().

Referenced by ns3::LteEnbRrc::DoRrcConfigurationUpdateInd().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::LteUeRrc::GetCellId ( )
Returns
the CellId of the attached Enb

Definition at line 284 of file lte-ue-rrc.cc.

References m_cellId, and NS_LOG_FUNCTION.

std::vector< uint8_t > ns3::LteUeRrc::GetLcIdVector ( )
Returns
a vector with the allocated LCID

Definition at line 291 of file lte-ue-rrc.cc.

References m_rbMap.

LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser ( )
Returns
s the CMAC SAP User interface offered to the MAC by this RRC

Definition at line 156 of file lte-ue-rrc.cc.

References m_cmacSapUser, and NS_LOG_FUNCTION.

uint16_t ns3::LteUeRrc::GetRnti ( void  )
Returns
the C-RNTI of the user

Definition at line 277 of file lte-ue-rrc.cc.

References m_rnti, and NS_LOG_FUNCTION.

Referenced by ns3::LteHelper::ActivateEpsBearer(), and ns3::LteEnbRrc::DoRrcConfigurationUpdateInd().

+ Here is the caller graph for this function:

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

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

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteUeNetDevice/LteUeRrc
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteUeNetDevice/LteUeRrc

Attributes defined for this type:

No TraceSources defined for this type.

Reimplemented from ns3::Object.

Definition at line 125 of file lte-ue-rrc.cc.

References m_cellId, m_rbMap, m_rnti, ns3::MakeObjectMapAccessor(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

void ns3::LteUeRrc::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 218 of file lte-ue-rrc.cc.

References m_rbMap, NS_ASSERT_MSG, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

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

Enqueue an IP packet on the proper bearer for uplink transmission

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

Definition at line 229 of file lte-ue-rrc.cc.

References ns3::EpcTftClassifier::Classify(), ns3::Packet::GetSize(), ns3::LtePdcpSapProvider::TransmitRrcPduParameters::lcid, m_rbMap, m_rnti, m_tftClassifier, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rnti, ns3::LtePdcpSapProvider::TransmitRrcPduParameters::rrcPdu, and ns3::EpcTft::UPLINK.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set the callback used to forward data packets up the stack

Parameters
void
cb

Definition at line 253 of file lte-ue-rrc.cc.

References m_forwardUpCallback.

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

set the MAC SAP provider. The ue 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 163 of file lte-ue-rrc.cc.

References m_macSapProvider, and NS_LOG_FUNCTION.

void ns3::LteUeRrc::SetLteUeCmacSapProvider ( LteUeCmacSapProvider s)

set the CMAC SAP this RRC should interact with

Parameters
sthe CMAC SAP Provider to be used by this RRC

Definition at line 149 of file lte-ue-rrc.cc.

References m_cmacSapProvider, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

void ns3::LteUeRrc::SetupRadioBearer ( uint16_t  rnti,
EpsBearer  bearer,
TypeId  rlcTypeId,
uint8_t  lcid,
Ptr< EpcTft tft 
)

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.
lcidthe logical channel id allocated for this bearer by the eNB
tftthe Traffic Flow Template identifying this bearer

Definition at line 181 of file lte-ue-rrc.cc.

References ns3::EpcTftClassifier::Add(), ns3::LteUeCmacSapProvider::AddLc(), ns3::ObjectFactory::Create(), ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::LtePdcp::GetLteRlcSapUser(), ns3::Object::GetObject(), ns3::LteRlcSm::GetTypeId(), m_cmacSapProvider, m_macSapProvider, ns3::LteRadioBearerInfo::m_pdcp, m_pdcpSapUser, m_rbMap, ns3::LteRadioBearerInfo::m_rlc, m_tftClassifier, NS_ASSERT_MSG, NS_LOG_FUNCTION, 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 LtePdcpSpecificLtePdcpSapUser< LteUeRrc >
friend

Definition at line 52 of file lte-ue-rrc.h.

friend class UeMemberLteUeCmacSapUser
friend

Definition at line 50 of file lte-ue-rrc.h.

Referenced by LteUeRrc().

friend class UeRrcMemberLteEnbCmacSapUser
friend

Definition at line 51 of file lte-ue-rrc.h.

Member Data Documentation

uint16_t ns3::LteUeRrc::m_cellId
private

Definition at line 188 of file lte-ue-rrc.h.

Referenced by ConfigureUe(), GetCellId(), and GetTypeId().

LteUeCmacSapProvider* ns3::LteUeRrc::m_cmacSapProvider
private
LteUeCmacSapUser* ns3::LteUeRrc::m_cmacSapUser
private

Definition at line 181 of file lte-ue-rrc.h.

Referenced by DoDispose(), GetLteUeCmacSapUser(), and LteUeRrc().

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

Definition at line 179 of file lte-ue-rrc.h.

Referenced by DoReceiveRrcPdu(), and SetForwardUpCallback().

LteMacSapProvider* ns3::LteUeRrc::m_macSapProvider
private

Definition at line 184 of file lte-ue-rrc.h.

Referenced by SetLteMacSapProvider(), and SetupRadioBearer().

LtePdcpSapUser* ns3::LteUeRrc::m_pdcpSapUser
private

Definition at line 185 of file lte-ue-rrc.h.

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

std::map<uint8_t, Ptr<LteRadioBearerInfo> > ns3::LteUeRrc::m_rbMap
private
uint16_t ns3::LteUeRrc::m_rnti
private

Definition at line 187 of file lte-ue-rrc.h.

Referenced by ConfigureUe(), GetRnti(), GetTypeId(), and Send().

EpcTftClassifier ns3::LteUeRrc::m_tftClassifier
private

Definition at line 192 of file lte-ue-rrc.h.

Referenced by Send(), and SetupRadioBearer().


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