#include "lte-ue-rrc.h"
Classes | |
struct | MeasValues |
Represents a measurement result from a certain cell. More... | |
struct | PendingTrigger_t |
Represents a single triggered event from a measurement identity which reporting criteria have been fulfilled, but delayed by time-to-trigger. More... | |
struct | VarMeasConfig |
Includes the accumulated configuration of the measurements to be performed by the UE. More... | |
struct | VarMeasReport |
Represents a single measurement reporting entry., which includes information about a measurement for which the triggering conditions have been met. More... | |
Public Types | |
typedef void(* | CellSelectionTracedCallback) (uint64_t imsi, uint16_t cellId) |
TracedCallback signature for imsi, cellId and rnti events. More... | |
typedef void(* | ImsiCidRntiCountTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count) |
TracedCallback signature for imsi, cellId, rnti and counter for random access events. More... | |
typedef void(* | ImsiCidRntiTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti) |
TracedCallback signature for imsi, cellId and rnti events. More... | |
typedef void(* | MibSibHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid) |
TracedCallback signature for MIBReceived, Sib1Received and HandoverStart events. More... | |
typedef void(* | PhySyncDetectionTracedCallback) (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count) |
TracedCallback signature for in-sync and out-of-sync detection events. More... | |
typedef void(* | SCarrierConfiguredTracedCallback) (Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >) |
TracedCallback signature for secondary carrier configuration events. More... | |
enum | State { IDLE_START = 0 , IDLE_CELL_SEARCH , IDLE_WAIT_MIB_SIB1 , IDLE_WAIT_MIB , IDLE_WAIT_SIB1 , IDLE_CAMPED_NORMALLY , IDLE_WAIT_SIB2 , IDLE_RANDOM_ACCESS , IDLE_CONNECTING , CONNECTED_NORMALLY , CONNECTED_HANDOVER , CONNECTED_PHY_PROBLEM , CONNECTED_REESTABLISHING , NUM_STATES } |
The states of the UE RRC entity. More... | |
typedef void(* | StateTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState) |
TracedCallback signature for state transition events. More... | |
Public Member Functions | |
LteUeRrc () | |
create an RRC instance for use within an ue More... | |
~LteUeRrc () override | |
Destructor. More... | |
LteAsSapProvider * | GetAsSapProvider () |
uint16_t | GetCellId () const |
uint8_t | GetDlBandwidth () const |
uint32_t | GetDlEarfcn () const |
uint64_t | GetImsi () const |
LteUeCcmRrcSapUser * | GetLteCcmRrcSapUser () |
Get the Component Carrier Management SAP offered by this RRC. More... | |
LteUeCmacSapUser * | GetLteUeCmacSapUser () |
This function is overloaded to maintain backward compatibility. More... | |
LteUeCmacSapUser * | GetLteUeCmacSapUser (uint8_t index) |
This function is overloaded to maintain backward compatibility. More... | |
LteUeCphySapUser * | GetLteUeCphySapUser () |
LteUeCphySapUser * | GetLteUeCphySapUser (uint8_t index) |
LteUeRrcSapProvider * | GetLteUeRrcSapProvider () |
uint16_t | GetPreviousCellId () const |
Get the previous cell id. More... | |
uint16_t | GetRnti () const |
State | GetState () const |
uint8_t | GetUlBandwidth () const |
uint32_t | GetUlEarfcn () const |
void | InitializeSap () |
Initialize SAP. More... | |
bool | IsServingCell (uint16_t cellId) const |
void | SetAsSapUser (LteAsSapUser *s) |
Set the AS SAP user to interact with the NAS entity. More... | |
void | SetImsi (uint64_t imsi) |
void | SetLteCcmRrcSapProvider (LteUeCcmRrcSapProvider *s) |
set the Component Carrier Management SAP this RRC should interact with More... | |
void | SetLteMacSapProvider (LteMacSapProvider *s) |
set the MAC SAP provider. More... | |
void | SetLteUeCmacSapProvider (LteUeCmacSapProvider *s) |
set the CMAC SAP this RRC should interact with More... | |
void | SetLteUeCmacSapProvider (LteUeCmacSapProvider *s, uint8_t index) |
set the CMAC SAP this RRC should interact with More... | |
void | SetLteUeCphySapProvider (LteUeCphySapProvider *s) |
set the CPHY SAP this RRC should use to interact with the PHY More... | |
void | SetLteUeCphySapProvider (LteUeCphySapProvider *s, uint8_t index) |
set the CPHY SAP this RRC should use to interact with the PHY More... | |
void | SetLteUeRrcSapUser (LteUeRrcSapUser *s) |
set the RRC SAP this RRC should interact with More... | |
void | SetUseRlcSm (bool val) |
void | StorePreviousCellId (uint16_t cellId) |
Store the previous cell id. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () 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< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
static const std::string | ToString (LteUeRrc::State s) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Public Attributes | |
uint16_t | m_numberOfComponentCarriers |
The number of component carriers. More... | |
Private Types | |
typedef std::list< uint16_t > | ConcernedCells_t |
List of cell IDs which are responsible for a certain trigger. More... | |
Private Member Functions | |
void | ApplyMeasConfig (LteRrcSap::MeasConfig mc) |
Update the current measurement configuration m_varMeasConfig. More... | |
void | ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd) |
Apply radio resource config dedicated. More... | |
void | ApplyRadioResourceConfigDedicatedSecondaryCarrier (LteRrcSap::NonCriticalExtensionConfiguration nonCec) |
Apply radio resource config dedicated secondary carrier. More... | |
uint8_t | Bid2Drbid (uint8_t bid) |
Bid 2 DR bid. More... | |
void | CancelEnteringTrigger (uint8_t measId) |
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurement identity. More... | |
void | CancelEnteringTrigger (uint8_t measId, uint16_t cellId) |
Remove a specific cell from the waiting triggers in m_enteringTriggerQueue which belong to the given measurement identity. More... | |
void | CancelLeavingTrigger (uint8_t measId) |
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measurement identity. More... | |
void | CancelLeavingTrigger (uint8_t measId, uint16_t cellId) |
Remove a specific cell from the waiting triggers in m_leavingTriggerQueue which belong to the given measurement identity. More... | |
void | ConnectionTimeout () |
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed. More... | |
void | DisposeOldSrb1 () |
Dispose old SRB1. More... | |
void | DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params) |
Part of the RRC protocol. More... | |
void | DoConnect () |
Connect function. More... | |
void | DoDisconnect () |
Disconnect function. More... | |
void | DoDispose () override |
Destructor implementation. More... | |
void | DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn) |
Force camped on ENB function. More... | |
void | DoInitialize () override |
Initialize() implementation. More... | |
void | DoNotifyInSync () |
Do notify in sync function. More... | |
void | DoNotifyOutOfSync () |
Do notify out of sync function. More... | |
void | DoNotifyRandomAccessFailed () |
Notify random access failed function. More... | |
void | DoNotifyRandomAccessSuccessful () |
Notify random access successful function. More... | |
void | DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params) |
Receive PDCP SDU function. More... | |
void | DoRecvMasterInformationBlock (uint16_t cellId, LteRrcSap::MasterInformationBlock msg) |
Receive master information block function. More... | |
void | DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg) |
Part of the RRC protocol. More... | |
void | DoRecvSystemInformation (LteRrcSap::SystemInformation msg) |
Part of the RRC protocol. More... | |
void | DoRecvSystemInformationBlockType1 (uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg) |
Receive system information block type 1 function. More... | |
void | DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params) |
Report UE measurements function. More... | |
void | DoResetSyncIndicationCounter () |
Do reset sync indication counter function. More... | |
void | DoSendData (Ptr< Packet > packet, uint8_t bid) |
Send data function. More... | |
void | DoSetCsgWhiteList (uint32_t csgId) |
Set CSG white list function. More... | |
void | DoSetNumberOfComponentCarriers (uint16_t noOfComponentCarriers) |
RRC CCM SAP USER Method. More... | |
void | DoSetTemporaryCellRnti (uint16_t rnti) |
Set temporary cell rnti function. More... | |
void | DoStartCellSelection (uint32_t dlEarfcn) |
Start cell selection function. More... | |
void | EvaluateCellForSelection () |
Performs cell selection evaluation to the current serving cell. More... | |
void | LeaveConnectedMode () |
Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cause. More... | |
void | MeasurementReportTriggering (uint8_t measId) |
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result. More... | |
void | RadioLinkFailureDetected () |
Radio link failure detected function. More... | |
void | ResetRlfParams () |
Reset radio link failure parameters. More... | |
void | SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint8_t componentCarrierId) |
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functions. More... | |
void | SendMeasurementReport (uint8_t measId) |
Produce a proper measurement report from the given measurement identity's reporting entry in m_varMeasReportList and then submit it to the serving eNodeB. More... | |
void | StartConnection () |
Start connection function. More... | |
void | SwitchToState (State s) |
Switch the UE RRC to the given state. More... | |
void | SynchronizeToStrongestCell () |
Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it. More... | |
void | VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells) |
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB. More... | |
void | VarMeasReportListClear (uint8_t measId) |
Remove the reporting entry of the given measurement identity from m_varMeasReportList. More... | |
void | VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave) |
Remove some cells from an existing reporting entry in m_varMeasReportList. More... | |
Private Attributes | |
std::set< uint16_t > | m_acceptableCell |
List of cell ID of acceptable cells for cell selection that have been detected. More... | |
LteAsSapProvider * | m_asSapProvider |
AS SAP provider. More... | |
LteAsSapUser * | m_asSapUser |
AS SAP user. More... | |
std::map< uint8_t, uint8_t > | m_bid2DrbidMap |
bid to DR bid map More... | |
LteUeCcmRrcSapProvider * | m_ccmRrcSapProvider |
Interface to the LteUeComponentCarrierManage instance. More... | |
LteUeCcmRrcSapUser * | m_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... | |
LtePdcpSapUser * | m_drbPdcpSapUser |
DRB PDCP SAP user. More... | |
std::map< uint8_t, std::list< PendingTrigger_t > > | m_enteringTriggerQueue |
List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndErrorTrace |
The HandoverEndError trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndOkTrace |
The HandoverEndOk trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_handoverStartTrace |
The HandoverStart trace source. More... | |
bool | m_hasReceivedMib |
True if MIB was received for the current cell. More... | |
bool | m_hasReceivedSib1 |
True if SIB1 was received for the current cell. More... | |
bool | m_hasReceivedSib2 |
True if SIB2 was received for the current cell. More... | |
uint64_t | m_imsi |
The unique UE identifier. More... | |
TracedCallback< uint64_t, uint16_t > | m_initialCellSelectionEndErrorTrace |
The InitialCellSelectionEndError trace source. More... | |
TracedCallback< uint64_t, uint16_t > | m_initialCellSelectionEndOkTrace |
The InitialCellSelectionEndOk trace source. More... | |
uint8_t | m_lastRrcTransactionIdentifier |
last RRC transaction identifier More... | |
LteRrcSap::SystemInformationBlockType1 | m_lastSib1 |
Stored content of the last SIB1 received. More... | |
bool | m_leaveConnectedMode |
true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e. More... | |
std::map< uint8_t, std::list< PendingTrigger_t > > | m_leavingTriggerQueue |
List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger. More... | |
LteMacSapProvider * | m_macSapProvider |
MAC SAP provider. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_mibReceivedTrace |
The MibReceived trace source. More... | |
uint8_t | m_n310 |
The 'N310' attribute. More... | |
uint8_t | m_n311 |
The 'N311' attribute. More... | |
uint8_t | m_noOfSyncIndications |
number of in-sync or out-of-sync indications coming from PHY layer More... | |
LteRrcSap::PdschConfigDedicated | m_pdschConfigDedicated |
the PDSCH config dedicated More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > | m_phySyncDetectionTrace |
The 'PhySyncDetection' trace source. More... | |
uint16_t | m_previousCellId |
the cell id of the previous cell UE was attached to More... | |
EventId | m_radioLinkFailureDetected |
Time limit (given by m_t310) before the radio link is considered to have failed. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_radioLinkFailureTrace |
The 'RadioLinkFailure' trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_randomAccessErrorTrace |
The RandomAccessError trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_randomAccessSuccessfulTrace |
The RandomAccessSuccessful trace source. More... | |
uint16_t | m_rnti |
The C-RNTI attribute. More... | |
LteUeRrcSapProvider * | m_rrcSapProvider |
RRC SAP provider. More... | |
LteUeRrcSapUser * | m_rrcSapUser |
RRC SAP user. More... | |
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > | m_sCarrierConfiguredTrace |
The SCarrierConfigured trace source. More... | |
std::list< LteRrcSap::SCellToAddMod > | m_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< LteSignalingRadioBearerInfo > | m_srb0 |
The Srb0 attribute. More... | |
Ptr< LteSignalingRadioBearerInfo > | m_srb1 |
The Srb1 attribute. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_srb1CreatedTrace |
The Srb1Created trace source. More... | |
Ptr< LteSignalingRadioBearerInfo > | m_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, State > | m_stateTransitionTrace |
The StateTransition trace source. More... | |
std::map< uint16_t, MeasValues > | m_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, MeasValues > | m_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, VarMeasReport > | m_varMeasReportList |
The list of active reporting entries, indexed by the measurement identity which triggered the reporting. More... | |
Friends | |
class | LtePdcpSpecificLtePdcpSapUser< LteUeRrc > |
allow LtePdcpSpecificLtePdcpSapUser<LteUeRrc> class friend access More... | |
class | MemberLteAsSapProvider< LteUeRrc > |
allow MemberLteAsSapProvider<LteUeRrc> class friend access More... | |
class | MemberLteUeCcmRrcSapUser< LteUeRrc > |
allow MemberLteUeCcmRrcSapUser<LteUeRrc> class friend access More... | |
class | MemberLteUeCphySapUser< LteUeRrc > |
allow MemberLteUeCphySapUser<LteUeRrc> class friend access More... | |
class | MemberLteUeRrcSapProvider< LteUeRrc > |
allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access More... | |
class | UeMemberLteUeCmacSapUser |
allow UeMemberLteUeCmacSapUser class friend access More... | |
class | UeRrcMemberLteEnbCmacSapUser |
allow UeRrcMemberLteEnbCmacSapUser class friend access More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
Definition at line 76 of file lte-ue-rrc.h.
typedef void(* ns3::LteUeRrc::CellSelectionTracedCallback) (uint64_t imsi, uint16_t cellId) |
TracedCallback signature for imsi, cellId and rnti events.
[in] | imsi | |
[in] | cellId |
Definition at line 335 of file lte-ue-rrc.h.
|
private |
List of cell IDs which are responsible for a certain trigger.
Definition at line 1003 of file lte-ue-rrc.h.
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.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | count |
Definition at line 409 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.
[in] | imsi | |
[in] | cellId | |
[in] | rnti |
Definition at line 344 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 MIBReceived, Sib1Received and HandoverStart events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | otherCid |
Definition at line 355 of file lte-ue-rrc.h.
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.
[in] | imsi | |
[in] | rnti | |
[in] | cellId | |
[in] | type | |
[in] | count |
Definition at line 394 of file lte-ue-rrc.h.
typedef void(* ns3::LteUeRrc::SCarrierConfiguredTracedCallback) (Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >) |
TracedCallback signature for secondary carrier configuration events.
[in] | Pointer | to UE RRC |
[in] | List | of LteRrcSap::SCellToAddMod |
Definition at line 381 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.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | oldState | |
[in] | newState |
Definition at line 369 of file lte-ue-rrc.h.
enum ns3::LteUeRrc::State |
The states of the UE RRC entity.
Definition at line 98 of file lte-ue-rrc.h.
ns3::LteUeRrc::LteUeRrc | ( | ) |
create an RRC instance for use within an ue
Definition at line 118 of file lte-ue-rrc.cc.
References LtePdcpSpecificLtePdcpSapUser< LteUeRrc >, m_asSapProvider, m_ccmRrcSapUser, m_cmacSapProvider, m_cmacSapUser, m_cphySapProvider, m_cphySapUser, m_drbPdcpSapUser, m_rrcSapProvider, MemberLteAsSapProvider< LteUeRrc >, MemberLteUeCcmRrcSapUser< LteUeRrc >, MemberLteUeRrcSapProvider< LteUeRrc >, NS_LOG_FUNCTION, and UeMemberLteUeCmacSapUser.
|
override |
|
private |
Update the current measurement configuration m_varMeasConfig.
mc | measurements to be performed by the UE |
Implements Section 5.5.2 "Measurement configuration" of 3GPP TS 36.331. The supported subfunctions are:
The subfunctions that will be invoked are determined by the content of the given measurement configuration.
Note the existence of some chain reaction behaviours:
Some unsupported features:
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.
Definition at line 1630 of file lte-ue-rrc.cc.
References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRP, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRQ, ns3::LteRrcSap::MeasConfig::haveMeasGapConfig, ns3::LteRrcSap::MeasConfig::haveQuantityConfig, ns3::LteRrcSap::MeasConfig::haveSmeasure, ns3::LteRrcSap::MeasConfig::haveSpeedStatePars, m_cphySapProvider, m_enteringTriggerQueue, m_leavingTriggerQueue, m_numberOfComponentCarriers, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasConfig::measIdToAddModList, ns3::LteRrcSap::MeasConfig::measIdToRemoveList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::LteRrcSap::MeasConfig::measObjectToAddModList, ns3::LteRrcSap::MeasConfig::measObjectToRemoveList, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::ReportConfigEutra::PERIODICAL, ns3::LteRrcSap::MeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::MeasConfig::reportConfigToAddModList, ns3::LteRrcSap::MeasConfig::reportConfigToRemoveList, and VarMeasReportListClear().
Referenced by DoRecvRrcConnectionReconfiguration().
|
private |
Apply radio resource config dedicated.
rrcd | LteRrcSap::RadioResourceConfigDedicated |
Definition at line 1412 of file lte-ue-rrc.cc.
References ns3::LteUeCcmRrcSapProvider::AddLc(), ns3::LteRrcSap::RlcConfig::AM, ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, ns3::LteUeCcmRrcSapProvider::ConfigureSignalBearer(), CONNECTED_HANDOVER, ns3::LteRrcSap::ConvertPdschConfigDedicated2Double(), ns3::ObjectFactory::Create(), ns3::LteRrcSap::RadioResourceConfigDedicated::drbToAddModList, ns3::LteRrcSap::RadioResourceConfigDedicated::drbToReleaseList, ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::Object::GetObject(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcUm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), ns3::LteRrcSap::PhysicalConfigDedicated::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::havePdschConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::haveSoundingRsUlConfigDedicated, IDLE_CONNECTING, ns3::Object::Initialize(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::logicalChannelGroup, m_bid2DrbidMap, m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_cphySapProvider, m_drbCreatedTrace, m_drbMap, m_drbPdcpSapUser, m_imsi, m_macSapProvider, m_numberOfComponentCarriers, m_pdschConfigDedicated, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1CreatedTrace, m_state, m_useRlcSm, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, ns3::LteUeCmacSapProvider::LogicalChannelConfig::prioritizedBitRateKbps, ns3::LteUeCmacSapProvider::LogicalChannelConfig::priority, ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LteRlc::SetRnti(), ns3::ObjectFactory::SetTypeId(), ns3::LteUeRrcSapUser::Setup(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteUeRrcSapUser::SetupParameters::srb0SapProvider, ns3::LteUeRrcSapUser::SetupParameters::srb1SapProvider, ns3::LteRrcSap::RadioResourceConfigDedicated::srbToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ToString(), ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, and ns3::LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL.
Referenced by DoRecvRrcConnectionReconfiguration(), and DoRecvRrcConnectionSetup().
|
private |
Apply radio resource config dedicated secondary carrier.
nonCec | LteRrcSap::NonCriticalExtensionConfiguration |
Definition at line 1361 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::ConvertPdschConfigDedicated2Double(), m_cmacSapProvider, m_cphySapProvider, m_rnti, m_sCarrierConfiguredTrace, m_sCellToAddModList, NS_LOG_FUNCTION, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToAddModList, and ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToReleaseList.
Referenced by DoRecvRrcConnectionReconfiguration().
|
private |
Bid 2 DR bid.
bid | the BID |
Definition at line 3211 of file lte-ue-rrc.cc.
References m_bid2DrbidMap.
Referenced by DoSendData().
|
private |
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurement identity.
measId | the measurement identity to be processed, must already exists in m_enteringTriggerQueue, otherwise an error would be raised |
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.
Definition at line 2676 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by MeasurementReportTriggering(), VarMeasReportListAdd(), and VarMeasReportListClear().
|
private |
Remove a specific cell from the waiting triggers in m_enteringTriggerQueue which belong to the given measurement identity.
measId | the measurement identity to be processed, must already exists in m_enteringTriggerQueue, otherwise an error would be raised |
cellId | the cell ID to be removed from the waiting triggers |
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.
Definition at line 2698 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measurement identity.
measId | the measurement identity to be processed, must already exists in m_leavingTriggerQueue, otherwise an error would be raised |
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.
Definition at line 2733 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by MeasurementReportTriggering(), VarMeasReportListClear(), and VarMeasReportListErase().
|
private |
Remove a specific cell from the waiting triggers in m_leavingTriggerQueue which belong to the given measurement identity.
measId | the measurement identity to be processed, must already exists in m_leavingTriggerQueue, otherwise an error would be raised |
cellId | the cell ID to be removed from the waiting triggers |
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.
Definition at line 2755 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed.
Definition at line 3173 of file lte-ue-rrc.cc.
References CONNECTED_PHY_PROBLEM, IDLE_CAMPED_NORMALLY, m_asSapUser, m_cellId, m_cmacSapProvider, m_connectionTimeoutTrace, m_connEstFailCount, m_connEstFailCountLimit, m_hasReceivedSib2, m_imsi, m_numberOfComponentCarriers, m_rnti, ns3::LteAsSapUser::NotifyConnectionFailed(), ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, and SwitchToState().
Referenced by DoNotifyRandomAccessSuccessful().
|
private |
Dispose old SRB1.
Definition at line 3204 of file lte-ue-rrc.cc.
References m_srb1Old, and NS_LOG_FUNCTION.
Referenced by DoRecvRrcConnectionReconfiguration().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::CompleteSetup interface.
params | the LteUeRrcSapProvider::CompleteSetupParameters |
Definition at line 958 of file lte-ue-rrc.cc.
References m_rnti, m_srb0, m_srb1, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Connect function.
Definition at line 806 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_REESTABLISHING, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_START, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, IDLE_WAIT_SIB2, m_connectionPending, m_imsi, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, SwitchToState(), and ToString().
Referenced by EvaluateCellForSelection().
|
private |
Disconnect function.
Definition at line 610 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_CONNECTING, IDLE_START, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, IDLE_WAIT_SIB2, LeaveConnectedMode(), m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, and ToString().
|
overrideprivatevirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 158 of file lte-ue-rrc.cc.
References m_asSapProvider, m_ccmRrcSapUser, m_cmacSapProvider, m_cmacSapUser, m_cphySapProvider, m_cphySapUser, m_drbMap, m_drbPdcpSapUser, m_numberOfComponentCarriers, m_rrcSapProvider, and NS_LOG_FUNCTION.
|
private |
Force camped on ENB function.
cellId | the cell ID |
dlEarfcn | the DL EARFCN |
Definition at line 762 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_START, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, IDLE_WAIT_SIB2, m_cellId, m_cphySapProvider, m_dlEarfcn, m_imsi, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, SwitchToState(), and ToString().
|
overrideprivatevirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 531 of file lte-ue-rrc.cc.
References ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, ns3::LteUeCcmRrcSapProvider::ConfigureSignalBearer(), ns3::LteRlc::GetLteMacSapUser(), ns3::Object::GetObject(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::logicalChannelGroup, m_ccmRrcSapProvider, m_cmacSapProvider, m_macSapProvider, m_rnti, m_rrcSapUser, m_srb0, NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::LogicalChannelConfig::prioritizedBitRateKbps, ns3::LteUeCmacSapProvider::LogicalChannelConfig::priority, ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LteRlc::SetRnti(), ns3::LteUeRrcSapUser::Setup(), ns3::LteUeRrcSapUser::SetupParameters::srb0SapProvider, and ns3::LteUeRrcSapUser::SetupParameters::srb1SapProvider.
|
private |
Do notify in sync function.
Triggered upon receiving an in sync indication from UE PHY. When the count equals N311, then T310 is cancelled.
Definition at line 3293 of file lte-ue-rrc.cc.
References m_cellId, m_imsi, m_n311, m_noOfSyncIndications, m_phySyncDetectionTrace, m_rnti, NS_LOG_FUNCTION, NS_LOG_INFO, and ResetRlfParams().
|
private |
Do notify out of sync function.
Triggered upon receiving an out of sync indication from UE PHY. When the count equals N310, then T310 is started.
Definition at line 3306 of file lte-ue-rrc.cc.
References ns3::EventId::IsRunning(), m_cellId, m_cphySapProvider, m_imsi, m_n310, m_noOfSyncIndications, m_phySyncDetectionTrace, m_radioLinkFailureDetected, m_rnti, m_t310, NS_LOG_FUNCTION, NS_LOG_INFO, RadioLinkFailureDetected(), and ns3::Simulator::Schedule().
|
private |
Notify random access failed function.
Definition at line 704 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_PHY_PROBLEM, IDLE_CAMPED_NORMALLY, IDLE_RANDOM_ACCESS, m_asSapUser, m_cellId, m_handoverEndErrorTrace, m_imsi, m_leaveConnectedMode, m_randomAccessErrorTrace, m_rnti, m_rrcSapUser, m_state, ns3::LteAsSapUser::NotifyConnectionFailed(), ns3::LteAsSapUser::NotifyConnectionReleased(), NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteUeRrcSapUser::SendIdealUeContextRemoveRequest(), SwitchToState(), and ToString().
Referenced by ns3::UeMemberLteUeCmacSapUser::NotifyRandomAccessFailed().
|
private |
Notify random access successful function.
Definition at line 660 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, ConnectionTimeout(), IDLE_CONNECTING, IDLE_RANDOM_ACCESS, m_cellId, m_cmacSapProvider, m_connectionTimeout, m_handoverEndOkTrace, m_imsi, m_lastRrcTransactionIdentifier, m_randomAccessSuccessfulTrace, m_rnti, m_rrcSapUser, m_state, m_t300, m_varMeasConfig, ns3::LteUeRrc::VarMeasConfig::measIdList, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionReconfigurationCompleted::rrcTransactionIdentifier, ns3::Simulator::Schedule(), ns3::LteUeRrcSapUser::SendRrcConnectionReconfigurationCompleted(), ns3::LteUeRrcSapUser::SendRrcConnectionRequest(), SwitchToState(), ToString(), ns3::LteRrcSap::RrcConnectionRequest::ueIdentity, and VarMeasReportListClear().
Referenced by ns3::UeMemberLteUeCmacSapUser::NotifyRandomAccessSuccessful().
|
private |
Receive PDCP SDU function.
params | LtePdcpSapUser::ReceivePdcpSduParameters |
Definition at line 644 of file lte-ue-rrc.cc.
References m_asSapUser, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::LteAsSapUser::RecvData().
|
private |
Receive master information block function.
cellId | the cell ID |
msg | LteRrcSap::MasterInformationBlock |
Definition at line 846 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, IDLE_CAMPED_NORMALLY, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, m_cellId, m_cphySapProvider, m_dlBandwidth, m_hasReceivedMib, m_imsi, m_mibReceivedTrace, m_rnti, m_state, and SwitchToState().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface.
msg | the LteRrcSap::RrcConnectionReconfiguration |
Definition at line 1052 of file lte-ue-rrc.cc.
References ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ApplyRadioResourceConfigDedicatedSecondaryCarrier(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, CONNECTED_HANDOVER, CONNECTED_NORMALLY, DisposeOldSrb1(), ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, ns3::EventId::IsRunning(), m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_connectionReconfigurationTrace, m_cphySapProvider, m_drbMap, m_handoverStartTrace, m_imsi, m_lastRrcTransactionIdentifier, m_radioLinkFailureDetected, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1Old, m_state, ns3::LteRrcSap::RrcConnectionReconfiguration::measConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteUeCcmRrcSapProvider::Reset(), ResetRlfParams(), ns3::LteRrcSap::RrcConnectionReconfiguration::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionReconfigurationCompleted::rrcTransactionIdentifier, ns3::Simulator::ScheduleNow(), ns3::LteUeRrcSapUser::SendRrcConnectionReconfigurationCompleted(), StorePreviousCellId(), SwitchToState(), ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ToString(), ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface.
msg | LteRrcSap::RrcConnectionReestablishment |
Definition at line 1156 of file lte-ue-rrc.cc.
References CONNECTED_REESTABLISHING, m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ToString().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.
msg | LteRrcSap::RrcConnectionReestablishmentReject |
Definition at line 1179 of file lte-ue-rrc.cc.
References CONNECTED_REESTABLISHING, m_asSapUser, m_rnti, m_state, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_FATAL_ERROR, NS_LOG_FUNCTION, and ToString().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface.
msg | the LteRrcSap::RrcConnectionReject |
Definition at line 1218 of file lte-ue-rrc.cc.
References ns3::EventId::Cancel(), IDLE_CAMPED_NORMALLY, m_asSapUser, m_cmacSapProvider, m_connectionTimeout, m_hasReceivedSib2, m_numberOfComponentCarriers, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_LOG_FUNCTION, and SwitchToState().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface.
msg | LteRrcSap::RrcConnectionRelease |
Definition at line 1201 of file lte-ue-rrc.cc.
References CONNECTED_PHY_PROBLEM, m_asSapUser, m_lastRrcTransactionIdentifier, m_leaveConnectedMode, m_rnti, m_rrcSapUser, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionRelease::rrcTransactionIdentifier, ns3::LteUeRrcSapUser::SendIdealUeContextRemoveRequest(), and SwitchToState().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface.
msg | the LteRrcSap::RrcConnectionSetup |
Definition at line 1021 of file lte-ue-rrc.cc.
References ApplyRadioResourceConfigDedicated(), ns3::EventId::Cancel(), CONNECTED_NORMALLY, IDLE_CONNECTING, m_asSapUser, m_cellId, m_cmacSapProvider, m_connectionEstablishedTrace, m_connectionTimeout, m_connEstFailCount, m_imsi, m_leaveConnectedMode, m_noOfSyncIndications, m_rnti, m_rrcSapUser, m_state, ns3::LteAsSapUser::NotifyConnectionSuccessful(), NS_ABORT_MSG_IF, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionSetup::radioResourceConfigDedicated, ns3::LteRrcSap::RrcConnectionSetup::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionSetupCompleted::rrcTransactionIdentifier, ns3::LteUeRrcSapUser::SendRrcConnectionSetupCompleted(), SwitchToState(), and ToString().
|
private |
Part of the RRC protocol.
Implement the LteUeRrcSapProvider::RecvSystemInformation interface.
msg | the LteRrcSap::SystemInformation |
Definition at line 969 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, ns3::LteRrcSap::SystemInformation::haveSib2, IDLE_CAMPED_NORMALLY, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_WAIT_SIB2, m_cellId, m_cmacSapProvider, m_connectionPending, m_connEstFailCountLimit, m_cphySapProvider, m_hasReceivedSib2, m_imsi, m_rnti, m_sib2ReceivedTrace, m_state, m_ulBandwidth, m_ulEarfcn, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, two-ray-to-three-gpp-ch-calibration::rc, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SystemInformation::sib2, StartConnection(), ns3::LteRrcSap::RachConfigCommon::txFailParam, ns3::LteRrcSap::FreqInfo::ulBandwidth, and ns3::LteRrcSap::FreqInfo::ulCarrierFreq.
|
private |
Receive system information block type 1 function.
cellId | the cell ID |
msg | LteRrcSap::SystemInformationBlockType1 |
Definition at line 872 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, EvaluateCellForSelection(), IDLE_CAMPED_NORMALLY, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, m_cellId, m_hasReceivedSib1, m_imsi, m_lastSib1, m_rnti, m_sib1ReceivedTrace, m_state, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
|
private |
Report UE measurements function.
params | LteUeCphySapUser::UeMeasurementsParameters |
Definition at line 912 of file lte-ue-rrc.cc.
References CONNECTED_NORMALLY, IDLE_CELL_SEARCH, m_state, m_varMeasConfig, ns3::LteUeRrc::VarMeasConfig::measIdList, MeasurementReportTriggering(), NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, SaveUeMeasurements(), and SynchronizeToStrongestCell().
|
private |
Do reset sync indication counter function.
Reset the sync indication counter if the Qin or Qout condition at PHY is not fulfilled for the number of consecutive frames.
Definition at line 3327 of file lte-ue-rrc.cc.
References m_imsi, m_noOfSyncIndications, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Send data function.
packet | the packet |
bid | the BID |
Definition at line 586 of file lte-ue-rrc.cc.
References Bid2Drbid(), ns3::Packet::GetSize(), m_drbMap, m_rnti, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Set CSG white list function.
csgId | CSG ID |
Definition at line 744 of file lte-ue-rrc.cc.
References m_csgWhiteList, m_imsi, and NS_LOG_FUNCTION.
|
private |
RRC CCM SAP USER Method.
noOfComponentCarriers | the number of component carriers |
Definition at line 1232 of file lte-ue-rrc.cc.
References m_numberOfComponentCarriers, and NS_LOG_FUNCTION.
|
private |
Set temporary cell rnti function.
rnti | RNTI |
Definition at line 651 of file lte-ue-rrc.cc.
References m_cphySapProvider, m_rnti, m_srb0, and NS_LOG_FUNCTION.
Referenced by ns3::UeMemberLteUeCmacSapUser::SetTemporaryCellRnti().
|
private |
Start cell selection function.
dlEarfcn | the DL EARFCN |
Definition at line 751 of file lte-ue-rrc.cc.
References IDLE_CELL_SEARCH, IDLE_START, m_cphySapProvider, m_dlEarfcn, m_imsi, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, SwitchToState(), and ToString().
Referenced by LeaveConnectedMode().
|
private |
Performs cell selection evaluation to the current serving cell.
This function assumes that the required information for the evaluation procedure have been readily gathered, such as measurement results, MIB, and SIB1. Please refer to the LTE module's Design Documentation for more details on the evaluation process.
If the cell passes the evaluation, the UE will immediately camp to it. Otherwise, the UE will pick another cell and restart the cell selection procedure.
Definition at line 1280 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, ns3::LteRrcSap::SystemInformationBlockType1::cellSelectionInfo, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, DoConnect(), IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_WAIT_SIB1, ns3::EutranMeasurementMapping::IeValue2ActualQRxLevMin(), m_acceptableCell, m_cellId, m_connectionPending, m_cphySapProvider, m_csgWhiteList, m_dlBandwidth, m_dlEarfcn, m_hasReceivedMib, m_hasReceivedSib1, m_imsi, m_initialCellSelectionEndErrorTrace, m_initialCellSelectionEndOkTrace, m_lastSib1, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::CellSelectionInfo::qRxLevMin, SwitchToState(), SynchronizeToStrongestCell(), and ToString().
Referenced by DoRecvSystemInformationBlockType1().
LteAsSapProvider * ns3::LteUeRrc::GetAsSapProvider | ( | ) |
Definition at line 422 of file lte-ue-rrc.cc.
References m_asSapProvider.
uint16_t ns3::LteUeRrc::GetCellId | ( | ) | const |
Definition at line 462 of file lte-ue-rrc.cc.
References m_cellId, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
uint8_t ns3::LteUeRrc::GetDlBandwidth | ( | ) | const |
Definition at line 490 of file lte-ue-rrc.cc.
References m_dlBandwidth, and NS_LOG_FUNCTION.
uint32_t ns3::LteUeRrc::GetDlEarfcn | ( | ) | const |
Definition at line 497 of file lte-ue-rrc.cc.
References m_dlEarfcn.
uint64_t ns3::LteUeRrc::GetImsi | ( | ) | const |
Definition at line 449 of file lte-ue-rrc.cc.
References m_imsi.
LteUeCcmRrcSapUser * ns3::LteUeRrc::GetLteCcmRrcSapUser | ( | ) |
Get the Component Carrier Management SAP offered by this RRC.
Definition at line 409 of file lte-ue-rrc.cc.
References m_ccmRrcSapUser, and NS_LOG_FUNCTION.
LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser | ( | ) |
This function is overloaded to maintain backward compatibility.
Definition at line 367 of file lte-ue-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser | ( | uint8_t | index | ) |
This function is overloaded to maintain backward compatibility.
index | the index |
Definition at line 374 of file lte-ue-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteUeCphySapUser * ns3::LteUeRrc::GetLteUeCphySapUser | ( | ) |
Definition at line 339 of file lte-ue-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteUeCphySapUser * ns3::LteUeRrc::GetLteUeCphySapUser | ( | uint8_t | index | ) |
index | the index |
Definition at line 346 of file lte-ue-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteUeRrcSapProvider * ns3::LteUeRrc::GetLteUeRrcSapProvider | ( | ) |
Definition at line 388 of file lte-ue-rrc.cc.
References m_rrcSapProvider, and NS_LOG_FUNCTION.
uint16_t ns3::LteUeRrc::GetPreviousCellId | ( | ) | const |
Get the previous cell id.
Definition at line 517 of file lte-ue-rrc.cc.
References m_previousCellId, and NS_LOG_FUNCTION.
uint16_t ns3::LteUeRrc::GetRnti | ( | ) | const |
Definition at line 455 of file lte-ue-rrc.cc.
References m_rnti, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
LteUeRrc::State ns3::LteUeRrc::GetState | ( | ) | const |
Definition at line 510 of file lte-ue-rrc.cc.
References m_state, and NS_LOG_FUNCTION.
|
static |
Get the type ID.
Definition at line 180 of file lte-ue-rrc.cc.
References GetCellId(), GetRnti(), m_connectionEstablishedTrace, m_connectionReconfigurationTrace, m_connectionTimeoutTrace, m_drbCreatedTrace, m_drbMap, m_handoverEndErrorTrace, m_handoverEndOkTrace, m_handoverStartTrace, m_initialCellSelectionEndErrorTrace, m_initialCellSelectionEndOkTrace, m_mibReceivedTrace, m_n310, m_n311, m_phySyncDetectionTrace, m_radioLinkFailureTrace, m_randomAccessErrorTrace, m_randomAccessSuccessfulTrace, m_sCarrierConfiguredTrace, m_sib1ReceivedTrace, m_sib2ReceivedTrace, m_srb0, m_srb1, m_srb1CreatedTrace, m_stateTransitionTrace, m_t300, m_t310, ns3::MakeObjectMapAccessor(), ns3::MakePointerAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MilliSeconds(), and ns3::TypeId::SetParent().
uint8_t ns3::LteUeRrc::GetUlBandwidth | ( | ) | const |
Definition at line 483 of file lte-ue-rrc.cc.
References m_ulBandwidth, and NS_LOG_FUNCTION.
uint32_t ns3::LteUeRrc::GetUlEarfcn | ( | ) | const |
Definition at line 503 of file lte-ue-rrc.cc.
References m_ulEarfcn, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::InitializeSap | ( | ) |
Initialize SAP.
Definition at line 563 of file lte-ue-rrc.cc.
References m_cmacSapProvider, m_cmacSapUser, m_cphySapProvider, m_cphySapUser, m_numberOfComponentCarriers, ns3::MAX_NO_CC, ns3::MIN_NO_CC, and UeMemberLteUeCmacSapUser.
bool ns3::LteUeRrc::IsServingCell | ( | uint16_t | cellId | ) | const |
cellId | cell identifier |
Definition at line 469 of file lte-ue-rrc.cc.
References m_cphySapProvider, and NS_LOG_FUNCTION.
|
private |
Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cause.
For example, the UE is move to the IDLE_START state upon radio link failure. At RRC, all radio bearers except SRB 0 are removed, measurement reports are cleared and the appropriate flags are reset to their default values. This method in turn triggers the reset methods of UE PHY and MAC layers.
Definition at line 3130 of file lte-ue-rrc.cc.
References DoStartCellSelection(), IDLE_START, m_bid2DrbidMap, m_ccmRrcSapProvider, m_cellId, m_cmacSapProvider, m_cphySapProvider, m_dlEarfcn, m_drbMap, m_hasReceivedMib, m_hasReceivedSib1, m_hasReceivedSib2, m_imsi, m_leaveConnectedMode, m_numberOfComponentCarriers, m_rnti, m_srb0, m_srb1, m_storedMeasValues, m_varMeasConfig, ns3::LteUeRrc::VarMeasConfig::measIdList, NS_LOG_FUNCTION, ns3::LteUeCcmRrcSapProvider::Reset(), ResetRlfParams(), StorePreviousCellId(), SwitchToState(), and VarMeasReportListClear().
Referenced by DoDisconnect().
|
private |
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result.
measId | the measurement identity to be evaluated |
Implements Section 5.5.4.1 "Measurement report triggering - General" of 3GPP TS 36.331. This function take into use the latest measurement results and evaluate them against the entering condition and the leaving condition of the measurement identity's reporting criteria. The evaluation also take into account other defined criteria, such as hysteresis and time-to-trigger.
The entering and leaving condition to be evaluated are determined by the event type of the measurement identity's reporting criteria. As defined in LteRrcSap::ReportConfigEutra, there 5 supported events. The gore details of these events can be found in Section 5.5.4 of 3GPP TS 36.331.
An applicable entering condition (i.e., the condition evaluates to true) will insert a new reporting entry to m_varMeasReportList, so measurement reports would be produced and submitted to eNodeB. On the other hand, an applicable leaving condition will remove the related reporting entry from m_varMeasReportList, so submission of related measurement reports to eNodeB will be suspended.
Definition at line 1910 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::ReportConfigEutra::a3Offset, CancelEnteringTrigger(), CancelLeavingTrigger(), ns3::LteRrcSap::MeasObjectEutra::carrierFreq, ns3::LteRrcSap::ThresholdEutra::choice, ns3::LteUeRrc::PendingTrigger_t::concernedCells, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::ReportConfigEutra::EVENT_A1, ns3::LteRrcSap::ReportConfigEutra::EVENT_A2, ns3::LteRrcSap::ReportConfigEutra::EVENT_A3, ns3::LteRrcSap::ReportConfigEutra::EVENT_A4, ns3::LteRrcSap::ReportConfigEutra::EVENT_A5, ns3::LteRrcSap::ReportConfigEutra::eventId, ns3::LteRrcSap::ReportConfigEutra::hysteresis, ns3::EutranMeasurementMapping::IeValue2ActualA3Offset(), ns3::EutranMeasurementMapping::IeValue2ActualHysteresis(), m_cellId, m_cphySapProvider, m_enteringTriggerQueue, m_leavingTriggerQueue, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::PendingTrigger_t::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::MilliSeconds(), NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::MeasObjectEutra::offsetFreq, ns3::LteRrcSap::ThresholdEutra::range, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::reportOnLeave, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::EutranMeasurementMapping::RsrpRange2Dbm(), ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::EutranMeasurementMapping::RsrqRange2Db(), ns3::Simulator::Schedule(), ns3::LteRrcSap::ReportConfigEutra::threshold1, ns3::LteRrcSap::ReportConfigEutra::threshold2, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRP, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ, ns3::LteUeRrc::PendingTrigger_t::timer, ns3::LteRrcSap::ReportConfigEutra::timeToTrigger, ns3::LteRrcSap::ReportConfigEutra::triggerQuantity, ns3::LteRrcSap::ReportConfigEutra::triggerType, VarMeasReportListAdd(), and VarMeasReportListErase().
Referenced by DoReportUeMeasurements().
|
private |
Radio link failure detected function.
Upon detection of radio link failure, the UE is reverted back to idle state and the UE context at eNodeB and EPC is deleted, thus releasing the RRC connection. The eNodeB is notified in an ideal way since there is no radio link failure detection implemented at the eNodeB. If the deletion process is not synchronous, then errors occur due to triggering of assert messages.
Definition at line 3283 of file lte-ue-rrc.cc.
References CONNECTED_PHY_PROBLEM, m_asSapUser, m_cellId, m_imsi, m_radioLinkFailureTrace, m_rnti, m_rrcSapUser, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, ns3::LteUeRrcSapUser::SendIdealUeContextRemoveRequest(), and SwitchToState().
Referenced by DoNotifyOutOfSync().
|
private |
Reset radio link failure parameters.
RLF timers and counters should be rest upon:
Inside this method the UE RRC also instructs the UE PHY to reset the RLF parameters so, it can start RLF detection again.
Definition at line 3337 of file lte-ue-rrc.cc.
References ns3::EventId::Cancel(), m_cphySapProvider, m_imsi, m_noOfSyncIndications, m_radioLinkFailureDetected, and NS_LOG_FUNCTION.
Referenced by DoNotifyInSync(), DoRecvRrcConnectionReconfiguration(), and LeaveConnectedMode().
|
private |
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functions.
cellId | the cell ID of the measured cell |
rsrp | measured RSRP value to be saved (in dBm) |
rsrq | measured RSRQ value to be saved (in dB) |
useLayer3Filtering | |
componentCarrierId |
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.
Definition at line 1852 of file lte-ue-rrc.cc.
References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, ns3::LteUeRrc::MeasValues::carrierFreq, m_cphySapProvider, m_imsi, m_state, m_storedMeasValues, m_varMeasConfig, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUeRrc::MeasValues::rsrp, ns3::LteUeRrc::MeasValues::rsrq, and ToString().
Referenced by DoReportUeMeasurements().
|
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.
measId | the 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:
The RSRP and RSRQ measurement results included in the report are expressed in 3GPP-specified range format. They are converted from dBm and dB units using EutranMeasurementMapping::Dbm2RsrpRange and EutranMeasurementMapping::Db2RsrqRange functions.
Measurement report is submitted to the serving eNodeB through the RRC protocol. The LteUeRrcSapUser::SendMeasurementReport method of the UE RRC SAP facilitates this submission.
After the submission, the function will repeat itself after a certain interval. The interval length may vary from 120 ms to 60 minutes and is determined by the report interval parameter specified by the measurement identity's reporting configuration.
Definition at line 2930 of file lte-ue-rrc.cc.
References ns3::EutranMeasurementMapping::Db2RsrqRange(), ns3::EutranMeasurementMapping::Dbm2RsrpRange(), ns3::LteRrcSap::MeasResultEutra::haveCgiInfo, ns3::LteRrcSap::MeasResultServFreq::haveMeasResultBestNeighCell, ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, ns3::LteRrcSap::MeasResultServFreq::haveMeasResultSCell, ns3::LteRrcSap::MeasResults::haveMeasResultServFreqList, ns3::LteRrcSap::MeasResultEutra::haveRsrpResult, ns3::LteRrcSap::MeasResultEutra::haveRsrqResult, m_cellId, m_cphySapProvider, m_numberOfComponentCarriers, m_rrcSapUser, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteRrcSap::ReportConfigEutra::maxReportCells, ns3::LteRrcSap::MeasResults::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasResults::measResultPCell, ns3::LteRrcSap::MeasurementReport::measResults, ns3::LteRrcSap::MeasResultServFreq::measResultSCell, ns3::LteRrcSap::MeasResults::measResultServFreqList, ns3::MilliSeconds(), ns3::LteRrcSap::ReportConfigEutra::MIN1, ns3::LteRrcSap::ReportConfigEutra::MIN12, ns3::LteRrcSap::ReportConfigEutra::MIN30, ns3::LteRrcSap::ReportConfigEutra::MIN6, ns3::LteRrcSap::ReportConfigEutra::MIN60, ns3::LteRrcSap::ReportConfigEutra::MS1024, ns3::LteRrcSap::ReportConfigEutra::MS10240, ns3::LteRrcSap::ReportConfigEutra::MS120, ns3::LteRrcSap::ReportConfigEutra::MS2048, ns3::LteRrcSap::ReportConfigEutra::MS240, ns3::LteRrcSap::ReportConfigEutra::MS480, ns3::LteRrcSap::ReportConfigEutra::MS5120, ns3::LteRrcSap::ReportConfigEutra::MS640, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, ns3::LteRrcSap::MeasResultEutra::physCellId, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::reportInterval, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::LteRrcSap::MeasResultPCell::rsrpResult, ns3::LteRrcSap::MeasResultEutra::rsrpResult, ns3::LteRrcSap::MeasResultSCell::rsrpResult, ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::LteRrcSap::MeasResultPCell::rsrqResult, ns3::LteRrcSap::MeasResultEutra::rsrqResult, ns3::LteRrcSap::MeasResultSCell::rsrqResult, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::LteUeRrcSapUser::SendMeasurementReport(), ns3::LteRrcSap::MeasResultServFreq::servFreqId, and ns3::LteRrcSap::ReportConfigEutra::triggerQuantity.
Referenced by VarMeasReportListAdd(), and VarMeasReportListErase().
void ns3::LteUeRrc::SetAsSapUser | ( | LteAsSapUser * | s | ) |
Set the AS SAP user to interact with the NAS entity.
s | the AS SAP user |
Definition at line 416 of file lte-ue-rrc.cc.
References m_asSapUser.
void ns3::LteUeRrc::SetImsi | ( | uint64_t | imsi | ) |
imsi | the unique UE identifier |
Definition at line 428 of file lte-ue-rrc.cc.
References m_cmacSapProvider, m_cphySapProvider, m_imsi, m_numberOfComponentCarriers, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteCcmRrcSapProvider | ( | LteUeCcmRrcSapProvider * | s | ) |
set the Component Carrier Management SAP this RRC should interact with
s | the Component Carrier Management SAP Provider to be used by this RRC |
Definition at line 402 of file lte-ue-rrc.cc.
References m_ccmRrcSapProvider, and NS_LOG_FUNCTION.
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.
s | the MAC SAP provider that will be used by all newly created RLC instances |
Definition at line 395 of file lte-ue-rrc.cc.
References m_macSapProvider, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteUeCmacSapProvider | ( | LteUeCmacSapProvider * | s | ) |
set the CMAC SAP this RRC should interact with
This function is overloaded to maintain backward compatibility
s | the CMAC SAP Provider to be used by this RRC |
Definition at line 353 of file lte-ue-rrc.cc.
References m_cmacSapProvider, and NS_LOG_FUNCTION.
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
s | the CMAC SAP Provider to be used by this RRC |
index | the index |
Definition at line 360 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
s | the CPHY SAP Provider |
Definition at line 325 of file lte-ue-rrc.cc.
References m_cphySapProvider, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteUeCphySapProvider | ( | LteUeCphySapProvider * | s, |
uint8_t | index | ||
) |
set the CPHY SAP this RRC should use to interact with the PHY
s | the CPHY SAP Provider |
index | the index |
Definition at line 332 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
s | the RRC SAP User to be used by this RRC |
Definition at line 381 of file lte-ue-rrc.cc.
References m_rrcSapUser, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetUseRlcSm | ( | bool | val | ) |
val | true if RLC SM is to be used, false if RLC UM/AM are to be used |
Definition at line 524 of file lte-ue-rrc.cc.
References m_useRlcSm, and NS_LOG_FUNCTION.
|
private |
Start connection function.
Definition at line 3119 of file lte-ue-rrc.cc.
References IDLE_RANDOM_ACCESS, m_cmacSapProvider, m_connectionPending, m_hasReceivedMib, m_hasReceivedSib2, m_imsi, NS_ASSERT, NS_LOG_FUNCTION, and SwitchToState().
Referenced by DoRecvSystemInformation(), and SwitchToState().
void ns3::LteUeRrc::StorePreviousCellId | ( | uint16_t | cellId | ) |
Store the previous cell id.
cellId | The cell id of the previous cell the UE was attached to |
Definition at line 442 of file lte-ue-rrc.cc.
References m_previousCellId, and NS_LOG_FUNCTION.
Referenced by DoRecvRrcConnectionReconfiguration(), and LeaveConnectedMode().
|
private |
Switch the UE RRC to the given state.
s | the destination state |
Definition at line 3226 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_START, IDLE_WAIT_MIB, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_SIB1, IDLE_WAIT_SIB2, m_cellId, m_connectionPending, m_hasReceivedSib2, m_imsi, m_leaveConnectedMode, m_rnti, m_state, m_stateTransitionTrace, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, StartConnection(), and ToString().
Referenced by ConnectionTimeout(), DoConnect(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReject(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), DoStartCellSelection(), EvaluateCellForSelection(), LeaveConnectedMode(), RadioLinkFailureDetected(), StartConnection(), and SynchronizeToStrongestCell().
|
private |
Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it.
Definition at line 1239 of file lte-ue-rrc.cc.
References IDLE_CELL_SEARCH, IDLE_WAIT_MIB_SIB1, m_acceptableCell, m_cphySapProvider, m_dlEarfcn, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, and SwitchToState().
Referenced by DoReportUeMeasurements(), and EvaluateCellForSelection().
|
static |
s | The UE RRC state. |
Definition at line 3346 of file lte-ue-rrc.cc.
References ns3::g_ueRrcStateName.
Referenced by ApplyRadioResourceConfigDedicated(), DoConnect(), DoDisconnect(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReestablishment(), DoRecvRrcConnectionReestablishmentReject(), DoRecvRrcConnectionSetup(), DoStartCellSelection(), EvaluateCellForSelection(), SaveUeMeasurements(), and SwitchToState().
|
private |
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB.
measId | the measurement identity which the new reporting entry will be based upon |
enteringCells | the 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. |
Definition at line 2790 of file lte-ue-rrc.cc.
References CancelEnteringTrigger(), m_enteringTriggerQueue, m_varMeasReportList, ns3::LteUeRrc::VarMeasReport::measId, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), SendMeasurementReport(), and ns3::UE_MEASUREMENT_REPORT_DELAY.
Referenced by MeasurementReportTriggering().
|
private |
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
measId | the measurement identity to be removed from m_varMeasReportList, must already exists there, otherwise an error would be raised |
Any events or triggers related with this measurement identity will be canceled as well.
Definition at line 2912 of file lte-ue-rrc.cc.
References CancelEnteringTrigger(), CancelLeavingTrigger(), m_varMeasReportList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ApplyMeasConfig(), DoNotifyRandomAccessSuccessful(), and LeaveConnectedMode().
|
private |
Remove some cells from an existing reporting entry in m_varMeasReportList.
measId | the measurement identity to be removed from m_varMeasReportList, must already exists there, otherwise an error would be raised |
leavingCells | the cells which are about to be removed |
reportOnLeave | when true, will make the function send one last measurement report to eNodeB before removing it |
Definition at line 2857 of file lte-ue-rrc.cc.
References CancelLeavingTrigger(), m_leavingTriggerQueue, m_varMeasReportList, NS_ASSERT, NS_LOG_FUNCTION, and SendMeasurementReport().
Referenced by MeasurementReportTriggering().
|
friend |
allow LtePdcpSpecificLtePdcpSapUser<LteUeRrc> class friend access
Definition at line 81 of file lte-ue-rrc.h.
Referenced by LteUeRrc().
|
friend |
allow MemberLteAsSapProvider<LteUeRrc> class friend access
Definition at line 81 of file lte-ue-rrc.h.
Referenced by LteUeRrc().
|
friend |
allow MemberLteUeCcmRrcSapUser<LteUeRrc> class friend access
Definition at line 81 of file lte-ue-rrc.h.
Referenced by LteUeRrc().
|
friend |
allow MemberLteUeCphySapUser<LteUeRrc> class friend access
Definition at line 81 of file lte-ue-rrc.h.
|
friend |
allow MemberLteUeRrcSapProvider<LteUeRrc> class friend access
Definition at line 81 of file lte-ue-rrc.h.
Referenced by LteUeRrc().
|
friend |
allow UeMemberLteUeCmacSapUser class friend access
Definition at line 79 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), and InitializeSap().
|
friend |
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition at line 81 of file lte-ue-rrc.h.
|
private |
List of cell ID of acceptable cells for cell selection that have been detected.
Definition at line 946 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), and SynchronizeToStrongestCell().
|
private |
AS SAP provider.
Definition at line 771 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), DoDispose(), and GetAsSapProvider().
|
private |
AS SAP user.
Definition at line 772 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), DoNotifyRandomAccessFailed(), DoReceivePdcpSdu(), DoRecvRrcConnectionReestablishmentReject(), DoRecvRrcConnectionReject(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), RadioLinkFailureDetected(), and SetAsSapUser().
|
private |
bid to DR bid map
Definition at line 757 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), Bid2Drbid(), and LeaveConnectedMode().
|
private |
Interface to the LteUeComponentCarrierManage instance.
CCM RRC SAP provider
Definition at line 777 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), LeaveConnectedMode(), and SetLteCcmRrcSapProvider().
|
private |
CCM RRC SAP user.
Definition at line 778 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), DoDispose(), and GetLteCcmRrcSapUser().
|
private |
The CellId
attribute.
Serving cell identifier.
Definition at line 792 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoForceCampedOnEnb(), DoNotifyInSync(), DoNotifyOutOfSync(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), EvaluateCellForSelection(), GetCellId(), LeaveConnectedMode(), MeasurementReportTriggering(), RadioLinkFailureDetected(), SendMeasurementReport(), and SwitchToState().
|
private |
UE CMac SAP provider.
Definition at line 763 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), ApplyRadioResourceConfigDedicated(), ApplyRadioResourceConfigDedicatedSecondaryCarrier(), ConnectionTimeout(), DoDispose(), DoInitialize(), DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReject(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), InitializeSap(), LeaveConnectedMode(), SetImsi(), SetLteUeCmacSapProvider(), and StartConnection().
|
private |
UE CMac SAP user.
Definition at line 762 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), DoDispose(), GetLteUeCmacSapUser(), and InitializeSap().
|
private |
The ConnectionEstablished
trace source.
Fired upon successful RRC connection establishment. Exporting IMSI, cell ID, and RNTI.
Definition at line 877 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionSetup(), and GetTypeId().
|
private |
True if a connection request by upper layers is pending.
Definition at line 934 of file lte-ue-rrc.h.
Referenced by DoConnect(), DoRecvSystemInformation(), EvaluateCellForSelection(), StartConnection(), and SwitchToState().
|
private |
The ConnectionReconfiguration
trace source.
Fired upon RRC connection reconfiguration. Exporting IMSI, cell ID, and RNTI.
Definition at line 887 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().
|
private |
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes longer than T300.
Definition at line 1232 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReject(), and DoRecvRrcConnectionSetup().
|
private |
The ConnectionTimeout
trace source.
Fired upon timeout RRC connection establishment because of T300. Exporting IMSI, cell ID, and RNTI.
Definition at line 882 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), and GetTypeId().
|
private |
the counter to count T300 timer expiration
Definition at line 1284 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), and DoRecvRrcConnectionSetup().
|
private |
the counter value for T300 timer expiration received from the eNB
Definition at line 1281 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), and DoRecvSystemInformation().
|
private |
UE CPhy SAP provider.
Definition at line 760 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ApplyRadioResourceConfigDedicatedSecondaryCarrier(), DoDispose(), DoForceCampedOnEnb(), DoNotifyOutOfSync(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvSystemInformation(), DoSetTemporaryCellRnti(), DoStartCellSelection(), EvaluateCellForSelection(), InitializeSap(), IsServingCell(), LeaveConnectedMode(), MeasurementReportTriggering(), ResetRlfParams(), SaveUeMeasurements(), SendMeasurementReport(), SetImsi(), SetLteUeCphySapProvider(), and SynchronizeToStrongestCell().
|
private |
UE CPhy SAP user.
Definition at line 759 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), DoDispose(), GetLteUeCphySapUser(), and InitializeSap().
|
private |
List of CSG ID which this UE entity has access to.
Definition at line 949 of file lte-ue-rrc.h.
Referenced by DoSetCsgWhiteList(), and EvaluateCellForSelection().
|
private |
Downlink bandwidth in RBs.
Definition at line 823 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), and GetDlBandwidth().
|
private |
Downlink carrier frequency.
Definition at line 826 of file lte-ue-rrc.h.
Referenced by DoForceCampedOnEnb(), DoStartCellSelection(), EvaluateCellForSelection(), GetDlEarfcn(), LeaveConnectedMode(), and SynchronizeToStrongestCell().
|
private |
The DrbCreated
trace source.
Fired when DRB is created, i.e. the RLC and PDCP entities are created for one logical channel. Exporting IMSI, cell ID, RNTI, LCID.
Definition at line 920 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), and GetTypeId().
|
private |
The DataRadioBearerMap
attribute.
List of UE RadioBearerInfo for Data Radio Bearers by LCID.
Definition at line 811 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoDispose(), DoRecvRrcConnectionReconfiguration(), DoSendData(), GetTypeId(), and LeaveConnectedMode().
|
private |
DRB PDCP SAP user.
Definition at line 769 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), ApplyRadioResourceConfigDedicated(), and DoDispose().
|
private |
List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger.
The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and insert a reporting entry to m_varMeasReportList.
Definition at line 1127 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), CancelEnteringTrigger(), MeasurementReportTriggering(), and VarMeasReportListAdd().
|
private |
The HandoverEndError
trace source.
Fired upon failure of a handover procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 902 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().
|
private |
The HandoverEndOk
trace source.
Fired upon successful termination of a handover procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 897 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
The HandoverStart
trace source.
Fired upon start of a handover procedure. Exporting IMSI, source cell ID, RNTI, and target cell ID.
Definition at line 892 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().
|
private |
True if MIB was received for the current cell.
Definition at line 936 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), LeaveConnectedMode(), and StartConnection().
|
private |
True if SIB1 was received for the current cell.
Definition at line 938 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), EvaluateCellForSelection(), and LeaveConnectedMode().
|
private |
True if SIB2 was received for the current cell.
Definition at line 940 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), DoRecvRrcConnectionReject(), DoRecvSystemInformation(), LeaveConnectedMode(), StartConnection(), and SwitchToState().
|
private |
The unique UE identifier.
Definition at line 784 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoConnect(), DoForceCampedOnEnb(), DoNotifyInSync(), DoNotifyOutOfSync(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), DoResetSyncIndicationCounter(), DoSetCsgWhiteList(), DoStartCellSelection(), EvaluateCellForSelection(), GetImsi(), LeaveConnectedMode(), RadioLinkFailureDetected(), ResetRlfParams(), SaveUeMeasurements(), SetImsi(), StartConnection(), and SwitchToState().
|
private |
The InitialCellSelectionEndError
trace source.
Fired upon failed initial cell selection procedure. Exporting IMSI and the cell ID under evaluation.
Definition at line 861 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), and GetTypeId().
|
private |
The InitialCellSelectionEndOk
trace source.
Fired upon successful initial cell selection procedure. Exporting IMSI and the selected cell ID.
Definition at line 856 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), and GetTypeId().
|
private |
last RRC transaction identifier
Definition at line 819 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), and DoRecvRrcConnectionRelease().
|
private |
Stored content of the last SIB1 received.
Definition at line 943 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().
|
private |
true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e.
T310 has expired
Definition at line 1276 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessFailed(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), LeaveConnectedMode(), and SwitchToState().
|
private |
List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger.
The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and remove the associated reporting entry from m_varMeasReportList.
Definition at line 1139 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), CancelLeavingTrigger(), MeasurementReportTriggering(), and VarMeasReportListErase().
|
private |
MAC SAP provider.
Definition at line 768 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), and SetLteMacSapProvider().
|
private |
The MibReceived
trace source.
Fired upon reception of Master Information Block. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.
Definition at line 834 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), and GetTypeId().
|
private |
The 'N310' attribute.
This specifies the maximum consecutive out-of-sync indications from lower layers.
Definition at line 1254 of file lte-ue-rrc.h.
Referenced by DoNotifyOutOfSync(), and GetTypeId().
|
private |
The 'N311' attribute.
This specifies the minimum consecutive in-sync indications from lower layers.
Definition at line 1260 of file lte-ue-rrc.h.
Referenced by DoNotifyInSync(), and GetTypeId().
|
private |
number of in-sync or out-of-sync indications coming from PHY layer
Definition at line 1273 of file lte-ue-rrc.h.
Referenced by DoNotifyInSync(), DoNotifyOutOfSync(), DoRecvRrcConnectionSetup(), DoResetSyncIndicationCounter(), and ResetRlfParams().
uint16_t ns3::LteUeRrc::m_numberOfComponentCarriers |
The number of component carriers.
Definition at line 1343 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoDispose(), DoRecvRrcConnectionReject(), DoSetNumberOfComponentCarriers(), InitializeSap(), LeaveConnectedMode(), SendMeasurementReport(), and SetImsi().
|
private |
the PDSCH config dedicated
Definition at line 821 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated().
|
private |
The 'PhySyncDetection' trace source.
Fired when UE RRC receives in-sync or out-of-sync indications from UE PHY
Definition at line 926 of file lte-ue-rrc.h.
Referenced by DoNotifyInSync(), DoNotifyOutOfSync(), and GetTypeId().
|
private |
the cell id of the previous cell UE was attached to
Definition at line 1279 of file lte-ue-rrc.h.
Referenced by GetPreviousCellId(), and StorePreviousCellId().
|
private |
Time limit (given by m_t310) before the radio link is considered to have failed.
It is set upon detecting physical layer problems i.e. upon receiving N310 consecutive out-of-sync indications from lower layers. Calling LteUeRrc::RadioLinkFailureDetected() when it expires. It is cancelled upon receiving N311 consecutive in-sync indications. Upon expiry, the UE transitions to RRC_IDLE and no RRC connection re-establishment is initiated.
Definition at line 1271 of file lte-ue-rrc.h.
Referenced by DoNotifyOutOfSync(), DoRecvRrcConnectionReconfiguration(), and ResetRlfParams().
|
private |
The 'RadioLinkFailure' trace source.
Fired when T310 timer expires.
Definition at line 931 of file lte-ue-rrc.h.
Referenced by GetTypeId(), and RadioLinkFailureDetected().
|
private |
The RandomAccessError
trace source.
Fired upon failure of the random access procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 872 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().
|
private |
The RandomAccessSuccessful
trace source.
Fired upon successful completion of the random access procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 867 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
The C-RNTI
attribute.
Cell Radio Network Temporary Identifier.
Definition at line 788 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ApplyRadioResourceConfigDedicatedSecondaryCarrier(), ConnectionTimeout(), DoCompleteSetup(), DoInitialize(), DoNotifyInSync(), DoNotifyOutOfSync(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReestablishment(), DoRecvRrcConnectionReestablishmentReject(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), DoSendData(), DoSetTemporaryCellRnti(), GetRnti(), LeaveConnectedMode(), RadioLinkFailureDetected(), and SwitchToState().
|
private |
RRC SAP provider.
Definition at line 766 of file lte-ue-rrc.h.
Referenced by LteUeRrc(), DoDispose(), and GetLteUeRrcSapProvider().
|
private |
RRC SAP user.
Definition at line 765 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), RadioLinkFailureDetected(), SendMeasurementReport(), and SetLteUeRrcSapUser().
|
private |
The SCarrierConfigured
trace source.
Fired after the configuration of secondary carriers received through RRC Connection Reconfiguration message.
Definition at line 908 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicatedSecondaryCarrier(), and GetTypeId().
|
private |
Secondary carriers.
Definition at line 828 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicatedSecondaryCarrier().
|
private |
The Sib1Received
trace source.
Fired upon reception of System Information Block Type 1. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.
Definition at line 840 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), and GetTypeId().
|
private |
The Sib2Received
trace source.
Fired upon reception of System Information Block Type 2. Exporting IMSI, the serving cell ID, RNTI.
Definition at line 845 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformation(), and GetTypeId().
|
private |
The Srb0
attribute.
SignalingRadioBearerInfo for SRB0.
Definition at line 797 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), DoSetTemporaryCellRnti(), GetTypeId(), and LeaveConnectedMode().
|
private |
The Srb1
attribute.
SignalingRadioBearerInfo for SRB1.
Definition at line 801 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoRecvRrcConnectionReconfiguration(), GetTypeId(), and LeaveConnectedMode().
|
private |
The Srb1Created
trace source.
Fired when SRB1 is created, i.e. the RLC and PDCP entities are created for logical channel = 1. Exporting IMSI, cell ID, and RNTI
Definition at line 914 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), and GetTypeId().
|
private |
SRB1 configuration before RRC connection reconfiguration.
To be deleted soon by DisposeOldSrb1().
Definition at line 806 of file lte-ue-rrc.h.
Referenced by DisposeOldSrb1(), and DoRecvRrcConnectionReconfiguration().
|
private |
The current UE RRC state.
Definition at line 781 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoConnect(), DoDisconnect(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReestablishment(), DoRecvRrcConnectionReestablishmentReject(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), DoReportUeMeasurements(), DoStartCellSelection(), EvaluateCellForSelection(), GetState(), SaveUeMeasurements(), SwitchToState(), and SynchronizeToStrongestCell().
|
private |
The StateTransition
trace source.
Fired upon every UE RRC state transition. Exporting IMSI, the serving cell ID, RNTI, old state, and new state.
Definition at line 851 of file lte-ue-rrc.h.
Referenced by GetTypeId(), and SwitchToState().
|
private |
Internal storage of the latest measurement results from all detected detected cells, indexed by the cell ID where the measurement was taken from.
Each measurement result comprises of RSRP (in dBm) and RSRQ (in dB).
In IDLE mode, the measurement results are used by the initial cell selection procedure. While in CONNECTED mode, layer-3 filtering is applied to the measurement results and they are used by UE measurements function (LteUeRrc::MeasurementReportTriggering and LteUeRrc::SendMeasurementReport).
Definition at line 1080 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), LeaveConnectedMode(), MeasurementReportTriggering(), SaveUeMeasurements(), SendMeasurementReport(), and SynchronizeToStrongestCell().
|
private |
Stored measure values per carrier.
Definition at line 1085 of file lte-ue-rrc.h.
|
private |
Internal storage of the latest measurement results from all detected detected Secondary carrier component, indexed by the carrier component ID where the measurement was taken from.
Each measurement result comprises of RSRP (in dBm) and RSRQ (in dB).
In IDLE mode, the measurement results are used by the initial cell selection procedure. While in CONNECTED mode, layer-3 filtering is applied to the measurement results and they are used by UE measurements function:
Definition at line 1103 of file lte-ue-rrc.h.
|
private |
The T300
attribute.
Timer for RRC connection establishment procedure (i.e., the procedure is deemed as failed if it takes longer than this). See Section 7.3 of 3GPP TS 36.331.
Definition at line 1226 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
The 'T310' attribute.
After detecting N310 out-of-sync indications, if number of in-sync indications detected is less than N311 before this time, then the radio link is considered to have failed and the UE transitions to state CONNECTED_PHY_PROMLEM and eventually IDLE_START and UE context at eNodeB is destroyed. RRC connection re-establishment is not initiated after this time. See 3GPP TS 36.331 7.3.
Definition at line 1248 of file lte-ue-rrc.h.
Referenced by DoNotifyOutOfSync(), and GetTypeId().
|
private |
Uplink bandwidth in RBs.
Definition at line 824 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformation(), and GetUlBandwidth().
|
private |
Uplink carrier frequency.
Definition at line 827 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformation(), and GetUlEarfcn().
|
private |
True if RLC SM is to be used, false if RLC UM/AM are to be used.
Can be modified using SetUseRlcSm().
Definition at line 817 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), and SetUseRlcSm().
|
private |
Includes the accumulated configuration of the measurements to be performed by the UE.
Based on 3GPP TS 36.331 section 7.1.
Definition at line 976 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), DoNotifyRandomAccessSuccessful(), DoReportUeMeasurements(), LeaveConnectedMode(), MeasurementReportTriggering(), SaveUeMeasurements(), and SendMeasurementReport().
|
private |
The list of active reporting entries, indexed by the measurement identity which triggered the reporting.
Includes information about measurements for which the triggering conditions have been met.
Definition at line 998 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), MeasurementReportTriggering(), SendMeasurementReport(), VarMeasReportListAdd(), VarMeasReportListClear(), and VarMeasReportListErase().