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(* 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...
 
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
 
uint16_t GetDlEarfcn () const
 
uint64_t GetImsi (void) const
 
LteUeCmacSapUserGetLteUeCmacSapUser ()
 
LteUeCphySapUserGetLteUeCphySapUser ()
 
LteUeRrcSapProviderGetLteUeRrcSapProvider ()
 
uint16_t GetRnti () const
 
State GetState () const
 
uint8_t GetUlBandwidth () const
 
uint16_t GetUlEarfcn () const
 
void SetAsSapUser (LteAsSapUser *s)
 Set the AS SAP user to interact with the NAS entity. More...
 
void SetImsi (uint64_t imsi)
 
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 SetLteUeCphySapProvider (LteUeCphySapProvider *s)
 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)
 
- 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
 Implement the GetInstanceTypeId method defined in ObjectBase. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. 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 ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. 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)
 
uint8_t Bid2Drbid (uint8_t bid)
 
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 ()
 
void DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::CompleteSetup interface. More...
 
void DoConnect ()
 
void DoDisconnect ()
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
void DoForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn)
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
void DoNotifyRandomAccessFailed ()
 
void DoNotifyRandomAccessSuccessful ()
 
void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params)
 
void DoRecvMasterInformationBlock (uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
 
void DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface. More...
 
void DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface. More...
 
void DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface. More...
 
void DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface. More...
 
void DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface. More...
 
void DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface. More...
 
void DoRecvSystemInformation (LteRrcSap::SystemInformation msg)
 Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface. More...
 
void DoRecvSystemInformationBlockType1 (uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
 
void DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params)
 
void DoSendData (Ptr< Packet > packet, uint8_t bid)
 
void DoSetCsgWhiteList (uint32_t csgId)
 
void DoSetTemporaryCellRnti (uint16_t rnti)
 
void DoStartCellSelection (uint16_t dlEarfcn)
 
void EvaluateCellForSelection ()
 Performs cell selection evaluation to the current serving cell. More...
 
void LeaveConnectedMode ()
 
void MeasurementReportTriggering (uint8_t measId)
 Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result. More...
 
void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering)
 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 ()
 
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
 
LteAsSapUserm_asSapUser
 
std::map< uint8_t, uint8_t > m_bid2DrbidMap
 
uint16_t m_cellId
 The CellId attribute. More...
 
LteUeCmacSapProviderm_cmacSapProvider
 
LteUeCmacSapUserm_cmacSapUser
 
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 > m_connectionTimeoutTrace
 The ConnectionTimeout trace source. More...
 
LteUeCphySapProviderm_cphySapProvider
 
LteUeCphySapUserm_cphySapUser
 
uint32_t m_csgWhiteList
 List of CSG ID which this UE entity has access to. More...
 
uint8_t m_dlBandwidth
 Downlink bandwidth in RBs. More...
 
uint16_t m_dlEarfcn
 Downlink carrier frequency. More...
 
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
 The DataRadioBearerMap attribute. More...
 
LtePdcpSapUserm_drbPdcpSapUser
 
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
 
LteRrcSap::SystemInformationBlockType1 m_lastSib1
 Stored content of the last SIB1 received. 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
 
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
 The MibReceived trace source. More...
 
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
 
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
 
LteUeRrcSapUserm_rrcSapUser
 
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...
 
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...
 
Time m_t300
 The T300 attribute. More...
 
uint8_t m_ulBandwidth
 Uplink bandwidth in RBs. More...
 
uint16_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 >
 
class MemberLteAsSapProvider< LteUeRrc >
 
class MemberLteUeCphySapUser< LteUeRrc >
 
class MemberLteUeRrcSapProvider< LteUeRrc >
 
class UeMemberLteUeCmacSapUser
 
class UeRrcMemberLteEnbCmacSapUser
 

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

TraceSources

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

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

Member Typedef Documentation

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

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

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

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

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

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

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

Member Enumeration Documentation

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

Constructor & Destructor Documentation

ns3::LteUeRrc::LteUeRrc ( )

create an RRC instance for use within an ue

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

References m_asSapProvider, m_cmacSapUser, m_cphySapUser, m_drbPdcpSapUser, m_rrcSapProvider, NS_LOG_FUNCTION, and UeMemberLteUeCmacSapUser.

ns3::LteUeRrc::~LteUeRrc ( )
virtual

Destructor.

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

References NS_LOG_FUNCTION.

Member Function Documentation

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 1307 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_enteringTriggerQueue, m_leavingTriggerQueue, 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:

void ns3::LteUeRrc::ApplyRadioResourceConfigDedicated ( LteRrcSap::RadioResourceConfigDedicated  rrcd)
private
Todo:
currently not implemented. Would need to modify drbInfo, and then propagate changes to the MAC

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

References ns3::LteUeCmacSapProvider::AddLc(), ns3::LteRrcSap::RlcConfig::AM, ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, 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::LteRlcUm::GetTypeId(), ns3::LteRlcAm::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_cmacSapProvider, m_cphySapProvider, m_drbMap, m_drbPdcpSapUser, m_imsi, m_macSapProvider, m_pdschConfigDedicated, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_state, m_useRlcSm, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, ns3::LteUeCmacSapProvider::LogicalChannelConfig::prioritizedBitRateKbps, ns3::LteUeCmacSapProvider::LogicalChannelConfig::priority, ns3::LteUeCmacSapProvider::RemoveLc(), ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LteUeCphySapProvider::SetPa(), ns3::LteRlc::SetRnti(), ns3::LteUeCphySapProvider::SetSrsConfigurationIndex(), ns3::LteUeCphySapProvider::SetTransmissionMode(), ns3::ObjectFactory::SetTypeId(), ns3::LteUeRrcSapUser::Setup(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteUeRrcSapUser::SetupParameters::srb0SapProvider, ns3::LteRrcSap::RadioResourceConfigDedicated::srbToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::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:

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

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

References m_bid2DrbidMap.

Referenced by DoSendData().

+ Here is the caller graph for this function:

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 2323 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:

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 2347 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:

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 2385 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:

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 2409 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:

void ns3::LteUeRrc::ConnectionTimeout ( )
private

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

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

References IDLE_CAMPED_NORMALLY, m_asSapUser, m_cellId, m_cmacSapProvider, m_connectionTimeoutTrace, m_hasReceivedSib2, m_imsi, m_rnti, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::Reset(), and SwitchToState().

Referenced by DoNotifyRandomAccessSuccessful().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteUeRrc::DisposeOldSrb1 ( )
private

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

References m_srb1Old, and NS_LOG_FUNCTION.

Referenced by DoRecvRrcConnectionReconfiguration().

+ Here is the caller graph for this function:

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 overriden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

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

References m_asSapProvider, m_cmacSapUser, m_cphySapUser, m_drbMap, m_drbPdcpSapUser, m_rrcSapProvider, and NS_LOG_FUNCTION.

void ns3::LteUeRrc::DoInitialize ( void  )
privatevirtual
void ns3::LteUeRrc::DoNotifyRandomAccessFailed ( )
private
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 553 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 ns3::ToString().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

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

Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface.

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

References ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, ns3::LteUeCphySapProvider::ConfigureUplink(), 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::MobilityControlInfo::haveRachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, m_cellId, m_cmacSapProvider, m_connectionReconfigurationTrace, m_cphySapProvider, m_drbMap, m_handoverStartTrace, m_imsi, m_lastRrcTransactionIdentifier, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1Old, m_state, ns3::LteRrcSap::RrcConnectionReconfiguration::measConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteUeCphySapProvider::Reset(), ns3::LteUeCmacSapProvider::Reset(), ns3::LteRrcSap::RrcConnectionReconfiguration::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionReconfigurationCompleted::rrcTransactionIdentifier, ns3::Simulator::ScheduleNow(), ns3::LteUeRrcSapUser::SendRrcConnectionReconfigurationCompleted(), ns3::LteUeCphySapProvider::SetDlBandwidth(), ns3::LteUeCphySapProvider::SetRnti(), ns3::LteUeCmacSapProvider::StartNonContentionBasedRandomAccessProcedure(), SwitchToState(), ns3::LteUeCphySapProvider::SynchronizeWithEnb(), ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::ToString(), ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.

+ Here is the call graph for this function:

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

Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface.

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

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

+ Here is the call graph for this function:

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

Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.

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

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

+ Here is the call graph for this function:

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

Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface.

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

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

References m_rnti, and NS_LOG_FUNCTION.

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

Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface.

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

References ns3::LteUeCmacSapProvider::ConfigureRach(), ns3::LteUeCphySapProvider::ConfigureReferenceSignalPower(), ns3::LteUeCphySapProvider::ConfigureUplink(), CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, 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_cphySapProvider, m_hasReceivedSib2, m_imsi, m_rnti, m_sib2ReceivedTrace, m_state, m_ulBandwidth, m_ulEarfcn, NS_ASSERT, NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteUeCmacSapProvider::RachConfig::preambleTransMax, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteUeCmacSapProvider::RachConfig::raResponseWindowSize, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SystemInformation::sib2, StartConnection(), ns3::LteRrcSap::FreqInfo::ulBandwidth, and ns3::LteRrcSap::FreqInfo::ulCarrierFreq.

+ Here is the call graph for this function:

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

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

References m_csgWhiteList, m_imsi, and NS_LOG_FUNCTION.

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

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

References m_cphySapProvider, m_rnti, m_srb0, NS_LOG_FUNCTION, and ns3::LteUeCphySapProvider::SetRnti().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteUeRrc::DoStartCellSelection ( uint16_t  dlEarfcn)
private
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 1056 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, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_WAIT_SIB1, ns3::EutranMeasurementMapping::IeValue2ActualQRxLevMin(), m_acceptableCell, m_cellId, 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_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::CellSelectionInfo::qRxLevMin, ns3::LteUeCphySapProvider::SetDlBandwidth(), SwitchToState(), SynchronizeToStrongestCell(), and ns3::LteUeCphySapProvider::SynchronizeWithEnb().

Referenced by DoRecvSystemInformationBlockType1().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References m_asSapProvider.

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

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

References m_cellId, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

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

References m_dlBandwidth, and NS_LOG_FUNCTION.

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

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

References m_dlEarfcn.

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

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

References m_imsi.

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

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

References m_cmacSapUser, and NS_LOG_FUNCTION.

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

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

References m_cphySapUser, and NS_LOG_FUNCTION.

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

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

References m_rrcSapProvider, and NS_LOG_FUNCTION.

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

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

References m_rnti, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

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

References m_state, and NS_LOG_FUNCTION.

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

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

References m_ulBandwidth, and NS_LOG_FUNCTION.

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

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

References m_ulEarfcn, and NS_LOG_FUNCTION.

void ns3::LteUeRrc::LeaveConnectedMode ( )
private
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 1578 of file lte-ue-rrc.cc.

References CancelEnteringTrigger(), CancelLeavingTrigger(), 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::EutranMeasurementMapping::IeValue2ActualA3Offset(), ns3::EutranMeasurementMapping::IeValue2ActualHysteresis(), m_cellId, 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::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::EutranMeasurementMapping::RsrpRange2Dbm(), ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::EutranMeasurementMapping::RsrqRange2Db(), ns3::Simulator::Schedule(), ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRP, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ, ns3::LteUeRrc::PendingTrigger_t::timer, VarMeasReportListAdd(), and VarMeasReportListErase().

Referenced by DoReportUeMeasurements().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteUeRrc::SaveUeMeasurements ( uint16_t  cellId,
double  rsrp,
double  rsrq,
bool  useLayer3Filtering 
)
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
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 1524 of file lte-ue-rrc.cc.

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

Referenced by DoReportUeMeasurements().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

References ns3::EutranMeasurementMapping::Db2RsrqRange(), ns3::EutranMeasurementMapping::Dbm2RsrpRange(), ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, m_cellId, m_rrcSapUser, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteRrcSap::MeasResults::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasurementReport::measResults, 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::RSRP, ns3::LteRrcSap::MeasResults::rsrpResult, ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::LteRrcSap::MeasResults::rsrqResult, ns3::Simulator::Schedule(), ns3::Seconds(), and ns3::LteUeRrcSapUser::SendMeasurementReport().

Referenced by VarMeasReportListAdd(), and VarMeasReportListErase().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

References m_asSapUser.

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

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

References m_imsi, and NS_LOG_FUNCTION.

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

References m_macSapProvider, and NS_LOG_FUNCTION.

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

set the CMAC SAP this RRC should interact with

Parameters
sthe CMAC SAP Provider to be used by this RRC

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

References m_cmacSapProvider, and NS_LOG_FUNCTION.

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

References m_cphySapProvider, and NS_LOG_FUNCTION.

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

References m_rrcSapUser, and NS_LOG_FUNCTION.

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

References m_useRlcSm, and NS_LOG_FUNCTION.

void ns3::LteUeRrc::StartConnection ( )
private

Definition at line 2752 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, ns3::LteUeCmacSapProvider::StartContentionBasedRandomAccessProcedure(), and SwitchToState().

Referenced by DoRecvSystemInformation(), and SwitchToState().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 1013 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, SwitchToState(), and ns3::LteUeCphySapProvider::SynchronizeWithEnb().

Referenced by DoReportUeMeasurements(), and EvaluateCellForSelection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 2447 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:

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

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

Referenced by ApplyMeasConfig(), and DoNotifyRandomAccessSuccessful().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 2514 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

friend class LtePdcpSpecificLtePdcpSapUser< LteUeRrc >
friend

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

friend class MemberLteAsSapProvider< LteUeRrc >
friend

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

friend class MemberLteUeCphySapUser< LteUeRrc >
friend

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

friend class MemberLteUeRrcSapProvider< LteUeRrc >
friend

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

friend class UeMemberLteUeCmacSapUser
friend

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

Referenced by LteUeRrc().

friend class UeRrcMemberLteEnbCmacSapUser
friend

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

Member Data Documentation

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

Referenced by EvaluateCellForSelection(), and SynchronizeToStrongestCell().

LteAsSapProvider* ns3::LteUeRrc::m_asSapProvider
private

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

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

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

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

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

LteUeCmacSapUser* ns3::LteUeRrc::m_cmacSapUser
private

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

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

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

Referenced by DoRecvRrcConnectionSetup(), and GetTypeId().

bool ns3::LteUeRrc::m_connectionPending
private

True if a connection request by upper layers is pending.

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

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

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

Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().

EventId ns3::LteUeRrc::m_connectionTimeout
private

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

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

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

TracedCallback<uint64_t, uint16_t, uint16_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 639 of file lte-ue-rrc.h.

Referenced by ConnectionTimeout(), and GetTypeId().

LteUeCphySapUser* ns3::LteUeRrc::m_cphySapUser
private

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

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

uint32_t ns3::LteUeRrc::m_csgWhiteList
private

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

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

Referenced by DoSetCsgWhiteList(), and EvaluateCellForSelection().

uint8_t ns3::LteUeRrc::m_dlBandwidth
private

Downlink bandwidth in RBs.

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

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

uint16_t ns3::LteUeRrc::m_dlEarfcn
private

Downlink carrier frequency.

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

Referenced by DoForceCampedOnEnb(), DoStartCellSelection(), EvaluateCellForSelection(), GetDlEarfcn(), and SynchronizeToStrongestCell().

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

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

LtePdcpSapUser* ns3::LteUeRrc::m_drbPdcpSapUser
private

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

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

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

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

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

Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

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

Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().

bool ns3::LteUeRrc::m_hasReceivedMib
private

True if MIB was received for the current cell.

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

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

bool ns3::LteUeRrc::m_hasReceivedSib1
private

True if SIB1 was received for the current cell.

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

Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().

bool ns3::LteUeRrc::m_hasReceivedSib2
private

True if SIB2 was received for the current cell.

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

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

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

Referenced by EvaluateCellForSelection(), and GetTypeId().

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

Referenced by EvaluateCellForSelection(), and GetTypeId().

uint8_t ns3::LteUeRrc::m_lastRrcTransactionIdentifier
private
LteRrcSap::SystemInformationBlockType1 ns3::LteUeRrc::m_lastSib1
private

Stored content of the last SIB1 received.

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

Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().

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

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

LteMacSapProvider* ns3::LteUeRrc::m_macSapProvider
private
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 591 of file lte-ue-rrc.h.

Referenced by DoRecvMasterInformationBlock(), and GetTypeId().

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

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

Referenced by ApplyRadioResourceConfigDedicated().

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

Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

LteUeRrcSapProvider* ns3::LteUeRrc::m_rrcSapProvider
private

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

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

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

Referenced by DoRecvSystemInformationBlockType1(), and GetTypeId().

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

Referenced by DoRecvSystemInformation(), and GetTypeId().

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

The Srb0 attribute.

SignalingRadioBearerInfo for SRB0.

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

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

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

The Srb1 attribute.

SignalingRadioBearerInfo for SRB1.

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

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

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

SRB1 configuration before RRC connection reconfiguration.

To be deleted soon by DisposeOldSrb1().

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

Referenced by DisposeOldSrb1(), and DoRecvRrcConnectionReconfiguration().

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

Referenced by GetTypeId(), and SwitchToState().

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

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

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

Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().

uint8_t ns3::LteUeRrc::m_ulBandwidth
private

Uplink bandwidth in RBs.

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

Referenced by DoRecvSystemInformation(), and GetUlBandwidth().

uint16_t ns3::LteUeRrc::m_ulEarfcn
private

Uplink carrier frequency.

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

Referenced by DoRecvSystemInformation(), and GetUlEarfcn().

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

Referenced by ApplyRadioResourceConfigDedicated(), and SetUseRlcSm().

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

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

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 727 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: