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 MIBRecieved, 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...
 
virtual ~LteUeRrc ()
 Destructor. More...
 
LteAsSapProviderGetAsSapProvider ()
 
uint16_t GetCellId () const
 
uint8_t GetDlBandwidth () const
 
uint32_t GetDlEarfcn () const
 
uint64_t GetImsi (void) 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 (void)
 Initiaize 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...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this 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...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) 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 (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) 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 erros. 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 (void)
 Get the type ID. More...
 
static const std::string ToString (LteUeRrc::State s)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 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...
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn)
 Force camped on ENB function. More...
 
virtual void DoInitialize (void)
 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 appropiate 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. T310 has expired 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 condig 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 (void)
 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 (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Config Paths

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

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

Attributes

  • DataRadioBearerMap: List of UE RadioBearerInfo for Data Radio Bearers by LCID.
  • Srb0: SignalingRadioBearerInfo for SRB0
  • Srb1: SignalingRadioBearerInfo for SRB1
  • CellId: Serving cell identifier
  • C-RNTI: Cell Radio Network Temporary Identifier
  • T300: Timer for the RRC Connection Establishment procedure (i.e., the procedure is deemed as failed if it takes longer than this). Standard values: 100ms, 200ms, 300ms, 400ms, 600ms, 1000ms, 1500ms, 2000ms
    • Set with class: ns3::TimeValue
    • Underlying type: Time +1e+08ns:+2e+09ns
    • Initial value: +1e+08ns
    • Flags: construct write read
  • T310: Timer for detecting the Radio link failure (i.e., the radio link is deemed as failed if this timer expires). Standard values: 0ms 50ms, 100ms, 200ms, 500ms, 1000ms, 2000ms
    • Set with class: ns3::TimeValue
    • Underlying type: Time +0ns:+2e+09ns
    • Initial value: +1e+09ns
    • Flags: construct write read
  • N310: This specifies the maximum number of out-of-sync indications. Standard values: 1, 2, 3, 4, 6, 8, 10, 20
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:20
    • Initial value: 6
    • Flags: construct write read
  • N311: This specifies the maximum number of in-sync indications. Standard values: 1, 2, 3, 4, 5, 6, 8, 10
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:10
    • Initial value: 2
    • Flags: construct write read

TraceSources

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

Definition at line 81 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 345 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 1001 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 414 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 355 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 MIBRecieved, Sib1Received and HandoverStart events.

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

Definition at line 367 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 402 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 389 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 379 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 105 of file lte-ue-rrc.h.

Constructor & Destructor Documentation

◆ LteUeRrc()

◆ ~LteUeRrc()

ns3::LteUeRrc::~LteUeRrc ( )
virtual

Destructor.

Definition at line 159 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 1598 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 1393 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 3195 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 2649 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 2673 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 2711 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 2735 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 3157 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 3188 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()

◆ DoConnect()

void ns3::LteUeRrc::DoConnect ( void  )
private

◆ DoDisconnect()

◆ DoDispose()

void ns3::LteUeRrc::DoDispose ( void  )
privatevirtual

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 165 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 3279 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 3292 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 712 of file lte-ue-rrc.cc.

References CONNECTED_HANDOVER, IDLE_CAMPED_NORMALLY, IDLE_RANDOM_ACCESS, m_asSapUser, m_cellId, m_handoverEndErrorTrace, m_imsi, m_randomAccessErrorTrace, m_rnti, m_state, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_FATAL_ERROR, NS_LOG_FUNCTION, 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 646 of file lte-ue-rrc.cc.

References m_asSapUser, NS_LOG_FUNCTION, ns3::LtePdcpSapUser::ReceivePdcpSduParameters::pdcpSdu, 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 850 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 1054 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 1149 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 1173 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

Part of the RRC protocol.

Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface.

Parameters
msgLteRrcSap::RrcConnectionRelease
Todo:
Currently not implemented, see Section 5.3.8 of 3GPP TS 36.331.

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

References m_rnti, and NS_LOG_FUNCTION.

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

References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteUeCmacSapProvider::RachConfig::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::LteUeCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteUeCmacSapProvider::RachConfig::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteUeCmacSapProvider::RachConfig::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, 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()

◆ 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 3312 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

◆ DoSetCsgWhiteList()

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

Set CSG white list function.

Parameters
csgIdCSG ID

Definition at line 745 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 1216 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 654 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 752 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 1269 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 420 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 460 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 489 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 496 of file lte-ue-rrc.cc.

References m_dlEarfcn.

◆ GetImsi()

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

Definition at line 447 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 407 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 365 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 372 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 337 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 344 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 386 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 516 of file lte-ue-rrc.cc.

References m_previousCellId, and NS_LOG_FUNCTION.

◆ GetRnti()

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

Definition at line 453 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 ( void  ) const
Returns
the current state

Definition at line 509 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 482 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 502 of file lte-ue-rrc.cc.

References m_ulEarfcn, and NS_LOG_FUNCTION.

◆ InitializeSap()

void ns3::LteUeRrc::InitializeSap ( void  )

◆ 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 467 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 appropiate 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 3114 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 1876 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 3269 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 3321 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 1820 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 2925 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 414 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 426 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 400 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 393 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 351 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 358 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 323 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 330 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 379 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 523 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 3103 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 440 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 1225 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 2773 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 2906 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 2845 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 87 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 87 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 87 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 87 of file lte-ue-rrc.h.

◆ MemberLteUeRrcSapProvider< LteUeRrc >

friend class MemberLteUeRrcSapProvider< LteUeRrc >
friend

allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access

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

Referenced by LteUeRrc().

◆ UeMemberLteUeCmacSapUser

friend class UeMemberLteUeCmacSapUser
friend

allow UeMemberLteUeCmacSapUser class friend access

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

◆ UeRrcMemberLteEnbCmacSapUser

friend class UeRrcMemberLteEnbCmacSapUser
friend

allow UeRrcMemberLteEnbCmacSapUser class friend access

Definition at line 87 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 943 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 768 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 754 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 774 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 775 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 759 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 874 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 931 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 884 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 1230 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 879 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 1279 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 1277 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 756 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 946 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 820 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 917 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 808 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 766 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 1125 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 899 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 894 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 889 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 933 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 935 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 937 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 858 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 853 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 816 of file lte-ue-rrc.h.

Referenced by DoNotifyRandomAccessSuccessful(), and DoRecvRrcConnectionReconfiguration().

◆ m_lastSib1

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

Stored content of the last SIB1 received.

Definition at line 940 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 1273 of file lte-ue-rrc.h.

Referenced by 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 1137 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 765 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 831 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 1252 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 1258 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 1271 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 condig dedicated

Definition at line 818 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 923 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 1275 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 1269 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 928 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 869 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 864 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 763 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 905 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 825 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 837 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 842 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 794 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 798 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 911 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 803 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 848 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 1079 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 1084 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 1102 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 1224 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 1246 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 821 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 824 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 814 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 974 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 996 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: