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

#include "lte-ue-rrc.h"

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

Classes

struct  MeasValues
 Represents a measurement result from a certain cell. More...
 
struct  PendingTrigger_t
 Represents a single triggered event from a measurement identity which reporting criteria have been fulfilled, but delayed by time-to-trigger. More...
 
struct  VarMeasConfig
 Includes the accumulated configuration of the measurements to be performed by the UE. More...
 
struct  VarMeasReport
 Represents a single measurement reporting entry., which includes information about a measurement for which the triggering conditions have been met. More...
 

Public Types

typedef void(* CellSelectionTracedCallback) (uint64_t imsi, uint16_t cellId)
 TracedCallback signature for imsi, cellId and rnti events. More...
 
typedef void(* ImsiCidRntiCountTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count)
 TracedCallback signature for imsi, cellId, rnti and counter for random access events. More...
 
typedef void(* ImsiCidRntiTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti)
 TracedCallback signature for imsi, cellId and rnti events. More...
 
typedef void(* MibSibHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid)
 TracedCallback signature for MIBReceived, Sib1Received and HandoverStart events. More...
 
typedef void(* PhySyncDetectionTracedCallback) (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count)
 TracedCallback signature for in-sync and out-of-sync detection events. More...
 
typedef void(* SCarrierConfiguredTracedCallback) (Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
 TracedCallback signature for secondary carrier configuration events. More...
 
enum  State {
  IDLE_START = 0 , IDLE_CELL_SEARCH , IDLE_WAIT_MIB_SIB1 , IDLE_WAIT_MIB ,
  IDLE_WAIT_SIB1 , IDLE_CAMPED_NORMALLY , IDLE_WAIT_SIB2 , IDLE_RANDOM_ACCESS ,
  IDLE_CONNECTING , CONNECTED_NORMALLY , CONNECTED_HANDOVER , CONNECTED_PHY_PROBLEM ,
  CONNECTED_REESTABLISHING , NUM_STATES
}
 The states of the UE RRC entity. More...
 
typedef void(* StateTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState)
 TracedCallback signature for state transition events. More...
 

Public Member Functions

 LteUeRrc ()
 create an RRC instance for use within an ue More...
 
 ~LteUeRrc () override
 Destructor. More...
 
LteAsSapProviderGetAsSapProvider ()
 
uint16_t GetCellId () const
 
uint8_t GetDlBandwidth () const
 
uint32_t GetDlEarfcn () const
 
uint64_t GetImsi () const
 
LteUeCcmRrcSapUserGetLteCcmRrcSapUser ()
 Get the Component Carrier Management SAP offered by this RRC. More...
 
LteUeCmacSapUserGetLteUeCmacSapUser ()
 This function is overloaded to maintain backward compatibility. More...
 
LteUeCmacSapUserGetLteUeCmacSapUser (uint8_t index)
 This function is overloaded to maintain backward compatibility. More...
 
LteUeCphySapUserGetLteUeCphySapUser ()
 
LteUeCphySapUserGetLteUeCphySapUser (uint8_t index)
 
LteUeRrcSapProviderGetLteUeRrcSapProvider ()
 
uint16_t GetPreviousCellId () const
 Get the previous cell id. More...
 
uint16_t GetRnti () const
 
State GetState () const
 
uint8_t GetUlBandwidth () const
 
uint32_t GetUlEarfcn () const
 
void InitializeSap ()
 Initialize SAP. More...
 
bool IsServingCell (uint16_t cellId) const
 
void SetAsSapUser (LteAsSapUser *s)
 Set the AS SAP user to interact with the NAS entity. More...
 
void SetImsi (uint64_t imsi)
 
void SetLteCcmRrcSapProvider (LteUeCcmRrcSapProvider *s)
 set the Component Carrier Management SAP this RRC should interact with More...
 
void SetLteMacSapProvider (LteMacSapProvider *s)
 set the MAC SAP provider. More...
 
void SetLteUeCmacSapProvider (LteUeCmacSapProvider *s)
 set the CMAC SAP this RRC should interact with More...
 
void SetLteUeCmacSapProvider (LteUeCmacSapProvider *s, uint8_t index)
 set the CMAC SAP this RRC should interact with More...
 
void SetLteUeCphySapProvider (LteUeCphySapProvider *s)
 set the CPHY SAP this RRC should use to interact with the PHY More...
 
void SetLteUeCphySapProvider (LteUeCphySapProvider *s, uint8_t index)
 set the CPHY SAP this RRC should use to interact with the PHY More...
 
void SetLteUeRrcSapUser (LteUeRrcSapUser *s)
 set the RRC SAP this RRC should interact with More...
 
void SetUseRlcSm (bool val)
 
void StorePreviousCellId (uint16_t cellId)
 Store the previous cell id. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
 ~Object () override
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose ()
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized () const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID. More...
 
static const std::string ToString (LteUeRrc::State s)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID. More...
 

Public Attributes

uint16_t m_numberOfComponentCarriers
 The number of component carriers. More...
 

Private Types

typedef std::list< uint16_t > ConcernedCells_t
 List of cell IDs which are responsible for a certain trigger. More...
 

Private Member Functions

void ApplyMeasConfig (LteRrcSap::MeasConfig mc)
 Update the current measurement configuration m_varMeasConfig. More...
 
void ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd)
 Apply radio resource config dedicated. More...
 
void ApplyRadioResourceConfigDedicatedSecondaryCarrier (LteRrcSap::NonCriticalExtensionConfiguration nonCec)
 Apply radio resource config dedicated secondary carrier. More...
 
uint8_t Bid2Drbid (uint8_t bid)
 Bid 2 DR bid. More...
 
void CancelEnteringTrigger (uint8_t measId)
 Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurement identity. More...
 
void CancelEnteringTrigger (uint8_t measId, uint16_t cellId)
 Remove a specific cell from the waiting triggers in m_enteringTriggerQueue which belong to the given measurement identity. More...
 
void CancelLeavingTrigger (uint8_t measId)
 Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measurement identity. More...
 
void CancelLeavingTrigger (uint8_t measId, uint16_t cellId)
 Remove a specific cell from the waiting triggers in m_leavingTriggerQueue which belong to the given measurement identity. More...
 
void ConnectionTimeout ()
 Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed. More...
 
void DisposeOldSrb1 ()
 Dispose old SRB1. More...
 
void DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params)
 Part of the RRC protocol. More...
 
void DoConnect ()
 Connect function. More...
 
void DoDisconnect ()
 Disconnect function. More...
 
void DoDispose () override
 Destructor implementation. More...
 
void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn)
 Force camped on ENB function. More...
 
void DoInitialize () override
 Initialize() implementation. More...
 
void DoNotifyInSync ()
 Do notify in sync function. More...
 
void DoNotifyOutOfSync ()
 Do notify out of sync function. More...
 
void DoNotifyRandomAccessFailed ()
 Notify random access failed function. More...
 
void DoNotifyRandomAccessSuccessful ()
 Notify random access successful function. More...
 
void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params)
 Receive PDCP SDU function. More...
 
void DoRecvMasterInformationBlock (uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
 Receive master information block function. More...
 
void DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg)
 Part of the RRC protocol. More...
 
void DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg)
 Part of the RRC protocol. More...
 
void DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg)
 Part of the RRC protocol. More...
 
void DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg)
 Part of the RRC protocol. More...
 
void DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg)
 Part of the RRC protocol. More...
 
void DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg)
 Part of the RRC protocol. More...
 
void DoRecvSystemInformation (LteRrcSap::SystemInformation msg)
 Part of the RRC protocol. More...
 
void DoRecvSystemInformationBlockType1 (uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
 Receive system information block type 1 function. More...
 
void DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params)
 Report UE measurements function. More...
 
void DoResetSyncIndicationCounter ()
 Do reset sync indication counter function. More...
 
void DoSendData (Ptr< Packet > packet, uint8_t bid)
 Send data function. More...
 
void DoSetCsgWhiteList (uint32_t csgId)
 Set CSG white list function. More...
 
void DoSetNumberOfComponentCarriers (uint16_t noOfComponentCarriers)
 RRC CCM SAP USER Method. More...
 
void DoSetTemporaryCellRnti (uint16_t rnti)
 Set temporary cell rnti function. More...
 
void DoStartCellSelection (uint32_t dlEarfcn)
 Start cell selection function. More...
 
void EvaluateCellForSelection ()
 Performs cell selection evaluation to the current serving cell. More...
 
void LeaveConnectedMode ()
 Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cause. More...
 
void MeasurementReportTriggering (uint8_t measId)
 Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result. More...
 
void RadioLinkFailureDetected ()
 Radio link failure detected function. More...
 
void ResetRlfParams ()
 Reset radio link failure parameters. More...
 
void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint8_t componentCarrierId)
 Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functions. More...
 
void SendMeasurementReport (uint8_t measId)
 Produce a proper measurement report from the given measurement identity's reporting entry in m_varMeasReportList and then submit it to the serving eNodeB. More...
 
void StartConnection ()
 Start connection function. More...
 
void SwitchToState (State s)
 Switch the UE RRC to the given state. More...
 
void SynchronizeToStrongestCell ()
 Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it. More...
 
void VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells)
 Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB. More...
 
void VarMeasReportListClear (uint8_t measId)
 Remove the reporting entry of the given measurement identity from m_varMeasReportList. More...
 
void VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave)
 Remove some cells from an existing reporting entry in m_varMeasReportList. More...
 

Private Attributes

std::set< uint16_t > m_acceptableCell
 List of cell ID of acceptable cells for cell selection that have been detected. More...
 
LteAsSapProviderm_asSapProvider
 AS SAP provider. More...
 
LteAsSapUserm_asSapUser
 AS SAP user. More...
 
std::map< uint8_t, uint8_t > m_bid2DrbidMap
 bid to DR bid map More...
 
LteUeCcmRrcSapProviderm_ccmRrcSapProvider
 Interface to the LteUeComponentCarrierManage instance. More...
 
LteUeCcmRrcSapUserm_ccmRrcSapUser
 CCM RRC SAP user. More...
 
uint16_t m_cellId
 The CellId attribute. More...
 
std::vector< LteUeCmacSapProvider * > m_cmacSapProvider
 UE CMac SAP provider. More...
 
std::vector< LteUeCmacSapUser * > m_cmacSapUser
 UE CMac SAP user. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
 The ConnectionEstablished trace source. More...
 
bool m_connectionPending
 True if a connection request by upper layers is pending. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
 The ConnectionReconfiguration trace source. More...
 
EventId m_connectionTimeout
 Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes longer than T300. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
 The ConnectionTimeout trace source. More...
 
uint8_t m_connEstFailCount
 the counter to count T300 timer expiration More...
 
uint8_t m_connEstFailCountLimit
 the counter value for T300 timer expiration received from the eNB More...
 
std::vector< LteUeCphySapProvider * > m_cphySapProvider
 UE CPhy SAP provider. More...
 
std::vector< LteUeCphySapUser * > m_cphySapUser
 UE CPhy SAP user. More...
 
uint32_t m_csgWhiteList
 List of CSG ID which this UE entity has access to. More...
 
uint16_t m_dlBandwidth
 Downlink bandwidth in RBs. More...
 
uint32_t m_dlEarfcn
 Downlink carrier frequency. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
 The DrbCreated trace source. More...
 
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
 The DataRadioBearerMap attribute. More...
 
LtePdcpSapUserm_drbPdcpSapUser
 DRB PDCP SAP user. More...
 
std::map< uint8_t, std::list< PendingTrigger_t > > m_enteringTriggerQueue
 List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
 The HandoverEndError trace source. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
 The HandoverEndOk trace source. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
 The HandoverStart trace source. More...
 
bool m_hasReceivedMib
 True if MIB was received for the current cell. More...
 
bool m_hasReceivedSib1
 True if SIB1 was received for the current cell. More...
 
bool m_hasReceivedSib2
 True if SIB2 was received for the current cell. More...
 
uint64_t m_imsi
 The unique UE identifier. More...
 
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
 The InitialCellSelectionEndError trace source. More...
 
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
 The InitialCellSelectionEndOk trace source. More...
 
uint8_t m_lastRrcTransactionIdentifier
 last RRC transaction identifier More...
 
LteRrcSap::SystemInformationBlockType1 m_lastSib1
 Stored content of the last SIB1 received. More...
 
bool m_leaveConnectedMode
 true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e. More...
 
std::map< uint8_t, std::list< PendingTrigger_t > > m_leavingTriggerQueue
 List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger. More...
 
LteMacSapProviderm_macSapProvider
 MAC SAP provider. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
 The MibReceived trace source. More...
 
uint8_t m_n310
 The 'N310' attribute. More...
 
uint8_t m_n311
 The 'N311' attribute. More...
 
uint8_t m_noOfSyncIndications
 number of in-sync or out-of-sync indications coming from PHY layer More...
 
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
 the PDSCH config dedicated More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
 The 'PhySyncDetection' trace source. More...
 
uint16_t m_previousCellId
 the cell id of the previous cell UE was attached to More...
 
EventId m_radioLinkFailureDetected
 Time limit (given by m_t310) before the radio link is considered to have failed. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_radioLinkFailureTrace
 The 'RadioLinkFailure' trace source. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
 The RandomAccessError trace source. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
 The RandomAccessSuccessful trace source. More...
 
uint16_t m_rnti
 The C-RNTI attribute. More...
 
LteUeRrcSapProviderm_rrcSapProvider
 RRC SAP provider. More...
 
LteUeRrcSapUserm_rrcSapUser
 RRC SAP user. More...
 
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
 The SCarrierConfigured trace source. More...
 
std::list< LteRrcSap::SCellToAddModm_sCellToAddModList
 Secondary carriers. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
 The Sib1Received trace source. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
 The Sib2Received trace source. More...
 
Ptr< LteSignalingRadioBearerInfom_srb0
 The Srb0 attribute. More...
 
Ptr< LteSignalingRadioBearerInfom_srb1
 The Srb1 attribute. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
 The Srb1Created trace source. More...
 
Ptr< LteSignalingRadioBearerInfom_srb1Old
 SRB1 configuration before RRC connection reconfiguration. More...
 
State m_state
 The current UE RRC state. More...
 
TracedCallback< uint64_t, uint16_t, uint16_t, State, Statem_stateTransitionTrace
 The StateTransition trace source. More...
 
std::map< uint16_t, MeasValuesm_storedMeasValues
 Internal storage of the latest measurement results from all detected detected cells, indexed by the cell ID where the measurement was taken from. More...
 
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
 Stored measure values per carrier. More...
 
std::map< uint16_t, MeasValuesm_storedScellMeasValues
 Internal storage of the latest measurement results from all detected detected Secondary carrier component, indexed by the carrier component ID where the measurement was taken from. More...
 
Time m_t300
 The T300 attribute. More...
 
Time m_t310
 The 'T310' attribute. More...
 
uint16_t m_ulBandwidth
 Uplink bandwidth in RBs. More...
 
uint32_t m_ulEarfcn
 Uplink carrier frequency. More...
 
bool m_useRlcSm
 True if RLC SM is to be used, false if RLC UM/AM are to be used. More...
 
VarMeasConfig m_varMeasConfig
 Includes the accumulated configuration of the measurements to be performed by the UE. More...
 
std::map< uint8_t, VarMeasReportm_varMeasReportList
 The list of active reporting entries, indexed by the measurement identity which triggered the reporting. More...
 

Friends

class LtePdcpSpecificLtePdcpSapUser< LteUeRrc >
 allow LtePdcpSpecificLtePdcpSapUser<LteUeRrc> class friend access More...
 
class MemberLteAsSapProvider< LteUeRrc >
 allow MemberLteAsSapProvider<LteUeRrc> class friend access More...
 
class MemberLteUeCcmRrcSapUser< LteUeRrc >
 allow MemberLteUeCcmRrcSapUser<LteUeRrc> class friend access More...
 
class MemberLteUeCphySapUser< LteUeRrc >
 allow MemberLteUeCphySapUser<LteUeRrc> class friend access More...
 
class MemberLteUeRrcSapProvider< LteUeRrc >
 allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access More...
 
class UeMemberLteUeCmacSapUser
 allow UeMemberLteUeCmacSapUser class friend access More...
 
class UeRrcMemberLteEnbCmacSapUser
 allow UeRrcMemberLteEnbCmacSapUser class friend access More...
 

Additional Inherited Members

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

Detailed Description

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

Member Typedef Documentation

◆ CellSelectionTracedCallback

typedef void(* ns3::LteUeRrc::CellSelectionTracedCallback) (uint64_t imsi, uint16_t cellId)

TracedCallback signature for imsi, cellId and rnti events.

Parameters
[in]imsi
[in]cellId

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

◆ ConcernedCells_t

typedef std::list<uint16_t> ns3::LteUeRrc::ConcernedCells_t
private

List of cell IDs which are responsible for a certain trigger.

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

◆ ImsiCidRntiCountTracedCallback

typedef void(* ns3::LteUeRrc::ImsiCidRntiCountTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count)

TracedCallback signature for imsi, cellId, rnti and counter for random access events.

Parameters
[in]imsi
[in]cellId
[in]rnti
[in]count

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

◆ ImsiCidRntiTracedCallback

typedef void(* ns3::LteUeRrc::ImsiCidRntiTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti)

TracedCallback signature for imsi, cellId and rnti events.

Parameters
[in]imsi
[in]cellId
[in]rnti

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

◆ MibSibHandoverTracedCallback

typedef void(* ns3::LteUeRrc::MibSibHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid)

TracedCallback signature for MIBReceived, Sib1Received and HandoverStart events.

Parameters
[in]imsi
[in]cellId
[in]rnti
[in]otherCid

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

◆ PhySyncDetectionTracedCallback

typedef void(* ns3::LteUeRrc::PhySyncDetectionTracedCallback) (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count)

TracedCallback signature for in-sync and out-of-sync detection events.

Parameters
[in]imsi
[in]rnti
[in]cellId
[in]type
[in]count

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

◆ SCarrierConfiguredTracedCallback

typedef void(* ns3::LteUeRrc::SCarrierConfiguredTracedCallback) (Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)

TracedCallback signature for secondary carrier configuration events.

Parameters
[in]Pointerto UE RRC
[in]Listof LteRrcSap::SCellToAddMod

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

◆ StateTracedCallback

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

TracedCallback signature for state transition events.

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

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

Member Enumeration Documentation

◆ State

The states of the UE RRC entity.

Enumerator
IDLE_START 
IDLE_CELL_SEARCH 
IDLE_WAIT_MIB_SIB1 
IDLE_WAIT_MIB 
IDLE_WAIT_SIB1 
IDLE_CAMPED_NORMALLY 
IDLE_WAIT_SIB2 
IDLE_RANDOM_ACCESS 
IDLE_CONNECTING 
CONNECTED_NORMALLY 
CONNECTED_HANDOVER 
CONNECTED_PHY_PROBLEM 
CONNECTED_REESTABLISHING 
NUM_STATES 

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

Constructor & Destructor Documentation

◆ LteUeRrc()

◆ ~LteUeRrc()

ns3::LteUeRrc::~LteUeRrc ( )
override

Destructor.

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

References NS_LOG_FUNCTION.

Member Function Documentation

◆ ApplyMeasConfig()

void ns3::LteUeRrc::ApplyMeasConfig ( LteRrcSap::MeasConfig  mc)
private

Update the current measurement configuration m_varMeasConfig.

Parameters
mcmeasurements to be performed by the UE

Implements Section 5.5.2 "Measurement configuration" of 3GPP TS 36.331. The supported subfunctions are:

  • Measurement object removal
  • Measurement object addition/ modification
  • Reporting configuration removal
  • Reporting configuration addition/ modification
  • Quantity configuration
  • Measurement identity removal
  • Measurement identity addition/ modification

The subfunctions that will be invoked are determined by the content of the given measurement configuration.

Note the existence of some chain reaction behaviours:

  • Removal of measurement object or reporting configuration also removes any impacted measurement identities.
  • Removal of measurement identity also removes any associated reporting entry from m_varMeasReportList.
  • Modification to measurement object or reporting configuration also removes any reporting entries of the impacted measurement identities from m_varMeasReportList.
  • Modification to quantity configuration also removes all existing reporting entries from m_varMeasReportList, regardless of measurement identity.

Some unsupported features:

  • List of neighbouring cells
  • List of black cells
  • CGI reporting
  • Periodical reporting configuration
  • Measurement gaps
  • s-Measure
  • Speed-dependent scaling
Warning
There is a possibility that the input argument (of type LteRrcSap::MeasConfig) may contain information in fields related to the unsupported features. In such case, the function will raise an error.

The measurement configuration given as an argument is typically provided by the serving eNodeB. It is transmitted through the RRC protocol when the UE joins the cell, e.g., by connection establishment or by incoming handover. The information inside the argument can be configured from the eNodeB side, which would then equally apply to all other UEs attached to the same eNodeB. See the LTE module's User Documentation for more information on configuring this.

See also
LteRrcSap::MeasConfig, LteUeRrc::m_varMeasReportList

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

References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRP, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRQ, ns3::LteRrcSap::MeasConfig::haveMeasGapConfig, ns3::LteRrcSap::MeasConfig::haveQuantityConfig, ns3::LteRrcSap::MeasConfig::haveSmeasure, ns3::LteRrcSap::MeasConfig::haveSpeedStatePars, m_cphySapProvider, m_enteringTriggerQueue, m_leavingTriggerQueue, m_numberOfComponentCarriers, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasConfig::measIdToAddModList, ns3::LteRrcSap::MeasConfig::measIdToRemoveList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::LteRrcSap::MeasConfig::measObjectToAddModList, ns3::LteRrcSap::MeasConfig::measObjectToRemoveList, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::ReportConfigEutra::PERIODICAL, ns3::LteRrcSap::MeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::MeasConfig::reportConfigToAddModList, ns3::LteRrcSap::MeasConfig::reportConfigToRemoveList, and VarMeasReportListClear().

Referenced by DoRecvRrcConnectionReconfiguration().

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

◆ ApplyRadioResourceConfigDedicated()

void ns3::LteUeRrc::ApplyRadioResourceConfigDedicated ( LteRrcSap::RadioResourceConfigDedicated  rrcd)
private

Apply radio resource config dedicated.

Parameters
rrcdLteRrcSap::RadioResourceConfigDedicated
Todo:
currently not implemented. Would need to modify drbInfo, and then propagate changes to the MAC

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

References ns3::LteUeCcmRrcSapProvider::AddLc(), ns3::LteRrcSap::RlcConfig::AM, ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, ns3::LteUeCcmRrcSapProvider::ConfigureSignalBearer(), CONNECTED_HANDOVER, ns3::LteRrcSap::ConvertPdschConfigDedicated2Double(), ns3::ObjectFactory::Create(), ns3::LteRrcSap::RadioResourceConfigDedicated::drbToAddModList, ns3::LteRrcSap::RadioResourceConfigDedicated::drbToReleaseList, ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::Object::GetObject(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcUm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), ns3::LteRrcSap::PhysicalConfigDedicated::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::havePdschConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::haveSoundingRsUlConfigDedicated, IDLE_CONNECTING, ns3::Object::Initialize(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::logicalChannelGroup, m_bid2DrbidMap, m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_cphySapProvider, m_drbCreatedTrace, m_drbMap, m_drbPdcpSapUser, m_imsi, m_macSapProvider, m_numberOfComponentCarriers, m_pdschConfigDedicated, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1CreatedTrace, m_state, m_useRlcSm, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, ns3::LteUeCmacSapProvider::LogicalChannelConfig::prioritizedBitRateKbps, ns3::LteUeCmacSapProvider::LogicalChannelConfig::priority, ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LteRlc::SetRnti(), ns3::ObjectFactory::SetTypeId(), ns3::LteUeRrcSapUser::Setup(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteUeRrcSapUser::SetupParameters::srb0SapProvider, ns3::LteUeRrcSapUser::SetupParameters::srb1SapProvider, ns3::LteRrcSap::RadioResourceConfigDedicated::srbToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ToString(), ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, and ns3::LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL.

Referenced by DoRecvRrcConnectionReconfiguration(), and DoRecvRrcConnectionSetup().

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

◆ ApplyRadioResourceConfigDedicatedSecondaryCarrier()

void ns3::LteUeRrc::ApplyRadioResourceConfigDedicatedSecondaryCarrier ( LteRrcSap::NonCriticalExtensionConfiguration  nonCec)
private

◆ Bid2Drbid()

uint8_t ns3::LteUeRrc::Bid2Drbid ( uint8_t  bid)
private

Bid 2 DR bid.

Parameters
bidthe BID
Returns
the DR bid

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

References m_bid2DrbidMap.

Referenced by DoSendData().

+ Here is the caller graph for this function:

◆ CancelEnteringTrigger() [1/2]

void ns3::LteUeRrc::CancelEnteringTrigger ( uint8_t  measId)
private

Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurement identity.

Parameters
measIdthe measurement identity to be processed, must already exists in m_enteringTriggerQueue, otherwise an error would be raised
Note
The function may conclude that there is nothing to be removed. In this case, the function will simply ignore quietly.

This function is used when the entering condition of the measurement identity becomes no longer true. Therefore all the waiting triggers for this measurement identity in m_enteringTriggerQueue have become invalid and must be canceled.

See also
LteUeRrc::m_enteringTriggerQueue

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

References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by MeasurementReportTriggering(), VarMeasReportListAdd(), and VarMeasReportListClear().

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

◆ CancelEnteringTrigger() [2/2]

void ns3::LteUeRrc::CancelEnteringTrigger ( uint8_t  measId,
uint16_t  cellId 
)
private

Remove a specific cell from the waiting triggers in m_enteringTriggerQueue which belong to the given measurement identity.

Parameters
measIdthe measurement identity to be processed, must already exists in m_enteringTriggerQueue, otherwise an error would be raised
cellIdthe cell ID to be removed from the waiting triggers
Note
The function may conclude that there is nothing to be removed. In this case, the function will simply ignore quietly.

This function is used when a specific neighbour cell no longer fulfills the entering condition of the measurement identity. Thus the cell must be removed from all the waiting triggers for this measurement identity in m_enteringTriggerQueue.

See also
LteUeRrc::m_enteringTriggerQueue

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

References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

+ Here is the call graph for this function:

◆ CancelLeavingTrigger() [1/2]

void ns3::LteUeRrc::CancelLeavingTrigger ( uint8_t  measId)
private

Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measurement identity.

Parameters
measIdthe measurement identity to be processed, must already exists in m_leavingTriggerQueue, otherwise an error would be raised
Note
The function may conclude that there is nothing to be removed. In this case, the function will simply ignore quietly.

This function is used when the leaving condition of the measurement identity becomes no longer true. Therefore all the waiting triggers for this measurement identity in m_leavingTriggerQueue have become invalid and must be canceled.

See also
LteUeRrc::m_leavingTriggerQueue

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

References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by MeasurementReportTriggering(), VarMeasReportListClear(), and VarMeasReportListErase().

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

◆ CancelLeavingTrigger() [2/2]

void ns3::LteUeRrc::CancelLeavingTrigger ( uint8_t  measId,
uint16_t  cellId 
)
private

Remove a specific cell from the waiting triggers in m_leavingTriggerQueue which belong to the given measurement identity.

Parameters
measIdthe measurement identity to be processed, must already exists in m_leavingTriggerQueue, otherwise an error would be raised
cellIdthe cell ID to be removed from the waiting triggers
Note
The function may conclude that there is nothing to be removed. In this case, the function will simply ignore quietly.

This function is used when a specific neighbour cell no longer fulfills the leaving condition of the measurement identity. Thus the cell must be removed from all the waiting triggers for this measurement identity in m_leavingTriggerQueue.

See also
LteUeRrc::m_leavingTriggerQueue

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

References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

+ Here is the call graph for this function:

◆ ConnectionTimeout()

void ns3::LteUeRrc::ConnectionTimeout ( )
private

Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed.

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

References CONNECTED_PHY_PROBLEM, IDLE_CAMPED_NORMALLY, m_asSapUser, m_cellId, m_cmacSapProvider, m_connectionTimeoutTrace, m_connEstFailCount, m_connEstFailCountLimit, m_hasReceivedSib2, m_imsi, m_numberOfComponentCarriers, m_rnti, ns3::LteAsSapUser::NotifyConnectionFailed(), ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, and SwitchToState().

Referenced by DoNotifyRandomAccessSuccessful().

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

◆ DisposeOldSrb1()

void ns3::LteUeRrc::DisposeOldSrb1 ( )
private

Dispose old SRB1.

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

References m_srb1Old, and NS_LOG_FUNCTION.

Referenced by DoRecvRrcConnectionReconfiguration().

+ Here is the caller graph for this function:

◆ DoCompleteSetup()

void ns3::LteUeRrc::DoCompleteSetup ( LteUeRrcSapProvider::CompleteSetupParameters  params)
private

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::CompleteSetup interface.

Parameters
paramsthe LteUeRrcSapProvider::CompleteSetupParameters

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

References m_rnti, m_srb0, m_srb1, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.

◆ DoConnect()

void ns3::LteUeRrc::DoConnect ( )
private

◆ DoDisconnect()

◆ DoDispose()

void ns3::LteUeRrc::DoDispose ( void  )
overrideprivatevirtual

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 158 of file lte-ue-rrc.cc.

References m_asSapProvider, m_ccmRrcSapUser, m_cmacSapProvider, m_cmacSapUser, m_cphySapProvider, m_cphySapUser, m_drbMap, m_drbPdcpSapUser, m_numberOfComponentCarriers, m_rrcSapProvider, and NS_LOG_FUNCTION.

◆ DoForceCampedOnEnb()

void ns3::LteUeRrc::DoForceCampedOnEnb ( uint16_t  cellId,
uint32_t  dlEarfcn 
)
private

◆ DoInitialize()

◆ DoNotifyInSync()

void ns3::LteUeRrc::DoNotifyInSync ( )
private

Do notify in sync function.

Triggered upon receiving an in sync indication from UE PHY. When the count equals N311, then T310 is cancelled.

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

References m_cellId, m_imsi, m_n311, m_noOfSyncIndications, m_phySyncDetectionTrace, m_rnti, NS_LOG_FUNCTION, NS_LOG_INFO, and ResetRlfParams().

+ Here is the call graph for this function:

◆ DoNotifyOutOfSync()

void ns3::LteUeRrc::DoNotifyOutOfSync ( )
private

Do notify out of sync function.

Triggered upon receiving an out of sync indication from UE PHY. When the count equals N310, then T310 is started.

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

References ns3::EventId::IsRunning(), m_cellId, m_cphySapProvider, m_imsi, m_n310, m_noOfSyncIndications, m_phySyncDetectionTrace, m_radioLinkFailureDetected, m_rnti, m_t310, NS_LOG_FUNCTION, NS_LOG_INFO, RadioLinkFailureDetected(), and ns3::Simulator::Schedule().

+ Here is the call graph for this function:

◆ DoNotifyRandomAccessFailed()

void ns3::LteUeRrc::DoNotifyRandomAccessFailed ( )
private

Notify random access failed function.

Todo:
After a handover failure because of a random access failure, send an RRC Connection Re-establishment and switch to CONNECTED_REESTABLISHING state.

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

References CONNECTED_HANDOVER, CONNECTED_PHY_PROBLEM, IDLE_CAMPED_NORMALLY, IDLE_RANDOM_ACCESS, m_asSapUser, m_cellId, m_handoverEndErrorTrace, m_imsi, m_leaveConnectedMode, m_randomAccessErrorTrace, m_rnti, m_rrcSapUser, m_state, ns3::LteAsSapUser::NotifyConnectionFailed(), ns3::LteAsSapUser::NotifyConnectionReleased(), NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteUeRrcSapUser::SendIdealUeContextRemoveRequest(), SwitchToState(), and ToString().

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

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

◆ DoNotifyRandomAccessSuccessful()

◆ DoReceivePdcpSdu()

void ns3::LteUeRrc::DoReceivePdcpSdu ( LtePdcpSapUser::ReceivePdcpSduParameters  params)
private

Receive PDCP SDU function.

Parameters
paramsLtePdcpSapUser::ReceivePdcpSduParameters

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

References m_asSapUser, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::LteAsSapUser::RecvData().

+ Here is the call graph for this function:

◆ DoRecvMasterInformationBlock()

void ns3::LteUeRrc::DoRecvMasterInformationBlock ( uint16_t  cellId,
LteRrcSap::MasterInformationBlock  msg 
)
private

Receive master information block function.

Parameters
cellIdthe cell ID
msgLteRrcSap::MasterInformationBlock

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

References ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, IDLE_CAMPED_NORMALLY, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, m_cellId, m_cphySapProvider, m_dlBandwidth, m_hasReceivedMib, m_imsi, m_mibReceivedTrace, m_rnti, m_state, and SwitchToState().

+ Here is the call graph for this function:

◆ DoRecvRrcConnectionReconfiguration()

void ns3::LteUeRrc::DoRecvRrcConnectionReconfiguration ( LteRrcSap::RrcConnectionReconfiguration  msg)
private

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface.

Parameters
msgthe LteRrcSap::RrcConnectionReconfiguration

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

References ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ApplyRadioResourceConfigDedicatedSecondaryCarrier(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, CONNECTED_HANDOVER, CONNECTED_NORMALLY, DisposeOldSrb1(), ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, ns3::EventId::IsRunning(), m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_connectionReconfigurationTrace, m_cphySapProvider, m_drbMap, m_handoverStartTrace, m_imsi, m_lastRrcTransactionIdentifier, m_radioLinkFailureDetected, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1Old, m_state, ns3::LteRrcSap::RrcConnectionReconfiguration::measConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteUeCcmRrcSapProvider::Reset(), ResetRlfParams(), ns3::LteRrcSap::RrcConnectionReconfiguration::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionReconfigurationCompleted::rrcTransactionIdentifier, ns3::Simulator::ScheduleNow(), ns3::LteUeRrcSapUser::SendRrcConnectionReconfigurationCompleted(), StorePreviousCellId(), SwitchToState(), ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ToString(), ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.

+ Here is the call graph for this function:

◆ DoRecvRrcConnectionReestablishment()

void ns3::LteUeRrc::DoRecvRrcConnectionReestablishment ( LteRrcSap::RrcConnectionReestablishment  msg)
private

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface.

Parameters
msgLteRrcSap::RrcConnectionReestablishment
Todo:
After receiving RRC Connection Re-establishment, stop timer T301, fire a new trace source, reply with RRC Connection Re-establishment Complete, and finally switch to CONNECTED_NORMALLY state. See Section 5.3.7.5 of 3GPP TS 36.331.

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

References CONNECTED_REESTABLISHING, m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ToString().

+ Here is the call graph for this function:

◆ DoRecvRrcConnectionReestablishmentReject()

void ns3::LteUeRrc::DoRecvRrcConnectionReestablishmentReject ( LteRrcSap::RrcConnectionReestablishmentReject  msg)
private

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.

Parameters
msgLteRrcSap::RrcConnectionReestablishmentReject
Todo:
After receiving RRC Connection Re-establishment Reject, stop timer T301. See Section 5.3.7.8 of 3GPP TS 36.331.

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

References CONNECTED_REESTABLISHING, m_asSapUser, m_rnti, m_state, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_FATAL_ERROR, NS_LOG_FUNCTION, and ToString().

+ Here is the call graph for this function:

◆ DoRecvRrcConnectionReject()

void ns3::LteUeRrc::DoRecvRrcConnectionReject ( LteRrcSap::RrcConnectionReject  msg)
private

◆ DoRecvRrcConnectionRelease()

void ns3::LteUeRrc::DoRecvRrcConnectionRelease ( LteRrcSap::RrcConnectionRelease  msg)
private

◆ DoRecvRrcConnectionSetup()

◆ DoRecvSystemInformation()

void ns3::LteUeRrc::DoRecvSystemInformation ( LteRrcSap::SystemInformation  msg)
private

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::RecvSystemInformation interface.

Parameters
msgthe LteRrcSap::SystemInformation

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

References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, ns3::LteRrcSap::SystemInformation::haveSib2, IDLE_CAMPED_NORMALLY, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_WAIT_SIB2, m_cellId, m_cmacSapProvider, m_connectionPending, m_connEstFailCountLimit, m_cphySapProvider, m_hasReceivedSib2, m_imsi, m_rnti, m_sib2ReceivedTrace, m_state, m_ulBandwidth, m_ulEarfcn, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, two-ray-to-three-gpp-ch-calibration::rc, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SystemInformation::sib2, StartConnection(), ns3::LteRrcSap::RachConfigCommon::txFailParam, ns3::LteRrcSap::FreqInfo::ulBandwidth, and ns3::LteRrcSap::FreqInfo::ulCarrierFreq.

+ Here is the call graph for this function:

◆ DoRecvSystemInformationBlockType1()

◆ DoReportUeMeasurements()

void ns3::LteUeRrc::DoReportUeMeasurements ( LteUeCphySapUser::UeMeasurementsParameters  params)
private

◆ DoResetSyncIndicationCounter()

void ns3::LteUeRrc::DoResetSyncIndicationCounter ( )
private

Do reset sync indication counter function.

Reset the sync indication counter if the Qin or Qout condition at PHY is not fulfilled for the number of consecutive frames.

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

References m_imsi, m_noOfSyncIndications, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

◆ DoSendData()

void ns3::LteUeRrc::DoSendData ( Ptr< Packet packet,
uint8_t  bid 
)
private

Send data function.

Parameters
packetthe packet
bidthe BID

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

References Bid2Drbid(), ns3::Packet::GetSize(), m_drbMap, m_rnti, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.

+ Here is the call graph for this function:

◆ DoSetCsgWhiteList()

void ns3::LteUeRrc::DoSetCsgWhiteList ( uint32_t  csgId)
private

Set CSG white list function.

Parameters
csgIdCSG ID

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

References m_csgWhiteList, m_imsi, and NS_LOG_FUNCTION.

◆ DoSetNumberOfComponentCarriers()

void ns3::LteUeRrc::DoSetNumberOfComponentCarriers ( uint16_t  noOfComponentCarriers)
private

RRC CCM SAP USER Method.

Parameters
noOfComponentCarriersthe number of component carriers

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

References m_numberOfComponentCarriers, and NS_LOG_FUNCTION.

◆ DoSetTemporaryCellRnti()

void ns3::LteUeRrc::DoSetTemporaryCellRnti ( uint16_t  rnti)
private

Set temporary cell rnti function.

Parameters
rntiRNTI

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

References m_cphySapProvider, m_rnti, m_srb0, and NS_LOG_FUNCTION.

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

+ Here is the caller graph for this function:

◆ DoStartCellSelection()

void ns3::LteUeRrc::DoStartCellSelection ( uint32_t  dlEarfcn)
private

Start cell selection function.

Parameters
dlEarfcnthe DL EARFCN

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

References IDLE_CELL_SEARCH, IDLE_START, m_cphySapProvider, m_dlEarfcn, m_imsi, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, SwitchToState(), and ToString().

Referenced by LeaveConnectedMode().

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

◆ EvaluateCellForSelection()

void ns3::LteUeRrc::EvaluateCellForSelection ( )
private

Performs cell selection evaluation to the current serving cell.

Warning
This function is a part of the initial cell selection procedure, hence must be only executed during IDLE mode and specifically during the state when the UE just received the first SIB1 message from the serving cell.

This function assumes that the required information for the evaluation procedure have been readily gathered, such as measurement results, MIB, and SIB1. Please refer to the LTE module's Design Documentation for more details on the evaluation process.

If the cell passes the evaluation, the UE will immediately camp to it. Otherwise, the UE will pick another cell and restart the cell selection procedure.

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

References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, ns3::LteRrcSap::SystemInformationBlockType1::cellSelectionInfo, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, DoConnect(), IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_WAIT_SIB1, ns3::EutranMeasurementMapping::IeValue2ActualQRxLevMin(), m_acceptableCell, m_cellId, m_connectionPending, m_cphySapProvider, m_csgWhiteList, m_dlBandwidth, m_dlEarfcn, m_hasReceivedMib, m_hasReceivedSib1, m_imsi, m_initialCellSelectionEndErrorTrace, m_initialCellSelectionEndOkTrace, m_lastSib1, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::CellSelectionInfo::qRxLevMin, SwitchToState(), SynchronizeToStrongestCell(), and ToString().

Referenced by DoRecvSystemInformationBlockType1().

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

◆ GetAsSapProvider()

LteAsSapProvider * ns3::LteUeRrc::GetAsSapProvider ( )
Returns
the AS SAP provider exported by this RRC

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

References m_asSapProvider.

◆ GetCellId()

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

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

References m_cellId, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetDlBandwidth()

uint8_t ns3::LteUeRrc::GetDlBandwidth ( ) const
Returns
the downlink bandwidth in RBs

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

References m_dlBandwidth, and NS_LOG_FUNCTION.

◆ GetDlEarfcn()

uint32_t ns3::LteUeRrc::GetDlEarfcn ( ) const
Returns
the downlink carrier frequency (EARFCN)

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

References m_dlEarfcn.

◆ GetImsi()

uint64_t ns3::LteUeRrc::GetImsi ( ) const
Returns
imsi the unique UE identifier

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

References m_imsi.

◆ GetLteCcmRrcSapUser()

LteUeCcmRrcSapUser * ns3::LteUeRrc::GetLteCcmRrcSapUser ( )

Get the Component Carrier Management SAP offered by this RRC.

Returns
s the Component Carrier Management SAP User interface offered to the carrier component selection algorithm by this RRC

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

References m_ccmRrcSapUser, and NS_LOG_FUNCTION.

◆ GetLteUeCmacSapUser() [1/2]

LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser ( )

This function is overloaded to maintain backward compatibility.

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

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

References m_cmacSapUser, and NS_LOG_FUNCTION.

◆ GetLteUeCmacSapUser() [2/2]

LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser ( uint8_t  index)

This function is overloaded to maintain backward compatibility.

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

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

References m_cmacSapUser, and NS_LOG_FUNCTION.

◆ GetLteUeCphySapUser() [1/2]

LteUeCphySapUser * ns3::LteUeRrc::GetLteUeCphySapUser ( )
Returns
s the CPHY SAP User interface offered to the PHY by this RRC

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

References m_cphySapUser, and NS_LOG_FUNCTION.

◆ GetLteUeCphySapUser() [2/2]

LteUeCphySapUser * ns3::LteUeRrc::GetLteUeCphySapUser ( uint8_t  index)
Parameters
indexthe index
Returns
s the CPHY SAP User interface offered to the PHY by this RRC

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

References m_cphySapUser, and NS_LOG_FUNCTION.

◆ GetLteUeRrcSapProvider()

LteUeRrcSapProvider * ns3::LteUeRrc::GetLteUeRrcSapProvider ( )
Returns
s the RRC SAP Provider interface offered to the MAC by this RRC

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

References m_rrcSapProvider, and NS_LOG_FUNCTION.

◆ GetPreviousCellId()

uint16_t ns3::LteUeRrc::GetPreviousCellId ( ) const

Get the previous cell id.

Returns
The cell Id of the previous cell the UE was attached to.

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

References m_previousCellId, and NS_LOG_FUNCTION.

◆ GetRnti()

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

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

References m_rnti, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetState()

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

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

References m_state, and NS_LOG_FUNCTION.

◆ GetTypeId()

◆ GetUlBandwidth()

uint8_t ns3::LteUeRrc::GetUlBandwidth ( ) const
Returns
the uplink bandwidth in RBs

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

References m_ulBandwidth, and NS_LOG_FUNCTION.

◆ GetUlEarfcn()

uint32_t ns3::LteUeRrc::GetUlEarfcn ( ) const
Returns
the uplink carrier frequency (EARFCN)

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

References m_ulEarfcn, and NS_LOG_FUNCTION.

◆ InitializeSap()

void ns3::LteUeRrc::InitializeSap ( )

◆ IsServingCell()

bool ns3::LteUeRrc::IsServingCell ( uint16_t  cellId) const
Parameters
cellIdcell identifier
Returns
true if cellId is the serving cell for this UE

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

References m_cphySapProvider, and NS_LOG_FUNCTION.

◆ LeaveConnectedMode()

void ns3::LteUeRrc::LeaveConnectedMode ( )
private

Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cause.

For example, the UE is move to the IDLE_START state upon radio link failure. At RRC, all radio bearers except SRB 0 are removed, measurement reports are cleared and the appropriate flags are reset to their default values. This method in turn triggers the reset methods of UE PHY and MAC layers.

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

References DoStartCellSelection(), IDLE_START, m_bid2DrbidMap, m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_cphySapProvider, m_dlEarfcn, m_drbMap, m_hasReceivedMib, m_hasReceivedSib1, m_hasReceivedSib2, m_imsi, m_leaveConnectedMode, m_numberOfComponentCarriers, m_rnti, m_srb0, m_srb1, m_storedMeasValues, m_varMeasConfig, ns3::LteUeRrc::VarMeasConfig::measIdList, NS_LOG_FUNCTION, ns3::LteUeCcmRrcSapProvider::Reset(), ResetRlfParams(), StorePreviousCellId(), SwitchToState(), and VarMeasReportListClear().

Referenced by DoDisconnect().

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

◆ MeasurementReportTriggering()

void ns3::LteUeRrc::MeasurementReportTriggering ( uint8_t  measId)
private

Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result.

Parameters
measIdthe measurement identity to be evaluated

Implements Section 5.5.4.1 "Measurement report triggering - General" of 3GPP TS 36.331. This function take into use the latest measurement results and evaluate them against the entering condition and the leaving condition of the measurement identity's reporting criteria. The evaluation also take into account other defined criteria, such as hysteresis and time-to-trigger.

The entering and leaving condition to be evaluated are determined by the event type of the measurement identity's reporting criteria. As defined in LteRrcSap::ReportConfigEutra, there 5 supported events. The gore details of these events can be found in Section 5.5.4 of 3GPP TS 36.331.

An applicable entering condition (i.e., the condition evaluates to true) will insert a new reporting entry to m_varMeasReportList, so measurement reports would be produced and submitted to eNodeB. On the other hand, an applicable leaving condition will remove the related reporting entry from m_varMeasReportList, so submission of related measurement reports to eNodeB will be suspended.

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

References ns3::LteRrcSap::ReportConfigEutra::a3Offset, CancelEnteringTrigger(), CancelLeavingTrigger(), ns3::LteRrcSap::MeasObjectEutra::carrierFreq, ns3::LteRrcSap::ThresholdEutra::choice, ns3::LteUeRrc::PendingTrigger_t::concernedCells, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::ReportConfigEutra::EVENT_A1, ns3::LteRrcSap::ReportConfigEutra::EVENT_A2, ns3::LteRrcSap::ReportConfigEutra::EVENT_A3, ns3::LteRrcSap::ReportConfigEutra::EVENT_A4, ns3::LteRrcSap::ReportConfigEutra::EVENT_A5, ns3::LteRrcSap::ReportConfigEutra::eventId, ns3::LteRrcSap::ReportConfigEutra::hysteresis, ns3::EutranMeasurementMapping::IeValue2ActualA3Offset(), ns3::EutranMeasurementMapping::IeValue2ActualHysteresis(), m_cellId, m_cphySapProvider, m_enteringTriggerQueue, m_leavingTriggerQueue, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::PendingTrigger_t::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::MilliSeconds(), NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::MeasObjectEutra::offsetFreq, ns3::LteRrcSap::ThresholdEutra::range, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::reportOnLeave, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::EutranMeasurementMapping::RsrpRange2Dbm(), ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::EutranMeasurementMapping::RsrqRange2Db(), ns3::Simulator::Schedule(), ns3::LteRrcSap::ReportConfigEutra::threshold1, ns3::LteRrcSap::ReportConfigEutra::threshold2, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRP, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ, ns3::LteUeRrc::PendingTrigger_t::timer, ns3::LteRrcSap::ReportConfigEutra::timeToTrigger, ns3::LteRrcSap::ReportConfigEutra::triggerQuantity, ns3::LteRrcSap::ReportConfigEutra::triggerType, VarMeasReportListAdd(), and VarMeasReportListErase().

Referenced by DoReportUeMeasurements().

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

◆ RadioLinkFailureDetected()

void ns3::LteUeRrc::RadioLinkFailureDetected ( )
private

Radio link failure detected function.

Upon detection of radio link failure, the UE is reverted back to idle state and the UE context at eNodeB and EPC is deleted, thus releasing the RRC connection. The eNodeB is notified in an ideal way since there is no radio link failure detection implemented at the eNodeB. If the deletion process is not synchronous, then errors occur due to triggering of assert messages.

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

References CONNECTED_PHY_PROBLEM, m_asSapUser, m_cellId, m_imsi, m_radioLinkFailureTrace, m_rnti, m_rrcSapUser, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, ns3::LteUeRrcSapUser::SendIdealUeContextRemoveRequest(), and SwitchToState().

Referenced by DoNotifyOutOfSync().

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

◆ ResetRlfParams()

void ns3::LteUeRrc::ResetRlfParams ( )
private

Reset radio link failure parameters.

RLF timers and counters should be rest upon:

  • If the UE received N311 in Sync indications from the UE PHY.
  • If the UE receives RRCConnectionReconfiguration including the mobilityControlInfo (TS 36.331 sec 5.3.5.4)

Inside this method the UE RRC also instructs the UE PHY to reset the RLF parameters so, it can start RLF detection again.

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

References ns3::EventId::Cancel(), m_cphySapProvider, m_imsi, m_noOfSyncIndications, m_radioLinkFailureDetected, and NS_LOG_FUNCTION.

Referenced by DoNotifyInSync(), DoRecvRrcConnectionReconfiguration(), and LeaveConnectedMode().

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

◆ SaveUeMeasurements()

void ns3::LteUeRrc::SaveUeMeasurements ( uint16_t  cellId,
double  rsrp,
double  rsrq,
bool  useLayer3Filtering,
uint8_t  componentCarrierId 
)
private

Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functions.

Parameters
cellIdthe cell ID of the measured cell
rsrpmeasured RSRP value to be saved (in dBm)
rsrqmeasured RSRQ value to be saved (in dB)
useLayer3Filtering
componentCarrierId
Todo:
Remove the useLayer3Filtering argument

Implements Section 5.5.3.2 "Layer 3 filtering" of 3GPP TS 36.331. Layer-3 filtering is applied to the given measurement results before saved to m_storedMeasValues. The filtering is however disabled when the UE is in IDLE mode, i.e., saving unfiltered values.

Layer-3 filtering is influenced by a filter coefficient, which determines the strength of the filtering. This coefficient is provided by the active quantity configuration in m_varMeasConfig, which is configured by the LteUeRrc::ApplyMeasConfig. Details on how the coefficient works and how to modify it can be found in LTE module's Design Documentation.

See also
LteUeRrc::m_storedMeasValues

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

References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, ns3::LteUeRrc::MeasValues::carrierFreq, m_cphySapProvider, m_imsi, m_state, m_storedMeasValues, m_varMeasConfig, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUeRrc::MeasValues::rsrp, ns3::LteUeRrc::MeasValues::rsrq, and ToString().

Referenced by DoReportUeMeasurements().

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

◆ SendMeasurementReport()

void ns3::LteUeRrc::SendMeasurementReport ( uint8_t  measId)
private

Produce a proper measurement report from the given measurement identity's reporting entry in m_varMeasReportList and then submit it to the serving eNodeB.

Parameters
measIdthe measurement identity which report is to be submitted.

Implements Section 5.5.5 "Measurement reporting" of 3GPP TS 36.331. Producing a measurement report involves several tasks such as:

  • including the measurement results of the serving cell into the report;
  • selecting some neighbour cells which triggered the reporting (i.e., those in cellsTriggeredList) to be included in the report;
  • sorting the order of neighbour cells in the report by their RSRP or RSRQ measurement results (the highest comes first); and
  • ensuring the number of neighbour cells in the report is under the maxReportCells limit defined by the measurement identity's reporting configuration.

The RSRP and RSRQ measurement results included in the report are expressed in 3GPP-specified range format. They are converted from dBm and dB units using EutranMeasurementMapping::Dbm2RsrpRange and EutranMeasurementMapping::Db2RsrqRange functions.

Measurement report is submitted to the serving eNodeB through the RRC protocol. The LteUeRrcSapUser::SendMeasurementReport method of the UE RRC SAP facilitates this submission.

After the submission, the function will repeat itself after a certain interval. The interval length may vary from 120 ms to 60 minutes and is determined by the report interval parameter specified by the measurement identity's reporting configuration.

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

References ns3::EutranMeasurementMapping::Db2RsrqRange(), ns3::EutranMeasurementMapping::Dbm2RsrpRange(), ns3::LteRrcSap::MeasResultEutra::haveCgiInfo, ns3::LteRrcSap::MeasResultServFreq::haveMeasResultBestNeighCell, ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, ns3::LteRrcSap::MeasResultServFreq::haveMeasResultSCell, ns3::LteRrcSap::MeasResults::haveMeasResultServFreqList, ns3::LteRrcSap::MeasResultEutra::haveRsrpResult, ns3::LteRrcSap::MeasResultEutra::haveRsrqResult, m_cellId, m_cphySapProvider, m_numberOfComponentCarriers, m_rrcSapUser, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteRrcSap::ReportConfigEutra::maxReportCells, ns3::LteRrcSap::MeasResults::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasResults::measResultPCell, ns3::LteRrcSap::MeasurementReport::measResults, ns3::LteRrcSap::MeasResultServFreq::measResultSCell, ns3::LteRrcSap::MeasResults::measResultServFreqList, ns3::MilliSeconds(), ns3::LteRrcSap::ReportConfigEutra::MIN1, ns3::LteRrcSap::ReportConfigEutra::MIN12, ns3::LteRrcSap::ReportConfigEutra::MIN30, ns3::LteRrcSap::ReportConfigEutra::MIN6, ns3::LteRrcSap::ReportConfigEutra::MIN60, ns3::LteRrcSap::ReportConfigEutra::MS1024, ns3::LteRrcSap::ReportConfigEutra::MS10240, ns3::LteRrcSap::ReportConfigEutra::MS120, ns3::LteRrcSap::ReportConfigEutra::MS2048, ns3::LteRrcSap::ReportConfigEutra::MS240, ns3::LteRrcSap::ReportConfigEutra::MS480, ns3::LteRrcSap::ReportConfigEutra::MS5120, ns3::LteRrcSap::ReportConfigEutra::MS640, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, ns3::LteRrcSap::MeasResultEutra::physCellId, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::reportInterval, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::LteRrcSap::MeasResultPCell::rsrpResult, ns3::LteRrcSap::MeasResultEutra::rsrpResult, ns3::LteRrcSap::MeasResultSCell::rsrpResult, ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::LteRrcSap::MeasResultPCell::rsrqResult, ns3::LteRrcSap::MeasResultEutra::rsrqResult, ns3::LteRrcSap::MeasResultSCell::rsrqResult, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::LteUeRrcSapUser::SendMeasurementReport(), ns3::LteRrcSap::MeasResultServFreq::servFreqId, and ns3::LteRrcSap::ReportConfigEutra::triggerQuantity.

Referenced by VarMeasReportListAdd(), and VarMeasReportListErase().

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

◆ SetAsSapUser()

void ns3::LteUeRrc::SetAsSapUser ( LteAsSapUser s)

Set the AS SAP user to interact with the NAS entity.

Parameters
sthe AS SAP user

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

References m_asSapUser.

◆ SetImsi()

void ns3::LteUeRrc::SetImsi ( uint64_t  imsi)
Parameters
imsithe unique UE identifier

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

References m_cmacSapProvider, m_cphySapProvider, m_imsi, m_numberOfComponentCarriers, and NS_LOG_FUNCTION.

◆ SetLteCcmRrcSapProvider()

void ns3::LteUeRrc::SetLteCcmRrcSapProvider ( LteUeCcmRrcSapProvider s)

set the Component Carrier Management SAP this RRC should interact with

Parameters
sthe Component Carrier Management SAP Provider to be used by this RRC

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

References m_ccmRrcSapProvider, and NS_LOG_FUNCTION.

◆ SetLteMacSapProvider()

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 395 of file lte-ue-rrc.cc.

References m_macSapProvider, and NS_LOG_FUNCTION.

◆ SetLteUeCmacSapProvider() [1/2]

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

set the CMAC SAP this RRC should interact with

This function is overloaded to maintain backward compatibility

Parameters
sthe CMAC SAP Provider to be used by this RRC

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

References m_cmacSapProvider, and NS_LOG_FUNCTION.

◆ SetLteUeCmacSapProvider() [2/2]

void ns3::LteUeRrc::SetLteUeCmacSapProvider ( LteUeCmacSapProvider s,
uint8_t  index 
)

set the CMAC SAP this RRC should interact with

This function is overloaded to maintain backward compatibility

Parameters
sthe CMAC SAP Provider to be used by this RRC
indexthe index

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

References m_cmacSapProvider, and NS_LOG_FUNCTION.

◆ SetLteUeCphySapProvider() [1/2]

void ns3::LteUeRrc::SetLteUeCphySapProvider ( LteUeCphySapProvider s)

set the CPHY SAP this RRC should use to interact with the PHY

Parameters
sthe CPHY SAP Provider

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

References m_cphySapProvider, and NS_LOG_FUNCTION.

◆ SetLteUeCphySapProvider() [2/2]

void ns3::LteUeRrc::SetLteUeCphySapProvider ( LteUeCphySapProvider s,
uint8_t  index 
)

set the CPHY SAP this RRC should use to interact with the PHY

Parameters
sthe CPHY SAP Provider
indexthe index

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

References m_cphySapProvider, and NS_LOG_FUNCTION.

◆ SetLteUeRrcSapUser()

void ns3::LteUeRrc::SetLteUeRrcSapUser ( LteUeRrcSapUser s)

set the RRC SAP this RRC should interact with

Parameters
sthe RRC SAP User to be used by this RRC

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

References m_rrcSapUser, and NS_LOG_FUNCTION.

◆ SetUseRlcSm()

void ns3::LteUeRrc::SetUseRlcSm ( bool  val)
Parameters
valtrue if RLC SM is to be used, false if RLC UM/AM are to be used

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

References m_useRlcSm, and NS_LOG_FUNCTION.

◆ StartConnection()

void ns3::LteUeRrc::StartConnection ( )
private

Start connection function.

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

References IDLE_RANDOM_ACCESS, m_cmacSapProvider, m_connectionPending, m_hasReceivedMib, m_hasReceivedSib2, m_imsi, NS_ASSERT, NS_LOG_FUNCTION, and SwitchToState().

Referenced by DoRecvSystemInformation(), and SwitchToState().

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

◆ StorePreviousCellId()

void ns3::LteUeRrc::StorePreviousCellId ( uint16_t  cellId)

Store the previous cell id.

Parameters
cellIdThe cell id of the previous cell the UE was attached to

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

References m_previousCellId, and NS_LOG_FUNCTION.

Referenced by DoRecvRrcConnectionReconfiguration(), and LeaveConnectedMode().

+ Here is the caller graph for this function:

◆ SwitchToState()

◆ SynchronizeToStrongestCell()

void ns3::LteUeRrc::SynchronizeToStrongestCell ( )
private

Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it.

Warning
This function is a part of the initial cell selection procedure, hence must be only executed during IDLE mode.

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

References IDLE_CELL_SEARCH, IDLE_WAIT_MIB_SIB1, m_acceptableCell, m_cphySapProvider, m_dlEarfcn, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, and SwitchToState().

Referenced by DoReportUeMeasurements(), and EvaluateCellForSelection().

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

◆ ToString()

◆ VarMeasReportListAdd()

void ns3::LteUeRrc::VarMeasReportListAdd ( uint8_t  measId,
ConcernedCells_t  enteringCells 
)
private

Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB.

Parameters
measIdthe measurement identity which the new reporting entry will be based upon
enteringCellsthe cells which are responsible for triggering the reporting (i.e., successfully fulfilling the entering condition of the measurement identity) and will be included in the measurement report.
Note
If an existing reporting entry with the same measurement identity has already existed in m_varMeasReportList, the function will update it by adding the entering cells into the existing reporting entry.
When time-to-trigger is enabled for this measurement identity, the function will also remove the related trigger from the m_enteringTriggerQueue.

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

References CancelEnteringTrigger(), m_enteringTriggerQueue, m_varMeasReportList, ns3::LteUeRrc::VarMeasReport::measId, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), SendMeasurementReport(), and ns3::UE_MEASUREMENT_REPORT_DELAY.

Referenced by MeasurementReportTriggering().

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

◆ VarMeasReportListClear()

void ns3::LteUeRrc::VarMeasReportListClear ( uint8_t  measId)
private

Remove the reporting entry of the given measurement identity from m_varMeasReportList.

Parameters
measIdthe measurement identity to be removed from m_varMeasReportList, must already exists there, otherwise an error would be raised

Any events or triggers related with this measurement identity will be canceled as well.

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

References CancelEnteringTrigger(), CancelLeavingTrigger(), m_varMeasReportList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by ApplyMeasConfig(), DoNotifyRandomAccessSuccessful(), and LeaveConnectedMode().

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

◆ VarMeasReportListErase()

void ns3::LteUeRrc::VarMeasReportListErase ( uint8_t  measId,
ConcernedCells_t  leavingCells,
bool  reportOnLeave 
)
private

Remove some cells from an existing reporting entry in m_varMeasReportList.

Parameters
measIdthe measurement identity to be removed from m_varMeasReportList, must already exists there, otherwise an error would be raised
leavingCellsthe cells which are about to be removed
reportOnLeavewhen true, will make the function send one last measurement report to eNodeB before removing it
Note
If a given cell is not found in the reporting entry, the function will quietly continue.
If the removal has removed all the cells in the reporting entry, the function will remove the reporting entry as well.
When time-to-trigger is enabled for this measurement identity, the function will also remove the related trigger from the m_leavingTriggerQueue.

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

References CancelLeavingTrigger(), m_leavingTriggerQueue, m_varMeasReportList, NS_ASSERT, NS_LOG_FUNCTION, and SendMeasurementReport().

Referenced by MeasurementReportTriggering().

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

Friends And Related Function Documentation

◆ LtePdcpSpecificLtePdcpSapUser< LteUeRrc >

friend class LtePdcpSpecificLtePdcpSapUser< LteUeRrc >
friend

allow LtePdcpSpecificLtePdcpSapUser<LteUeRrc> class friend access

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

Referenced by LteUeRrc().

◆ MemberLteAsSapProvider< LteUeRrc >

friend class MemberLteAsSapProvider< LteUeRrc >
friend

allow MemberLteAsSapProvider<LteUeRrc> class friend access

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

Referenced by LteUeRrc().

◆ MemberLteUeCcmRrcSapUser< LteUeRrc >

friend class MemberLteUeCcmRrcSapUser< LteUeRrc >
friend

allow MemberLteUeCcmRrcSapUser<LteUeRrc> class friend access

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

Referenced by LteUeRrc().

◆ MemberLteUeCphySapUser< LteUeRrc >

friend class MemberLteUeCphySapUser< LteUeRrc >
friend

allow MemberLteUeCphySapUser<LteUeRrc> class friend access

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

◆ MemberLteUeRrcSapProvider< LteUeRrc >

friend class MemberLteUeRrcSapProvider< LteUeRrc >
friend

allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access

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

Referenced by LteUeRrc().

◆ UeMemberLteUeCmacSapUser

friend class UeMemberLteUeCmacSapUser
friend

allow UeMemberLteUeCmacSapUser class friend access

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

Referenced by LteUeRrc(), and InitializeSap().

◆ UeRrcMemberLteEnbCmacSapUser

friend class UeRrcMemberLteEnbCmacSapUser
friend

allow UeRrcMemberLteEnbCmacSapUser class friend access

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

Member Data Documentation

◆ m_acceptableCell

std::set<uint16_t> ns3::LteUeRrc::m_acceptableCell
private

List of cell ID of acceptable cells for cell selection that have been detected.

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

Referenced by EvaluateCellForSelection(), and SynchronizeToStrongestCell().

◆ m_asSapProvider

LteAsSapProvider* ns3::LteUeRrc::m_asSapProvider
private

AS SAP provider.

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

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

◆ m_asSapUser

◆ m_bid2DrbidMap

std::map<uint8_t, uint8_t> ns3::LteUeRrc::m_bid2DrbidMap
private

bid to DR bid map

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

Referenced by ApplyRadioResourceConfigDedicated(), Bid2Drbid(), and LeaveConnectedMode().

◆ m_ccmRrcSapProvider

LteUeCcmRrcSapProvider* ns3::LteUeRrc::m_ccmRrcSapProvider
private

Interface to the LteUeComponentCarrierManage instance.

CCM RRC SAP provider

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

Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), LeaveConnectedMode(), and SetLteCcmRrcSapProvider().

◆ m_ccmRrcSapUser

LteUeCcmRrcSapUser* ns3::LteUeRrc::m_ccmRrcSapUser
private

CCM RRC SAP user.

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

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

◆ m_cellId

◆ m_cmacSapProvider

◆ m_cmacSapUser

std::vector<LteUeCmacSapUser*> ns3::LteUeRrc::m_cmacSapUser
private

UE CMac SAP user.

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

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

◆ m_connectionEstablishedTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_connectionEstablishedTrace
private

The ConnectionEstablished trace source.

Fired upon successful RRC connection establishment. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoRecvRrcConnectionSetup(), and GetTypeId().

◆ m_connectionPending

bool ns3::LteUeRrc::m_connectionPending
private

True if a connection request by upper layers is pending.

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

Referenced by DoConnect(), DoRecvSystemInformation(), EvaluateCellForSelection(), StartConnection(), and SwitchToState().

◆ m_connectionReconfigurationTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_connectionReconfigurationTrace
private

The ConnectionReconfiguration trace source.

Fired upon RRC connection reconfiguration. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().

◆ m_connectionTimeout

EventId ns3::LteUeRrc::m_connectionTimeout
private

Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes longer than T300.

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

Referenced by DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReject(), and DoRecvRrcConnectionSetup().

◆ m_connectionTimeoutTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint8_t> ns3::LteUeRrc::m_connectionTimeoutTrace
private

The ConnectionTimeout trace source.

Fired upon timeout RRC connection establishment because of T300. Exporting IMSI, cell ID, and RNTI.

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

Referenced by ConnectionTimeout(), and GetTypeId().

◆ m_connEstFailCount

uint8_t ns3::LteUeRrc::m_connEstFailCount
private

the counter to count T300 timer expiration

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

Referenced by ConnectionTimeout(), and DoRecvRrcConnectionSetup().

◆ m_connEstFailCountLimit

uint8_t ns3::LteUeRrc::m_connEstFailCountLimit
private

the counter value for T300 timer expiration received from the eNB

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

Referenced by ConnectionTimeout(), and DoRecvSystemInformation().

◆ m_cphySapProvider

◆ m_cphySapUser

std::vector<LteUeCphySapUser*> ns3::LteUeRrc::m_cphySapUser
private

UE CPhy SAP user.

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

Referenced by LteUeRrc(), DoDispose(), GetLteUeCphySapUser(), and InitializeSap().

◆ m_csgWhiteList

uint32_t ns3::LteUeRrc::m_csgWhiteList
private

List of CSG ID which this UE entity has access to.

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

Referenced by DoSetCsgWhiteList(), and EvaluateCellForSelection().

◆ m_dlBandwidth

uint16_t ns3::LteUeRrc::m_dlBandwidth
private

Downlink bandwidth in RBs.

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

Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), and GetDlBandwidth().

◆ m_dlEarfcn

uint32_t ns3::LteUeRrc::m_dlEarfcn
private

◆ m_drbCreatedTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint8_t> ns3::LteUeRrc::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 920 of file lte-ue-rrc.h.

Referenced by ApplyRadioResourceConfigDedicated(), and GetTypeId().

◆ m_drbMap

std::map<uint8_t, Ptr<LteDataRadioBearerInfo> > ns3::LteUeRrc::m_drbMap
private

The DataRadioBearerMap attribute.

List of UE RadioBearerInfo for Data Radio Bearers by LCID.

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

Referenced by ApplyRadioResourceConfigDedicated(), DoDispose(), DoRecvRrcConnectionReconfiguration(), DoSendData(), GetTypeId(), and LeaveConnectedMode().

◆ m_drbPdcpSapUser

LtePdcpSapUser* ns3::LteUeRrc::m_drbPdcpSapUser
private

DRB PDCP SAP user.

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

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

◆ m_enteringTriggerQueue

std::map<uint8_t, std::list<PendingTrigger_t> > ns3::LteUeRrc::m_enteringTriggerQueue
private

List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger.

The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and insert a reporting entry to m_varMeasReportList.

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

Referenced by ApplyMeasConfig(), CancelEnteringTrigger(), MeasurementReportTriggering(), and VarMeasReportListAdd().

◆ m_handoverEndErrorTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_handoverEndErrorTrace
private

The HandoverEndError trace source.

Fired upon failure of a handover procedure. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().

◆ m_handoverEndOkTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_handoverEndOkTrace
private

The HandoverEndOk trace source.

Fired upon successful termination of a handover procedure. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

◆ m_handoverStartTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> ns3::LteUeRrc::m_handoverStartTrace
private

The HandoverStart trace source.

Fired upon start of a handover procedure. Exporting IMSI, source cell ID, RNTI, and target cell ID.

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

Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().

◆ m_hasReceivedMib

bool ns3::LteUeRrc::m_hasReceivedMib
private

True if MIB was received for the current cell.

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

Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), LeaveConnectedMode(), and StartConnection().

◆ m_hasReceivedSib1

bool ns3::LteUeRrc::m_hasReceivedSib1
private

True if SIB1 was received for the current cell.

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

Referenced by DoRecvSystemInformationBlockType1(), EvaluateCellForSelection(), and LeaveConnectedMode().

◆ m_hasReceivedSib2

bool ns3::LteUeRrc::m_hasReceivedSib2
private

True if SIB2 was received for the current cell.

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

Referenced by ConnectionTimeout(), DoRecvRrcConnectionReject(), DoRecvSystemInformation(), LeaveConnectedMode(), StartConnection(), and SwitchToState().

◆ m_imsi

◆ m_initialCellSelectionEndErrorTrace

TracedCallback<uint64_t, uint16_t> ns3::LteUeRrc::m_initialCellSelectionEndErrorTrace
private

The InitialCellSelectionEndError trace source.

Fired upon failed initial cell selection procedure. Exporting IMSI and the cell ID under evaluation.

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

Referenced by EvaluateCellForSelection(), and GetTypeId().

◆ m_initialCellSelectionEndOkTrace

TracedCallback<uint64_t, uint16_t> ns3::LteUeRrc::m_initialCellSelectionEndOkTrace
private

The InitialCellSelectionEndOk trace source.

Fired upon successful initial cell selection procedure. Exporting IMSI and the selected cell ID.

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

Referenced by EvaluateCellForSelection(), and GetTypeId().

◆ m_lastRrcTransactionIdentifier

uint8_t ns3::LteUeRrc::m_lastRrcTransactionIdentifier
private

last RRC transaction identifier

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

Referenced by DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), and DoRecvRrcConnectionRelease().

◆ m_lastSib1

LteRrcSap::SystemInformationBlockType1 ns3::LteUeRrc::m_lastSib1
private

Stored content of the last SIB1 received.

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

Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().

◆ m_leaveConnectedMode

bool ns3::LteUeRrc::m_leaveConnectedMode
private

true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e.

T310 has expired

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

Referenced by DoNotifyRandomAccessFailed(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), LeaveConnectedMode(), and SwitchToState().

◆ m_leavingTriggerQueue

std::map<uint8_t, std::list<PendingTrigger_t> > ns3::LteUeRrc::m_leavingTriggerQueue
private

List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger.

The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and remove the associated reporting entry from m_varMeasReportList.

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

Referenced by ApplyMeasConfig(), CancelLeavingTrigger(), MeasurementReportTriggering(), and VarMeasReportListErase().

◆ m_macSapProvider

LteMacSapProvider* ns3::LteUeRrc::m_macSapProvider
private

MAC SAP provider.

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

Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), and SetLteMacSapProvider().

◆ m_mibReceivedTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> ns3::LteUeRrc::m_mibReceivedTrace
private

The MibReceived trace source.

Fired upon reception of Master Information Block. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.

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

Referenced by DoRecvMasterInformationBlock(), and GetTypeId().

◆ m_n310

uint8_t ns3::LteUeRrc::m_n310
private

The 'N310' attribute.

This specifies the maximum consecutive out-of-sync indications from lower layers.

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

Referenced by DoNotifyOutOfSync(), and GetTypeId().

◆ m_n311

uint8_t ns3::LteUeRrc::m_n311
private

The 'N311' attribute.

This specifies the minimum consecutive in-sync indications from lower layers.

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

Referenced by DoNotifyInSync(), and GetTypeId().

◆ m_noOfSyncIndications

uint8_t ns3::LteUeRrc::m_noOfSyncIndications
private

number of in-sync or out-of-sync indications coming from PHY layer

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

Referenced by DoNotifyInSync(), DoNotifyOutOfSync(), DoRecvRrcConnectionSetup(), DoResetSyncIndicationCounter(), and ResetRlfParams().

◆ m_numberOfComponentCarriers

uint16_t ns3::LteUeRrc::m_numberOfComponentCarriers

◆ m_pdschConfigDedicated

LteRrcSap::PdschConfigDedicated ns3::LteUeRrc::m_pdschConfigDedicated
private

the PDSCH config dedicated

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

Referenced by ApplyRadioResourceConfigDedicated().

◆ m_phySyncDetectionTrace

TracedCallback<uint64_t, uint16_t, uint16_t, std::string, uint8_t> ns3::LteUeRrc::m_phySyncDetectionTrace
private

The 'PhySyncDetection' trace source.

Fired when UE RRC receives in-sync or out-of-sync indications from UE PHY

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

Referenced by DoNotifyInSync(), DoNotifyOutOfSync(), and GetTypeId().

◆ m_previousCellId

uint16_t ns3::LteUeRrc::m_previousCellId
private

the cell id of the previous cell UE was attached to

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

Referenced by GetPreviousCellId(), and StorePreviousCellId().

◆ m_radioLinkFailureDetected

EventId ns3::LteUeRrc::m_radioLinkFailureDetected
private

Time limit (given by m_t310) before the radio link is considered to have failed.

It is set upon detecting physical layer problems i.e. upon receiving N310 consecutive out-of-sync indications from lower layers. Calling LteUeRrc::RadioLinkFailureDetected() when it expires. It is cancelled upon receiving N311 consecutive in-sync indications. Upon expiry, the UE transitions to RRC_IDLE and no RRC connection re-establishment is initiated.

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

Referenced by DoNotifyOutOfSync(), DoRecvRrcConnectionReconfiguration(), and ResetRlfParams().

◆ m_radioLinkFailureTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_radioLinkFailureTrace
private

The 'RadioLinkFailure' trace source.

Fired when T310 timer expires.

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

Referenced by GetTypeId(), and RadioLinkFailureDetected().

◆ m_randomAccessErrorTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_randomAccessErrorTrace
private

The RandomAccessError trace source.

Fired upon failure of the random access procedure. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().

◆ m_randomAccessSuccessfulTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_randomAccessSuccessfulTrace
private

The RandomAccessSuccessful trace source.

Fired upon successful completion of the random access procedure. Exporting IMSI, cell ID, and RNTI.

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

◆ m_rnti

◆ m_rrcSapProvider

LteUeRrcSapProvider* ns3::LteUeRrc::m_rrcSapProvider
private

RRC SAP provider.

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

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

◆ m_rrcSapUser

◆ m_sCarrierConfiguredTrace

TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod> > ns3::LteUeRrc::m_sCarrierConfiguredTrace
private

The SCarrierConfigured trace source.

Fired after the configuration of secondary carriers received through RRC Connection Reconfiguration message.

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

Referenced by ApplyRadioResourceConfigDedicatedSecondaryCarrier(), and GetTypeId().

◆ m_sCellToAddModList

std::list<LteRrcSap::SCellToAddMod> ns3::LteUeRrc::m_sCellToAddModList
private

Secondary carriers.

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

Referenced by ApplyRadioResourceConfigDedicatedSecondaryCarrier().

◆ m_sib1ReceivedTrace

TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> ns3::LteUeRrc::m_sib1ReceivedTrace
private

The Sib1Received trace source.

Fired upon reception of System Information Block Type 1. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.

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

Referenced by DoRecvSystemInformationBlockType1(), and GetTypeId().

◆ m_sib2ReceivedTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_sib2ReceivedTrace
private

The Sib2Received trace source.

Fired upon reception of System Information Block Type 2. Exporting IMSI, the serving cell ID, RNTI.

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

Referenced by DoRecvSystemInformation(), and GetTypeId().

◆ m_srb0

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

The Srb0 attribute.

SignalingRadioBearerInfo for SRB0.

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

Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), DoSetTemporaryCellRnti(), GetTypeId(), and LeaveConnectedMode().

◆ m_srb1

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

The Srb1 attribute.

SignalingRadioBearerInfo for SRB1.

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

Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoRecvRrcConnectionReconfiguration(), GetTypeId(), and LeaveConnectedMode().

◆ m_srb1CreatedTrace

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteUeRrc::m_srb1CreatedTrace
private

The Srb1Created trace source.

Fired when SRB1 is created, i.e. the RLC and PDCP entities are created for logical channel = 1. Exporting IMSI, cell ID, and RNTI

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

Referenced by ApplyRadioResourceConfigDedicated(), and GetTypeId().

◆ m_srb1Old

Ptr<LteSignalingRadioBearerInfo> ns3::LteUeRrc::m_srb1Old
private

SRB1 configuration before RRC connection reconfiguration.

To be deleted soon by DisposeOldSrb1().

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

Referenced by DisposeOldSrb1(), and DoRecvRrcConnectionReconfiguration().

◆ m_state

◆ m_stateTransitionTrace

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

The StateTransition trace source.

Fired upon every UE RRC state transition. Exporting IMSI, the serving cell ID, RNTI, old state, and new state.

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

Referenced by GetTypeId(), and SwitchToState().

◆ m_storedMeasValues

std::map<uint16_t, MeasValues> ns3::LteUeRrc::m_storedMeasValues
private

Internal storage of the latest measurement results from all detected detected cells, indexed by the cell ID where the measurement was taken from.

Each measurement result comprises of RSRP (in dBm) and RSRQ (in dB).

In IDLE mode, the measurement results are used by the initial cell selection procedure. While in CONNECTED mode, layer-3 filtering is applied to the measurement results and they are used by UE measurements function (LteUeRrc::MeasurementReportTriggering and LteUeRrc::SendMeasurementReport).

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

Referenced by EvaluateCellForSelection(), LeaveConnectedMode(), MeasurementReportTriggering(), SaveUeMeasurements(), SendMeasurementReport(), and SynchronizeToStrongestCell().

◆ m_storedMeasValuesPerCarrier

std::map<uint16_t, std::map<uint8_t, MeasValues> > ns3::LteUeRrc::m_storedMeasValuesPerCarrier
private

Stored measure values per carrier.

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

◆ m_storedScellMeasValues

std::map<uint16_t, MeasValues> ns3::LteUeRrc::m_storedScellMeasValues
private

Internal storage of the latest measurement results from all detected detected Secondary carrier component, indexed by the carrier component ID where the measurement was taken from.

Each measurement result comprises of RSRP (in dBm) and RSRQ (in dB).

In IDLE mode, the measurement results are used by the initial cell selection procedure. While in CONNECTED mode, layer-3 filtering is applied to the measurement results and they are used by UE measurements function:

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

◆ m_t300

Time ns3::LteUeRrc::m_t300
private

The T300 attribute.

Timer for RRC connection establishment procedure (i.e., the procedure is deemed as failed if it takes longer than this). See Section 7.3 of 3GPP TS 36.331.

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

◆ m_t310

Time ns3::LteUeRrc::m_t310
private

The 'T310' attribute.

After detecting N310 out-of-sync indications, if number of in-sync indications detected is less than N311 before this time, then the radio link is considered to have failed and the UE transitions to state CONNECTED_PHY_PROMLEM and eventually IDLE_START and UE context at eNodeB is destroyed. RRC connection re-establishment is not initiated after this time. See 3GPP TS 36.331 7.3.

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

Referenced by DoNotifyOutOfSync(), and GetTypeId().

◆ m_ulBandwidth

uint16_t ns3::LteUeRrc::m_ulBandwidth
private

Uplink bandwidth in RBs.

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

Referenced by DoRecvSystemInformation(), and GetUlBandwidth().

◆ m_ulEarfcn

uint32_t ns3::LteUeRrc::m_ulEarfcn
private

Uplink carrier frequency.

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

Referenced by DoRecvSystemInformation(), and GetUlEarfcn().

◆ m_useRlcSm

bool ns3::LteUeRrc::m_useRlcSm
private

True if RLC SM is to be used, false if RLC UM/AM are to be used.

Can be modified using SetUseRlcSm().

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

Referenced by ApplyRadioResourceConfigDedicated(), and SetUseRlcSm().

◆ m_varMeasConfig

VarMeasConfig ns3::LteUeRrc::m_varMeasConfig
private

Includes the accumulated configuration of the measurements to be performed by the UE.

Based on 3GPP TS 36.331 section 7.1.

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

Referenced by ApplyMeasConfig(), DoNotifyRandomAccessSuccessful(), DoReportUeMeasurements(), LeaveConnectedMode(), MeasurementReportTriggering(), SaveUeMeasurements(), and SendMeasurementReport().

◆ m_varMeasReportList

std::map<uint8_t, VarMeasReport> ns3::LteUeRrc::m_varMeasReportList
private

The list of active reporting entries, indexed by the measurement identity which triggered the reporting.

Includes information about measurements for which the triggering conditions have been met.

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

Referenced by ApplyMeasConfig(), MeasurementReportTriggering(), SendMeasurementReport(), VarMeasReportListAdd(), VarMeasReportListClear(), and VarMeasReportListErase().


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