A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::UeManager Class Reference

Manages all the radio bearer information possessed by the ENB RRC for a single UE. More...

#include "lte-enb-rrc.h"

+ Inheritance diagram for ns3::UeManager:
+ Collaboration diagram for ns3::UeManager:

Public Types

enum  State {
  INITIAL_RANDOM_ACCESS = 0 , CONNECTION_SETUP , CONNECTION_REJECTED , ATTACH_REQUEST ,
  CONNECTED_NORMALLY , CONNECTION_RECONFIGURATION , CONNECTION_REESTABLISHMENT , HANDOVER_PREPARATION ,
  HANDOVER_JOINING , HANDOVER_PATH_SWITCH , HANDOVER_LEAVING , NUM_STATES
}
 The state of the UeManager at the eNB RRC. More...
 
typedef void(* StateTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const State oldState, const State newState)
 TracedCallback signature for state transition events.
 

Public Member Functions

 UeManager ()
 
 UeManager (Ptr< LteEnbRrc > rrc, uint16_t rnti, State s, uint8_t componentCarrierId)
 UeManager constructor.
 
 ~UeManager () override
 
EpcX2Sap::HandoverCancelParams BuildHoCancelMsg ()
 build handover cancel message
 
EpcX2Sap::HandoverPreparationFailureParams BuildHoPrepFailMsg ()
 build handover preparation failure message
 
void CancelPendingEvents ()
 Cancel all timers which are running for the UE.
 
void CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams)
 CMAC UE config update indication function.
 
void CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params)
 Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
 
void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params)
 Receive PDCP SDU function.
 
uint8_t GetComponentCarrierId () const
 
std::vector< EpcX2Sap::ErabToBeSetupItemGetErabList ()
 
uint64_t GetImsi () const
 
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo ()
 
uint16_t GetRnti () const
 
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover (uint8_t componentCarrierId)
 
uint16_t GetSrsConfigurationIndex () const
 
State GetState () const
 
void InitialContextSetupRequest ()
 Process Initial context setup request message from the MME.
 
void PrepareHandover (uint16_t cellId)
 Start the handover preparation and send the handover request.
 
void RecordDataRadioBearersToBeStarted ()
 Start all configured data radio bearers.
 
void RecvHandoverCancel (EpcX2SapUser::HandoverCancelParams params)
 Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.
 
void RecvHandoverPreparationFailure (uint16_t cellId)
 Take the necessary actions in response to the reception of an X2 HO preparation failure message.
 
void RecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params)
 take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message
 
void RecvIdealUeContextRemoveRequest (uint16_t rnti)
 Implement the LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface.
 
void RecvMeasurementReport (LteRrcSap::MeasurementReport msg)
 Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface.
 
void RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg)
 Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface.
 
void RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg)
 Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface.
 
void RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg)
 Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface.
 
void RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg)
 Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface.
 
void RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg)
 Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface.
 
void RecvSnStatusTransfer (EpcX2SapUser::SnStatusTransferParams params)
 Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message.
 
void RecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params)
 Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.
 
void ReleaseDataRadioBearer (uint8_t drbid)
 Release a given radio bearer.
 
void ScheduleRrcConnectionReconfiguration ()
 schedule an RRC Connection Reconfiguration procedure with the UE
 
void SendData (uint8_t bid, Ptr< Packet > p)
 Send a data packet over the appropriate Data Radio Bearer.
 
void SendRrcConnectionRelease ()
 This function acts as an interface to trigger the connection release towards eNB, EPC and UE.
 
void SendUeContextRelease ()
 send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handover procedure
 
void SetImsi (uint64_t imsi)
 Set the IMSI.
 
void SetPdschConfigDedicated (LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
 Configure PdschConfigDedicated (i.e.
 
void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId)
 Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a handover procedure.
 
void SetSrsConfigurationIndex (uint16_t srsConfIndex)
 Set the SRS configuration index and do the necessary reconfiguration.
 
void SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress)
 Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC signaling with the UE.
 
void StartDataRadioBearers ()
 Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBearersToBeStarted()
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Protected Member Functions

void DoDispose () override
 Destructor implementation.
 
void DoInitialize () override
 Initialize() implementation.
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Private Member Functions

uint8_t AddDataRadioBearerInfo (Ptr< LteDataRadioBearerInfo > radioBearerInfo)
 Add a new LteDataRadioBearerInfo structure to the UeManager.
 
uint8_t Bid2Drbid (uint8_t bid)
 
uint8_t Bid2Lcid (uint8_t bid)
 
LteRrcSap::NonCriticalExtensionConfiguration BuildNonCriticalExtensionConfigurationCa ()
 
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated ()
 
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration ()
 
uint8_t Drbid2Bid (uint8_t drbid)
 
uint8_t Drbid2Lcid (uint8_t drbid)
 
Ptr< LteDataRadioBearerInfoGetDataRadioBearerInfo (uint8_t drbid)
 
uint8_t GetNewRrcTransactionIdentifier ()
 
uint8_t Lcid2Bid (uint8_t lcid)
 
uint8_t Lcid2Drbid (uint8_t lcid)
 
void RemoveDataRadioBearerInfo (uint8_t drbid)
 remove the LteDataRadioBearerInfo corresponding to a bearer being released
 
void SendPacket (uint8_t bid, Ptr< Packet > p)
 Send a data packet over the appropriate Data Radio Bearer.
 
void SwitchToState (State s)
 Switch the UeManager to the given state.
 

Private Attributes

bool m_caSupportConfigured
 Define if the Carrier Aggregation was already configure for the current UE on not.
 
uint8_t m_componentCarrierId
 ID of the primary CC for this UE.
 
EventId m_connectionRejectedTimeout
 The delay before a connection rejected timeout occurs.
 
EventId m_connectionRequestTimeout
 Time limit before a connection request timeout occurs.
 
EventId m_connectionSetupTimeout
 Time limit before a connection setup timeout occurs.
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
 The DrbCreated trace source.
 
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
 The DataRadioBearerMap attribute.
 
LtePdcpSapUserm_drbPdcpSapUser
 DRB PDCP SAP user.
 
std::list< uint8_t > m_drbsToBeStarted
 DRBS to be started.
 
EventId m_handoverJoiningTimeout
 Time limit before a handover joining timeout occurs.
 
EventId m_handoverLeavingTimeout
 Time limit before a handover leaving timeout occurs.
 
uint64_t m_imsi
 International Mobile Subscriber Identity assigned to this UE.
 
uint8_t m_lastAllocatedDrbid
 last allocated Data Radio Bearer ID
 
uint8_t m_lastRrcTransactionIdentifier
 last RRC transaction identifier
 
bool m_needPhyMacConfiguration
 need Phy MAC configuration
 
std::list< std::pair< uint8_t, Ptr< Packet > > > m_packetBuffer
 Packet buffer for when UE is doing the handover.
 
bool m_pendingRrcConnectionReconfiguration
 pending RRC connection reconfiguration
 
bool m_pendingStartDataRadioBearers
 Pending start data radio bearers.
 
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
 physical config dedicated
 
uint16_t m_rnti
 The C-RNTI attribute.
 
Ptr< LteEnbRrcm_rrc
 Pointer to the parent eNodeB RRC.
 
uint16_t m_sourceCellId
 source cell ID
 
uint16_t m_sourceX2apId
 source X2 ap ID
 
Ptr< LteSignalingRadioBearerInfom_srb0
 The Srb0 attribute.
 
Ptr< LteSignalingRadioBearerInfom_srb1
 The Srb1 attribute.
 
State m_state
 The current UeManager state.
 
TracedCallback< uint64_t, uint16_t, uint16_t, State, Statem_stateTransitionTrace
 The StateTransition trace source.
 
uint16_t m_targetCellId
 target cell ID
 
uint16_t m_targetX2apId
 target X2 ap ID
 

Friends

class LtePdcpSpecificLtePdcpSapUser< UeManager >
 allow LtePdcpSpecificLtePdcpSapUser<UeManager> class friend access
 

Additional Inherited Members

Detailed Description

Manages all the radio bearer information possessed by the ENB RRC for a single UE.

Config Paths

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

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

Attributes

TraceSources

  • DrbCreated: trace fired after DRB is created
    Callback signature: ns3::UeManager::ImsiCidRntiLcIdTracedCallback
  • StateTransition: fired upon every UE state transition seen by the UeManager at the eNB RRC
    Callback signature: ns3::UeManager::StateTracedCallback

Size of this type is 400 bytes (on a 64-bit architecture).

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

Member Typedef Documentation

◆ StateTracedCallback

typedef void(* ns3::UeManager::StateTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const State oldState, const State newState)

TracedCallback signature for state transition events.

Parameters
[in]imsi
[in]cellId
[in]rnti
[in]oldState
[in]newState

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

Member Enumeration Documentation

◆ State

The state of the UeManager at the eNB RRC.

Enumerator
INITIAL_RANDOM_ACCESS 
CONNECTION_SETUP 
CONNECTION_REJECTED 
ATTACH_REQUEST 
CONNECTED_NORMALLY 
CONNECTION_RECONFIGURATION 
CONNECTION_REESTABLISHMENT 
HANDOVER_PREPARATION 
HANDOVER_JOINING 
HANDOVER_PATH_SWITCH 
HANDOVER_LEAVING 
NUM_STATES 

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

Constructor & Destructor Documentation

◆ UeManager() [1/2]

ns3::UeManager::UeManager ( )

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

References NS_FATAL_ERROR.

◆ UeManager() [2/2]

ns3::UeManager::UeManager ( Ptr< LteEnbRrc rrc,
uint16_t  rnti,
State  s,
uint8_t  componentCarrierId 
)

UeManager constructor.

Parameters
rrcpointer to the LteEnbRrc holding this UeManager
rntiRNTI of the UE
sinitial state of the UeManager
componentCarrierIdprimary component carrier ID

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

References NS_LOG_FUNCTION.

◆ ~UeManager()

ns3::UeManager::~UeManager ( )
override

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

Member Function Documentation

◆ AddDataRadioBearerInfo()

uint8_t ns3::UeManager::AddDataRadioBearerInfo ( Ptr< LteDataRadioBearerInfo radioBearerInfo)
private

Add a new LteDataRadioBearerInfo structure to the UeManager.

Parameters
radioBearerInfo
Returns
the id of the newly added data radio bearer structure

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

References m_drbMap, m_lastAllocatedDrbid, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by SetupDataRadioBearer().

+ Here is the caller graph for this function:

◆ Bid2Drbid()

uint8_t ns3::UeManager::Bid2Drbid ( uint8_t  bid)
private
Parameters
bidan EPS Bearer Identifier
Returns
the corresponding Data Radio Bearer Id

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

Referenced by SendData(), and SendPacket().

+ Here is the caller graph for this function:

◆ Bid2Lcid()

uint8_t ns3::UeManager::Bid2Lcid ( uint8_t  bid)
private
Parameters
bidan EPS Bearer Identifier
Returns
the corresponding Logical Channel Identifier

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

Referenced by SendPacket().

+ Here is the caller graph for this function:

◆ BuildHoCancelMsg()

EpcX2Sap::HandoverCancelParams ns3::UeManager::BuildHoCancelMsg ( )

build handover cancel message

Returns
the handover cancel message.

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

References m_componentCarrierId, m_rnti, m_rrc, m_targetCellId, m_targetX2apId, and NS_LOG_FUNCTION.

◆ BuildHoPrepFailMsg()

EpcX2Sap::HandoverPreparationFailureParams ns3::UeManager::BuildHoPrepFailMsg ( )

build handover preparation failure message

Returns
the handover preparation failure message.

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

References m_componentCarrierId, m_rrc, m_sourceCellId, m_sourceX2apId, and NS_LOG_FUNCTION.

◆ BuildNonCriticalExtensionConfigurationCa()

LteRrcSap::NonCriticalExtensionConfiguration ns3::UeManager::BuildNonCriticalExtensionConfigurationCa ( )
private
Returns
an NonCriticalExtensionConfiguration struct built based on the current configuration

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

References ns3::LteRrcSap::UlPowerControlCommonSCell::alpha, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::antennaInfo, ns3::LteRrcSap::NonUlConfiguration::antennaInfoCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::antennaInfoUl, ns3::LteRrcSap::AntennaInfoCommon::antennaPortsCount, ns3::LteRrcSap::SCellToAddMod::cellIdentification, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::crossCarrierSchedulingConfig, ns3::LteRrcSap::PdschConfigDedicated::dB0, ns3::LteRrcSap::NonUlConfiguration::dlBandwidth, ns3::LteRrcSap::CellIdentification::dlCarrierFreq, GetSrsConfigurationIndex(), ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveAntennaInfoUlDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveNonUlConfiguration, ns3::LteRrcSap::RadioResourceConfigCommonSCell::haveNonUlConfiguration, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::havePdschConfigDedicated, ns3::LteRrcSap::SCellToAddMod::haveRadioResourceConfigDedicatedSCell, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveSoundingRsUlConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveUlConfiguration, ns3::LteRrcSap::RadioResourceConfigCommonSCell::haveUlConfiguration, ns3::LteRrcSap::PrachConfigSCell::index, m_componentCarrierId, m_rrc, ns3::LteRrcSap::RadioResourceConfigCommonSCell::nonUlConfiguration, ns3::LteRrcSap::PuschConfigDedicatedSCell::nPuschIdentity, NS_LOG_FUNCTION, ns3::LteRrcSap::PdschConfigDedicated::pa, ns3::LteRrcSap::PdschConfigCommon::pb, ns3::LteRrcSap::NonUlConfiguration::pdschConfigCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::pdschConfigDedicated, ns3::LteRrcSap::CellIdentification::physCellId, ns3::LteRrcSap::RadioResourceConfigDedicatedSCell::physicalConfigDedicatedSCell, ns3::LteRrcSap::UlConfiguration::prachConfigSCell, ns3::LteRrcSap::UlPowerControlDedicatedSCell::pSrsOffset, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::pushConfigDedicatedSCell, ns3::LteRrcSap::SCellToAddMod::radioResourceConfigCommonSCell, ns3::LteRrcSap::SCellToAddMod::radioResourceConfigDedicatedSCell, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SCellToAddMod::sCellIndex, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::SETUP, ns3::LteRrcSap::UlConfiguration::soundingRsUlConfigCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::soundingRsUlConfigDedicated, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsBandwidth, ns3::LteRrcSap::SoundingRsUlConfigCommon::srsBandwidthConfig, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::LteRrcSap::SoundingRsUlConfigCommon::srsSubframeConfig, ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, ns3::LteRrcSap::SoundingRsUlConfigDedicated::type, ns3::LteRrcSap::FreqInfo::ulBandwidth, ns3::LteRrcSap::FreqInfo::ulCarrierFreq, ns3::LteRrcSap::RadioResourceConfigCommonSCell::ulConfiguration, ns3::LteRrcSap::UlConfiguration::ulFreqInfo, ns3::LteRrcSap::UlConfiguration::ulPowerControlCommonSCell, and ns3::LteRrcSap::PhysicalConfigDedicatedSCell::ulPowerControlDedicatedSCell.

Referenced by BuildRrcConnectionReconfiguration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BuildRadioResourceConfigDedicated()

◆ BuildRrcConnectionReconfiguration()

◆ CancelPendingEvents()

void ns3::UeManager::CancelPendingEvents ( )

Cancel all timers which are running for the UE.

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

References ns3::EventId::Cancel(), m_connectionRejectedTimeout, m_connectionRequestTimeout, m_connectionSetupTimeout, m_handoverJoiningTimeout, m_handoverLeavingTimeout, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ CmacUeConfigUpdateInd()

void ns3::UeManager::CmacUeConfigUpdateInd ( LteEnbCmacSapUser::UeConfig  cmacParams)

CMAC UE config update indication function.

Parameters
cmacParamsthe UE config parameters

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

References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, m_needPhyMacConfiguration, m_physicalConfigDedicated, m_rnti, ns3::LteEnbCmacSapUser::UeConfig::m_transmissionMode, NS_LOG_FUNCTION, ScheduleRrcConnectionReconfiguration(), and ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode.

+ Here is the call graph for this function:

◆ CompleteSetupUe()

void ns3::UeManager::CompleteSetupUe ( LteEnbRrcSapProvider::CompleteSetupUeParameters  params)

Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.

Parameters
paramsCompleteSetupUeParameters

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

References m_srb0, m_srb1, and NS_LOG_FUNCTION.

◆ DoDispose()

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

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

References m_drbMap, m_drbPdcpSapUser, and m_rrc.

◆ DoInitialize()

void ns3::UeManager::DoInitialize ( )
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 167 of file lte-enb-rrc.cc.

References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteEnbRrc::ConnectionRequestTimeout(), ns3::LteRrcSap::PdschConfigDedicated::dB0, ns3::EpsBearer::GBR_CONV_VOICE, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, HANDOVER_JOINING, ns3::LteEnbRrc::HandoverJoiningTimeout(), ns3::LteRrcSap::PhysicalConfigDedicated::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::havePdschConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::haveSoundingRsUlConfigDedicated, INITIAL_RANDOM_ACCESS, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, LtePdcpSpecificLtePdcpSapUser< UeManager >, m_caSupportConfigured, m_componentCarrierId, m_connectionRequestTimeout, m_drbPdcpSapUser, m_handoverJoiningTimeout, m_physicalConfigDedicated, ns3::LteEnbCmacSapProvider::UeConfig::m_rnti, m_rnti, m_rrc, m_srb0, m_srb1, m_state, ns3::LteEnbCmacSapProvider::UeConfig::m_transmissionMode, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::PdschConfigDedicated::pa, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::LteEnbCmacSapProvider::LcInfo::resourceType, ns3::LteEnbCmacSapProvider::LcInfo::rnti, ns3::Simulator::Schedule(), ns3::LteRrcSap::SoundingRsUlConfigDedicated::SETUP, ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteEnbRrcSapUser::SetupUeParameters::srb0SapProvider, ns3::LteEnbRrcSapUser::SetupUeParameters::srb1SapProvider, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsBandwidth, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::ToString(), ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::type.

+ Here is the call graph for this function:

◆ DoReceivePdcpSdu()

void ns3::UeManager::DoReceivePdcpSdu ( LtePdcpSapUser::ReceivePdcpSduParameters  params)

Receive PDCP SDU function.

Parameters
paramsthe receive PDCP SDU parameters

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

References Lcid2Bid(), m_rrc, NS_LOG_FUNCTION, ns3::EpsBearerTag::SetBid(), and ns3::EpsBearerTag::SetRnti().

+ Here is the call graph for this function:

◆ Drbid2Bid()

uint8_t ns3::UeManager::Drbid2Bid ( uint8_t  drbid)
private
Parameters
drbidData Radio Bearer Id
Returns
the corresponding EPS Bearer Identifier

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

Referenced by SetupDataRadioBearer().

+ Here is the caller graph for this function:

◆ Drbid2Lcid()

uint8_t ns3::UeManager::Drbid2Lcid ( uint8_t  drbid)
private
Parameters
drbida Data Radio Bearer Id
Returns
the corresponding Logical Channel Identifier

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

Referenced by ReleaseDataRadioBearer(), and SetupDataRadioBearer().

+ Here is the caller graph for this function:

◆ GetComponentCarrierId()

uint8_t ns3::UeManager::GetComponentCarrierId ( ) const
Returns
the primary component carrier ID

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

References m_componentCarrierId.

◆ GetDataRadioBearerInfo()

Ptr< LteDataRadioBearerInfo > ns3::UeManager::GetDataRadioBearerInfo ( uint8_t  drbid)
private
Parameters
drbidthe Data Radio Bearer id
Returns
the corresponding LteDataRadioBearerInfo

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

References m_drbMap, NS_ABORT_IF, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by SendData(), and SendPacket().

+ Here is the caller graph for this function:

◆ GetErabList()

std::vector< EpcX2Sap::ErabToBeSetupItem > ns3::UeManager::GetErabList ( )
Returns
a list of ERAB-to-be-setup items to be put in a X2 HO REQ message

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

References ns3::EpcX2Sap::ErabToBeSetupItem::dlForwarding, ns3::EpcX2Sap::ErabToBeSetupItem::erabId, ns3::EpcX2Sap::ErabToBeSetupItem::erabLevelQosParameters, ns3::EpcX2Sap::ErabToBeSetupItem::gtpTeid, m_drbMap, NS_LOG_FUNCTION, and ns3::EpcX2Sap::ErabToBeSetupItem::transportLayerAddress.

Referenced by PrepareHandover().

+ Here is the caller graph for this function:

◆ GetImsi()

uint64_t ns3::UeManager::GetImsi ( ) const
Returns
the IMSI, i.e., a globally unique UE identifier

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

References m_imsi.

Referenced by ns3::LteStatsCalculator::FindImsiFromEnbRlcPath(), and RecvIdealUeContextRemoveRequest().

+ Here is the caller graph for this function:

◆ GetNewRrcTransactionIdentifier()

uint8_t ns3::UeManager::GetNewRrcTransactionIdentifier ( )
private
Returns
a newly allocated identifier for a new RRC transaction

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

References m_lastRrcTransactionIdentifier, and NS_LOG_FUNCTION.

Referenced by BuildRrcConnectionReconfiguration(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), and SendRrcConnectionRelease().

+ Here is the caller graph for this function:

◆ GetRadioResourceConfigForHandoverPreparationInfo()

LteRrcSap::RadioResourceConfigDedicated ns3::UeManager::GetRadioResourceConfigForHandoverPreparationInfo ( )
Returns
the HandoverPreparationInfo sent by the source eNB to the target eNB in the X2-based handover procedure

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

References BuildRadioResourceConfigDedicated(), and NS_LOG_FUNCTION.

Referenced by PrepareHandover().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetRnti()

uint16_t ns3::UeManager::GetRnti ( ) const
Returns
the RNTI, i.e., an UE identifier that is unique within the cell

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

References m_rnti.

◆ GetRrcConnectionReconfigurationForHandover()

LteRrcSap::RrcConnectionReconfiguration ns3::UeManager::GetRrcConnectionReconfigurationForHandover ( uint8_t  componentCarrierId)
Parameters
componentCarrierIdtarget component carrier ID
Returns
retrieve the data that the target eNB needs to send to the source eNB as the Handover Command in the X2-based handover procedure.
Note
mobility control info is not expected to be filled in (shall be filled in by the caller).

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

References BuildRrcConnectionReconfiguration(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, m_caSupportConfigured, m_componentCarrierId, m_rrc, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_LOG_FUNCTION, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToReleaseList, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.

Referenced by PrepareHandover().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetSrsConfigurationIndex()

uint16_t ns3::UeManager::GetSrsConfigurationIndex ( ) const
Returns
the SRS Configuration Index

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

References m_physicalConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex.

Referenced by BuildNonCriticalExtensionConfigurationCa().

+ Here is the caller graph for this function:

◆ GetState()

UeManager::State ns3::UeManager::GetState ( ) const
Returns
the current state

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

References m_state.

◆ GetTypeId()

TypeId ns3::UeManager::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

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

References ns3::TypeId::ATTR_GET, m_drbCreatedTrace, m_drbMap, m_rnti, m_srb0, m_srb1, m_stateTransitionTrace, ns3::MakeObjectMapAccessor(), ns3::MakePointerAccessor(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ InitialContextSetupRequest()

void ns3::UeManager::InitialContextSetupRequest ( )

Process Initial context setup request message from the MME.

It triggers RRC connection reconfiguration.

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

References ATTACH_REQUEST, CONNECTED_NORMALLY, m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and ns3::ToString().

+ Here is the call graph for this function:

◆ Lcid2Bid()

uint8_t ns3::UeManager::Lcid2Bid ( uint8_t  lcid)
private
Parameters
lcida Logical Channel Identifier
Returns
the corresponding EPS Bearer Identifier

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

References NS_ASSERT.

Referenced by DoReceivePdcpSdu().

+ Here is the caller graph for this function:

◆ Lcid2Drbid()

uint8_t ns3::UeManager::Lcid2Drbid ( uint8_t  lcid)
private
Parameters
lcida Logical Channel Identifier
Returns
the corresponding Data Radio Bearer Id

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

References NS_ASSERT.

◆ PrepareHandover()

void ns3::UeManager::PrepareHandover ( uint16_t  cellId)

Start the handover preparation and send the handover request.

Parameters
cellIdid of the target cell

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

References ns3::LteRrcSap::HandoverPreparationInfo::asConfig, ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, CONNECTED_NORMALLY, ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, GetErabList(), GetRadioResourceConfigForHandoverPreparationInfo(), GetRrcConnectionReconfigurationForHandover(), HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PREPARATION, ns3::EpcX2Sap::HandoverDesirableForRadioReason, ns3::LteEnbRrc::HandoverLeavingTimeout(), ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, m_componentCarrierId, m_drbMap, m_handoverLeavingTimeout, m_imsi, m_rnti, m_rrc, m_state, m_targetCellId, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::PlmnIdentityInfo::plmnIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::plmnIdentityInfo, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommon::rachConfigCommon, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::MobilityControlInfo::radioResourceConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPreambleId, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, ns3::Simulator::Schedule(), ns3::LteRrcSap::AsConfig::sourceDlCarrierFreq, ns3::LteRrcSap::AsConfig::sourceMasterInformationBlock, ns3::LteRrcSap::AsConfig::sourceMeasConfig, ns3::LteRrcSap::AsConfig::sourceRadioResourceConfig, ns3::LteRrcSap::AsConfig::sourceSystemInformationBlockType1, ns3::LteRrcSap::AsConfig::sourceSystemInformationBlockType2, ns3::LteRrcSap::AsConfig::sourceUeIdentity, SwitchToState(), ns3::LteRrcSap::MasterInformationBlock::systemFrameNumber, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::ToString(), ns3::LteRrcSap::RachConfigCommon::txFailParam, ns3::LteRrcSap::FreqInfo::ulBandwidth, ns3::LteRrcSap::FreqInfo::ulCarrierFreq, and ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::valid.

+ Here is the call graph for this function:

◆ RecordDataRadioBearersToBeStarted()

void ns3::UeManager::RecordDataRadioBearersToBeStarted ( )

Start all configured data radio bearers.

It is safe to call this method if any bearer had been already started previously.

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

References m_drbMap, m_drbsToBeStarted, m_rnti, and NS_LOG_FUNCTION.

Referenced by RecvRrcConnectionRequest(), and ScheduleRrcConnectionReconfiguration().

+ Here is the caller graph for this function:

◆ RecvHandoverCancel()

void ns3::UeManager::RecvHandoverCancel ( EpcX2SapUser::HandoverCancelParams  params)

Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.

Parameters
paramsthe SN STATUS

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

References ns3::EventId::Cancel(), HANDOVER_JOINING, m_handoverJoiningTimeout, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::ToString().

+ Here is the call graph for this function:

◆ RecvHandoverPreparationFailure()

void ns3::UeManager::RecvHandoverPreparationFailure ( uint16_t  cellId)

Take the necessary actions in response to the reception of an X2 HO preparation failure message.

Parameters
cellIdid of the target cell

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

References ns3::EventId::Cancel(), CONNECTED_NORMALLY, HANDOVER_LEAVING, HANDOVER_PREPARATION, m_handoverLeavingTimeout, m_state, m_targetCellId, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, SendRrcConnectionRelease(), SwitchToState(), and ns3::ToString().

+ Here is the call graph for this function:

◆ RecvHandoverRequestAck()

void ns3::UeManager::RecvHandoverRequestAck ( EpcX2SapUser::HandoverRequestAckParams  params)

◆ RecvIdealUeContextRemoveRequest()

void ns3::UeManager::RecvIdealUeContextRemoveRequest ( uint16_t  rnti)

Implement the LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface.

Parameters
rntithe C-RNTI identifying the user

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

References GetImsi(), m_drbMap, m_rnti, m_rrc, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ RecvMeasurementReport()

void ns3::UeManager::RecvMeasurementReport ( LteRrcSap::MeasurementReport  msg)

Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface.

Parameters
msgthe measrurement report

ToDo: implement on Ffr algorithm the code to properly parsing the new measResults message format alternatively it is needed to 'repack' properly the measResults message before sending to Ffr

Report any measurements to ComponentCarrierManager, so it can react to any change or activate the SCC

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

References ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, ns3::LteRrcSap::MeasResults::haveMeasResultServFreqList, m_componentCarrierId, m_imsi, m_rnti, m_rrc, ns3::LteRrcSap::MeasResults::measId, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasResults::measResultPCell, ns3::LteRrcSap::MeasurementReport::measResults, ns3::LteRrcSap::MeasResults::measResultServFreqList, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::MeasResultPCell::rsrpResult, and ns3::LteRrcSap::MeasResultPCell::rsrqResult.

◆ RecvRrcConnectionReconfigurationCompleted()

◆ RecvRrcConnectionReestablishmentComplete()

void ns3::UeManager::RecvRrcConnectionReestablishmentComplete ( LteRrcSap::RrcConnectionReestablishmentComplete  msg)

Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface.

Parameters
msgthe RRC connection reestablsihment complete message

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

References CONNECTED_NORMALLY, NS_LOG_FUNCTION, and SwitchToState().

+ Here is the call graph for this function:

◆ RecvRrcConnectionReestablishmentRequest()

void ns3::UeManager::RecvRrcConnectionReestablishmentRequest ( LteRrcSap::RrcConnectionReestablishmentRequest  msg)

◆ RecvRrcConnectionRequest()

◆ RecvRrcConnectionSetupCompleted()

void ns3::UeManager::RecvRrcConnectionSetupCompleted ( LteRrcSap::RrcConnectionSetupCompleted  msg)

Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface.

Parameters
msgRRC connection setup completed message

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

References ATTACH_REQUEST, ns3::EventId::Cancel(), CONNECTED_NORMALLY, CONNECTION_SETUP, m_caSupportConfigured, m_componentCarrierId, m_connectionSetupTimeout, m_imsi, m_pendingRrcConnectionReconfiguration, m_pendingStartDataRadioBearers, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and ns3::ToString().

+ Here is the call graph for this function:

◆ RecvSnStatusTransfer()

void ns3::UeManager::RecvSnStatusTransfer ( EpcX2SapUser::SnStatusTransferParams  params)

Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message.

Parameters
paramsthe SN STATUS

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

References NS_LOG_FUNCTION.

◆ RecvUeContextRelease()

void ns3::UeManager::RecvUeContextRelease ( EpcX2SapUser::UeContextReleaseParams  params)

Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.

Parameters
paramsthe SN STATUS

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

References ns3::EventId::Cancel(), HANDOVER_LEAVING, m_handoverLeavingTimeout, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::ToString().

+ Here is the call graph for this function:

◆ ReleaseDataRadioBearer()

◆ RemoveDataRadioBearerInfo()

void ns3::UeManager::RemoveDataRadioBearerInfo ( uint8_t  drbid)
private

remove the LteDataRadioBearerInfo corresponding to a bearer being released

Parameters
drbidthe Data Radio Bearer id

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

References m_drbMap, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

◆ ScheduleRrcConnectionReconfiguration()

void ns3::UeManager::ScheduleRrcConnectionReconfiguration ( )

schedule an RRC Connection Reconfiguration procedure with the UE

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

References ATTACH_REQUEST, BuildRrcConnectionReconfiguration(), CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, CONNECTION_REESTABLISHMENT, CONNECTION_SETUP, HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PREPARATION, INITIAL_RANDOM_ACCESS, m_pendingRrcConnectionReconfiguration, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, RecordDataRadioBearersToBeStarted(), SwitchToState(), and ns3::ToString().

Referenced by CmacUeConfigUpdateInd(), SetPdschConfigDedicated(), SetSrsConfigurationIndex(), SetupDataRadioBearer(), and SwitchToState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendData()

void ns3::UeManager::SendData ( uint8_t  bid,
Ptr< Packet p 
)

Send a data packet over the appropriate Data Radio Bearer.

If state is HANDOVER_JOINING (i.e. target eNB has received the Handover Request), the packet is buffered. If state is HANDOVER_LEAVING (i.e. source eNB has received the RRC Connection Reconfiguration, the packet is sent through the X2 interface.

Parameters
bidthe corresponding EPS Bearer ID
pthe packet

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

References Bid2Drbid(), CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, CONNECTION_REESTABLISHMENT, CONNECTION_SETUP, GetDataRadioBearerInfo(), HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PATH_SWITCH, HANDOVER_PREPARATION, INITIAL_RANDOM_ACCESS, m_componentCarrierId, m_packetBuffer, m_rrc, m_state, m_targetCellId, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, SendPacket(), and ns3::ToString().

+ Here is the call graph for this function:

◆ SendPacket()

void ns3::UeManager::SendPacket ( uint8_t  bid,
Ptr< Packet p 
)
private

Send a data packet over the appropriate Data Radio Bearer.

It is called by SendData if the UE is in a connected state or when the RRC Connection Reconfiguration Complete message is received and the packets are debuffered.

Parameters
bidthe corresponding EPS Bearer ID
pthe packet

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

References Bid2Drbid(), Bid2Lcid(), GetDataRadioBearerInfo(), m_drbMap, m_rnti, NS_LOG_FUNCTION, NS_LOG_INFO, and ns3::LtePdcpSapProvider::TransmitPdcpSdu().

Referenced by RecvRrcConnectionReconfigurationCompleted(), and SendData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendRrcConnectionRelease()

void ns3::UeManager::SendRrcConnectionRelease ( )

This function acts as an interface to trigger the connection release towards eNB, EPC and UE.

Bearer de-activation indication towards epc-enb application and removal of UE context at the eNodeB

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

References GetNewRrcTransactionIdentifier(), m_rnti, m_rrc, NS_LOG_FUNCTION, and ns3::LteRrcSap::RrcConnectionRelease::rrcTransactionIdentifier.

Referenced by RecvHandoverPreparationFailure().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendUeContextRelease()

void ns3::UeManager::SendUeContextRelease ( )

send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handover procedure

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

References CONNECTED_NORMALLY, HANDOVER_PATH_SWITCH, m_componentCarrierId, m_imsi, m_rnti, m_rrc, m_sourceCellId, m_sourceX2apId, m_state, m_targetCellId, ns3::EpcX2Sap::UeContextReleaseParams::newEnbUeX2apId, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::EpcX2Sap::UeContextReleaseParams::oldEnbUeX2apId, ns3::EpcX2Sap::UeContextReleaseParams::sourceCellId, SwitchToState(), ns3::EpcX2Sap::UeContextReleaseParams::targetCellId, and ns3::ToString().

+ Here is the call graph for this function:

◆ SetImsi()

void ns3::UeManager::SetImsi ( uint64_t  imsi)

Set the IMSI.

Parameters
imsithe IMSI

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

References m_imsi.

◆ SetPdschConfigDedicated()

void ns3::UeManager::SetPdschConfigDedicated ( LteRrcSap::PdschConfigDedicated  pdschConfigDedicated)

Configure PdschConfigDedicated (i.e.

P_A value) for UE and start RrcConnectionReconfiguration to inform UE about new PdschConfigDedicated

Parameters
pdschConfigDedicatednew pdschConfigDedicated (i.e. P_A value) to be set

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

References m_needPhyMacConfiguration, m_physicalConfigDedicated, NS_LOG_FUNCTION, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, and ScheduleRrcConnectionReconfiguration().

+ Here is the call graph for this function:

◆ SetSource()

void ns3::UeManager::SetSource ( uint16_t  sourceCellId,
uint16_t  sourceX2apId 
)

Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a handover procedure.

Parameters
sourceCellId
sourceX2apId

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

References m_sourceCellId, and m_sourceX2apId.

◆ SetSrsConfigurationIndex()

void ns3::UeManager::SetSrsConfigurationIndex ( uint16_t  srsConfIndex)

Set the SRS configuration index and do the necessary reconfiguration.

Parameters
srsConfIndex

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

References INITIAL_RANDOM_ACCESS, m_physicalConfigDedicated, m_rnti, m_rrc, m_state, NS_LOG_FUNCTION, ScheduleRrcConnectionReconfiguration(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex.

+ Here is the call graph for this function:

◆ SetupDataRadioBearer()

void ns3::UeManager::SetupDataRadioBearer ( EpsBearer  bearer,
uint8_t  bearerId,
uint32_t  gtpTeid,
Ipv4Address  transportLayerAddress 
)

Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC signaling with the UE.

Parameters
bearerthe QoS characteristics of the bearer
bearerIdthe EPS bearer identifier
gtpTeidS1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1
transportLayerAddressIP Address of the SGW, see 36.423 9.2.1

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

References AddDataRadioBearerInfo(), ns3::LteRrcSap::RlcConfig::AM, ns3::ObjectFactory::Create(), ns3::LteEnbRrc::X2uTeidInfo::drbid, Drbid2Bid(), Drbid2Lcid(), ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::Object::GetObject(), ns3::EpsBearer::GetPacketDelayBudgetMs(), ns3::EpsBearer::GetResourceType(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), HANDOVER_JOINING, m_componentCarrierId, m_drbCreatedTrace, m_drbPdcpSapUser, m_imsi, m_rnti, m_rrc, m_state, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteEnbRrc::X2uTeidInfo::rnti, ScheduleRrcConnectionReconfiguration(), ns3::ObjectFactory::SetTypeId(), and ns3::LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL.

+ Here is the call graph for this function:

◆ StartDataRadioBearers()

void ns3::UeManager::StartDataRadioBearers ( )

Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBearersToBeStarted()

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

References m_drbMap, m_drbsToBeStarted, m_rnti, NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by RecvRrcConnectionReconfigurationCompleted(), and SwitchToState().

+ Here is the caller graph for this function:

◆ SwitchToState()

Friends And Related Function Documentation

◆ LtePdcpSpecificLtePdcpSapUser< UeManager >

friend class LtePdcpSpecificLtePdcpSapUser< UeManager >
friend

allow LtePdcpSpecificLtePdcpSapUser<UeManager> class friend access

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

Referenced by DoInitialize().

Member Data Documentation

◆ m_caSupportConfigured

bool ns3::UeManager::m_caSupportConfigured
private

Define if the Carrier Aggregation was already configure for the current UE on not.

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

Referenced by BuildRrcConnectionReconfiguration(), DoInitialize(), GetRrcConnectionReconfigurationForHandover(), RecvRrcConnectionSetupCompleted(), and SwitchToState().

◆ m_componentCarrierId

◆ m_connectionRejectedTimeout

EventId ns3::UeManager::m_connectionRejectedTimeout
private

The delay before a connection rejected timeout occurs.

Set after an RRC CONNECTION REJECT is sent. Calling LteEnbRrc::ConnectionRejectedTimeout() when it expires.

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

Referenced by CancelPendingEvents(), and RecvRrcConnectionRequest().

◆ m_connectionRequestTimeout

EventId ns3::UeManager::m_connectionRequestTimeout
private

Time limit before a connection request timeout occurs.

Set after a new UE context is added after a successful Random Access. Calling LteEnbRrc::ConnectionRequestTimeout() when it expires. Cancelled when RRC CONNECTION REQUEST is received.

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

Referenced by CancelPendingEvents(), DoInitialize(), and RecvRrcConnectionRequest().

◆ m_connectionSetupTimeout

EventId ns3::UeManager::m_connectionSetupTimeout
private

Time limit before a connection setup timeout occurs.

Set after an RRC CONNECTION SETUP is sent. Calling LteEnbRrc::ConnectionSetupTimeout() when it expires. Cancelled when RRC CONNECTION SETUP COMPLETE is received.

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

Referenced by CancelPendingEvents(), RecvRrcConnectionRequest(), and RecvRrcConnectionSetupCompleted().

◆ m_drbCreatedTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint8_t> ns3::UeManager::m_drbCreatedTrace
private

The DrbCreated trace source.

Fired when DRB is created, i.e. the RLC and PDCP entities are created for one logical channel. Exporting IMSI, cell ID, RNTI, LCID.

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

Referenced by GetTypeId(), and SetupDataRadioBearer().

◆ m_drbMap

◆ m_drbPdcpSapUser

LtePdcpSapUser* ns3::UeManager::m_drbPdcpSapUser
private

DRB PDCP SAP user.

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

Referenced by DoDispose(), DoInitialize(), and SetupDataRadioBearer().

◆ m_drbsToBeStarted

std::list<uint8_t> ns3::UeManager::m_drbsToBeStarted
private

DRBS to be started.

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

Referenced by RecordDataRadioBearersToBeStarted(), and StartDataRadioBearers().

◆ m_handoverJoiningTimeout

EventId ns3::UeManager::m_handoverJoiningTimeout
private

Time limit before a handover joining timeout occurs.

Set after a new UE context is added after receiving a handover request. Calling LteEnbRrc::HandoverJoiningTimeout() when it expires. Cancelled when RRC CONNECTION RECONFIGURATION COMPLETE is received.

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

Referenced by CancelPendingEvents(), DoInitialize(), RecvHandoverCancel(), and RecvRrcConnectionReconfigurationCompleted().

◆ m_handoverLeavingTimeout

EventId ns3::UeManager::m_handoverLeavingTimeout
private

Time limit before a handover leaving timeout occurs.

Set after a handover command is sent. Calling LteEnbRrc::HandoverLeavingTimeout() when it expires. Cancelled when RRC CONNECTION RE-ESTABLISHMENT or X2 UE CONTEXT RELEASE is received.

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

Referenced by CancelPendingEvents(), PrepareHandover(), RecvHandoverPreparationFailure(), RecvHandoverRequestAck(), RecvRrcConnectionReestablishmentRequest(), and RecvUeContextRelease().

◆ m_imsi

uint64_t ns3::UeManager::m_imsi
private

◆ m_lastAllocatedDrbid

uint8_t ns3::UeManager::m_lastAllocatedDrbid
private

last allocated Data Radio Bearer ID

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

Referenced by AddDataRadioBearerInfo().

◆ m_lastRrcTransactionIdentifier

uint8_t ns3::UeManager::m_lastRrcTransactionIdentifier
private

last RRC transaction identifier

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

Referenced by GetNewRrcTransactionIdentifier().

◆ m_needPhyMacConfiguration

bool ns3::UeManager::m_needPhyMacConfiguration
private

need Phy MAC configuration

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

Referenced by CmacUeConfigUpdateInd(), RecvRrcConnectionReconfigurationCompleted(), and SetPdschConfigDedicated().

◆ m_packetBuffer

std::list<std::pair<uint8_t, Ptr<Packet> > > ns3::UeManager::m_packetBuffer
private

Packet buffer for when UE is doing the handover.

The packets are stored with the bid (bearer ID).

Source eNB starts forwarding data to target eNB through the X2 interface when it sends RRC Connection Reconfiguration to the UE. Target eNB buffers data until it receives RRC Connection Reconfiguration Complete from the UE.

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

Referenced by RecvRrcConnectionReconfigurationCompleted(), and SendData().

◆ m_pendingRrcConnectionReconfiguration

bool ns3::UeManager::m_pendingRrcConnectionReconfiguration
private

pending RRC connection reconfiguration

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

Referenced by RecvRrcConnectionSetupCompleted(), ScheduleRrcConnectionReconfiguration(), and SwitchToState().

◆ m_pendingStartDataRadioBearers

bool ns3::UeManager::m_pendingStartDataRadioBearers
private

Pending start data radio bearers.

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

Referenced by RecvRrcConnectionSetupCompleted(), and SwitchToState().

◆ m_physicalConfigDedicated

◆ m_rnti

◆ m_rrc

◆ m_sourceCellId

uint16_t ns3::UeManager::m_sourceCellId
private

source cell ID

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

Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().

◆ m_sourceX2apId

uint16_t ns3::UeManager::m_sourceX2apId
private

source X2 ap ID

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

Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().

◆ m_srb0

Ptr<LteSignalingRadioBearerInfo> ns3::UeManager::m_srb0
private

The Srb0 attribute.

SignalingRadioBearerInfo for SRB0.

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

Referenced by CompleteSetupUe(), DoInitialize(), and GetTypeId().

◆ m_srb1

Ptr<LteSignalingRadioBearerInfo> ns3::UeManager::m_srb1
private

The Srb1 attribute.

SignalingRadioBearerInfo for SRB1.

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

Referenced by BuildRadioResourceConfigDedicated(), CompleteSetupUe(), DoInitialize(), and GetTypeId().

◆ m_state

◆ m_stateTransitionTrace

TracedCallback<uint64_t, uint16_t, uint16_t, State, State> ns3::UeManager::m_stateTransitionTrace
private

The StateTransition trace source.

Fired upon every UE state transition seen by the UeManager at the eNB RRC. Exporting IMSI, cell ID, RNTI, old state, and new state.

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

Referenced by GetTypeId(), and SwitchToState().

◆ m_targetCellId

uint16_t ns3::UeManager::m_targetCellId
private

◆ m_targetX2apId

uint16_t ns3::UeManager::m_targetX2apId
private

target X2 ap ID

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

Referenced by BuildHoCancelMsg(), and RecvHandoverRequestAck().


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