#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(* | ImsiCidRntiTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti) |
TracedCallback signature for imsi, cellId and rnti events. More... | |
typedef void(* | MibSibHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid) |
TracedCallback signature for MIBRecieved, Sib1Received and HandoverStart events. More... | |
enum | State { IDLE_START = 0, IDLE_CELL_SEARCH, IDLE_WAIT_MIB_SIB1, IDLE_WAIT_MIB, IDLE_WAIT_SIB1, IDLE_CAMPED_NORMALLY, IDLE_WAIT_SIB2, IDLE_RANDOM_ACCESS, IDLE_CONNECTING, CONNECTED_NORMALLY, CONNECTED_HANDOVER, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, NUM_STATES } |
The states of the UE RRC entity. More... | |
typedef void(* | StateTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState) |
TracedCallback signature for state transition events. More... | |
Public Member Functions | |
LteUeRrc () | |
create an RRC instance for use within an ue More... | |
virtual | ~LteUeRrc () |
Destructor. More... | |
LteAsSapProvider * | GetAsSapProvider () |
uint16_t | GetCellId () const |
uint8_t | GetDlBandwidth () const |
uint16_t | GetDlEarfcn () const |
uint64_t | GetImsi (void) const |
LteUeCmacSapUser * | GetLteUeCmacSapUser () |
LteUeCphySapUser * | GetLteUeCphySapUser () |
LteUeRrcSapProvider * | GetLteUeRrcSapProvider () |
uint16_t | GetRnti () const |
State | GetState () const |
uint8_t | GetUlBandwidth () const |
uint16_t | GetUlEarfcn () const |
void | SetAsSapUser (LteAsSapUser *s) |
Set the AS SAP user to interact with the NAS entity. More... | |
void | SetImsi (uint64_t imsi) |
void | SetLteMacSapProvider (LteMacSapProvider *s) |
set the MAC SAP provider. More... | |
void | SetLteUeCmacSapProvider (LteUeCmacSapProvider *s) |
set the CMAC SAP this RRC should interact with More... | |
void | SetLteUeCphySapProvider (LteUeCphySapProvider *s) |
set the CPHY SAP this RRC should use to interact with the PHY More... | |
void | SetLteUeRrcSapUser (LteUeRrcSapUser *s) |
set the RRC SAP this RRC should interact with More... | |
void | SetUseRlcSm (bool val) |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) const |
Check if the object has been initialized. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Types | |
typedef std::list< uint16_t > | ConcernedCells_t |
List of cell IDs which are responsible for a certain trigger. More... | |
Private Member Functions | |
void | ApplyMeasConfig (LteRrcSap::MeasConfig mc) |
Update the current measurement configuration m_varMeasConfig. More... | |
void | ApplyRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd) |
uint8_t | Bid2Drbid (uint8_t bid) |
void | CancelEnteringTrigger (uint8_t measId) |
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurement identity. More... | |
void | CancelEnteringTrigger (uint8_t measId, uint16_t cellId) |
Remove a specific cell from the waiting triggers in m_enteringTriggerQueue which belong to the given measurement identity. More... | |
void | CancelLeavingTrigger (uint8_t measId) |
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measurement identity. More... | |
void | CancelLeavingTrigger (uint8_t measId, uint16_t cellId) |
Remove a specific cell from the waiting triggers in m_leavingTriggerQueue which belong to the given measurement identity. More... | |
void | ConnectionTimeout () |
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed. More... | |
void | DisposeOldSrb1 () |
void | DoCompleteSetup (LteUeRrcSapProvider::CompleteSetupParameters params) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::CompleteSetup interface. More... | |
void | DoConnect () |
void | DoDisconnect () |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
void | DoForceCampedOnEnb (uint16_t cellId, uint16_t dlEarfcn) |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
void | DoNotifyRandomAccessFailed () |
void | DoNotifyRandomAccessSuccessful () |
void | DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params) |
void | DoRecvMasterInformationBlock (uint16_t cellId, LteRrcSap::MasterInformationBlock msg) |
void | DoRecvRrcConnectionReconfiguration (LteRrcSap::RrcConnectionReconfiguration msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface. More... | |
void | DoRecvRrcConnectionReestablishment (LteRrcSap::RrcConnectionReestablishment msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface. More... | |
void | DoRecvRrcConnectionReestablishmentReject (LteRrcSap::RrcConnectionReestablishmentReject msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface. More... | |
void | DoRecvRrcConnectionReject (LteRrcSap::RrcConnectionReject msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface. More... | |
void | DoRecvRrcConnectionRelease (LteRrcSap::RrcConnectionRelease msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface. More... | |
void | DoRecvRrcConnectionSetup (LteRrcSap::RrcConnectionSetup msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface. More... | |
void | DoRecvSystemInformation (LteRrcSap::SystemInformation msg) |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface. More... | |
void | DoRecvSystemInformationBlockType1 (uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg) |
void | DoReportUeMeasurements (LteUeCphySapUser::UeMeasurementsParameters params) |
void | DoSendData (Ptr< Packet > packet, uint8_t bid) |
void | DoSetCsgWhiteList (uint32_t csgId) |
void | DoSetTemporaryCellRnti (uint16_t rnti) |
void | DoStartCellSelection (uint16_t dlEarfcn) |
void | EvaluateCellForSelection () |
Performs cell selection evaluation to the current serving cell. More... | |
void | LeaveConnectedMode () |
void | MeasurementReportTriggering (uint8_t measId) |
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on the result. More... | |
void | SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering) |
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functions. More... | |
void | SendMeasurementReport (uint8_t measId) |
Produce a proper measurement report from the given measurement identity's reporting entry in m_varMeasReportList and then submit it to the serving eNodeB. More... | |
void | StartConnection () |
void | SwitchToState (State s) |
Switch the UE RRC to the given state. More... | |
void | SynchronizeToStrongestCell () |
Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it. More... | |
void | VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells) |
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB. More... | |
void | VarMeasReportListClear (uint8_t measId) |
Remove the reporting entry of the given measurement identity from m_varMeasReportList. More... | |
void | VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave) |
Remove some cells from an existing reporting entry in m_varMeasReportList. More... | |
Private Attributes | |
std::set< uint16_t > | m_acceptableCell |
List of cell ID of acceptable cells for cell selection that have been detected. More... | |
LteAsSapProvider * | m_asSapProvider |
LteAsSapUser * | m_asSapUser |
std::map< uint8_t, uint8_t > | m_bid2DrbidMap |
uint16_t | m_cellId |
The CellId attribute. More... | |
LteUeCmacSapProvider * | m_cmacSapProvider |
LteUeCmacSapUser * | m_cmacSapUser |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionEstablishedTrace |
The ConnectionEstablished trace source. More... | |
bool | m_connectionPending |
True if a connection request by upper layers is pending. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionReconfigurationTrace |
The ConnectionReconfiguration trace source. More... | |
EventId | m_connectionTimeout |
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes longer than T300. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionTimeoutTrace |
The ConnectionTimeout trace source. More... | |
LteUeCphySapProvider * | m_cphySapProvider |
LteUeCphySapUser * | m_cphySapUser |
uint32_t | m_csgWhiteList |
List of CSG ID which this UE entity has access to. More... | |
uint8_t | m_dlBandwidth |
Downlink bandwidth in RBs. More... | |
uint16_t | m_dlEarfcn |
Downlink carrier frequency. More... | |
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > | m_drbMap |
The DataRadioBearerMap attribute. More... | |
LtePdcpSapUser * | m_drbPdcpSapUser |
std::map< uint8_t, std::list< PendingTrigger_t > > | m_enteringTriggerQueue |
List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndErrorTrace |
The HandoverEndError trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndOkTrace |
The HandoverEndOk trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_handoverStartTrace |
The HandoverStart trace source. More... | |
bool | m_hasReceivedMib |
True if MIB was received for the current cell. More... | |
bool | m_hasReceivedSib1 |
True if SIB1 was received for the current cell. More... | |
bool | m_hasReceivedSib2 |
True if SIB2 was received for the current cell. More... | |
uint64_t | m_imsi |
The unique UE identifier. More... | |
TracedCallback< uint64_t, uint16_t > | m_initialCellSelectionEndErrorTrace |
The InitialCellSelectionEndError trace source. More... | |
TracedCallback< uint64_t, uint16_t > | m_initialCellSelectionEndOkTrace |
The InitialCellSelectionEndOk trace source. More... | |
uint8_t | m_lastRrcTransactionIdentifier |
LteRrcSap::SystemInformationBlockType1 | m_lastSib1 |
Stored content of the last SIB1 received. More... | |
std::map< uint8_t, std::list< PendingTrigger_t > > | m_leavingTriggerQueue |
List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger. More... | |
LteMacSapProvider * | m_macSapProvider |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_mibReceivedTrace |
The MibReceived trace source. More... | |
LteRrcSap::PdschConfigDedicated | m_pdschConfigDedicated |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_randomAccessErrorTrace |
The RandomAccessError trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_randomAccessSuccessfulTrace |
The RandomAccessSuccessful trace source. More... | |
uint16_t | m_rnti |
The C-RNTI attribute. More... | |
LteUeRrcSapProvider * | m_rrcSapProvider |
LteUeRrcSapUser * | m_rrcSapUser |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_sib1ReceivedTrace |
The Sib1Received trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_sib2ReceivedTrace |
The Sib2Received trace source. More... | |
Ptr< LteSignalingRadioBearerInfo > | m_srb0 |
The Srb0 attribute. More... | |
Ptr< LteSignalingRadioBearerInfo > | m_srb1 |
The Srb1 attribute. 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... | |
Time | m_t300 |
The T300 attribute. More... | |
uint8_t | m_ulBandwidth |
Uplink bandwidth in RBs. More... | |
uint16_t | m_ulEarfcn |
Uplink carrier frequency. More... | |
bool | m_useRlcSm |
True if RLC SM is to be used, false if RLC UM/AM are to be used. More... | |
VarMeasConfig | m_varMeasConfig |
Includes the accumulated configuration of the measurements to be performed by the UE. More... | |
std::map< uint8_t, VarMeasReport > | m_varMeasReportList |
The list of active reporting entries, indexed by the measurement identity which triggered the reporting. More... | |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
ns3::LteUeRrc is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 968 bytes (on a 64-bit architecture).
Definition at line 70 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 257 of file lte-ue-rrc.h.
|
private |
List of cell IDs which are responsible for a certain trigger.
Definition at line 732 of file lte-ue-rrc.h.
typedef void(* ns3::LteUeRrc::ImsiCidRntiTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti) |
TracedCallback signature for imsi, cellId and rnti events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti |
Definition at line 267 of file lte-ue-rrc.h.
typedef void(* ns3::LteUeRrc::MibSibHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid) |
TracedCallback signature for MIBRecieved, Sib1Received and HandoverStart events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | otherCid |
Definition at line 279 of file lte-ue-rrc.h.
typedef void(* ns3::LteUeRrc::StateTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState) |
TracedCallback signature for state transition events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | oldState | |
[in] | newState |
Definition at line 291 of file lte-ue-rrc.h.
enum ns3::LteUeRrc::State |
The states of the UE RRC entity.
Definition at line 86 of file lte-ue-rrc.h.
ns3::LteUeRrc::LteUeRrc | ( | ) |
create an RRC instance for use within an ue
Definition at line 124 of file lte-ue-rrc.cc.
References m_asSapProvider, m_cmacSapUser, m_cphySapUser, m_drbPdcpSapUser, m_rrcSapProvider, NS_LOG_FUNCTION, and UeMemberLteUeCmacSapUser.
|
virtual |
|
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 1307 of file lte-ue-rrc.cc.
References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRP, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRQ, ns3::LteRrcSap::MeasConfig::haveMeasGapConfig, ns3::LteRrcSap::MeasConfig::haveQuantityConfig, ns3::LteRrcSap::MeasConfig::haveSmeasure, ns3::LteRrcSap::MeasConfig::haveSpeedStatePars, m_enteringTriggerQueue, m_leavingTriggerQueue, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasConfig::measIdToAddModList, ns3::LteRrcSap::MeasConfig::measIdToRemoveList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::LteRrcSap::MeasConfig::measObjectToAddModList, ns3::LteRrcSap::MeasConfig::measObjectToRemoveList, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::ReportConfigEutra::PERIODICAL, ns3::LteRrcSap::MeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::quantityConfig, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::MeasConfig::reportConfigToAddModList, ns3::LteRrcSap::MeasConfig::reportConfigToRemoveList, and VarMeasReportListClear().
Referenced by DoRecvRrcConnectionReconfiguration().
|
private |
Definition at line 1123 of file lte-ue-rrc.cc.
References ns3::LteUeCmacSapProvider::AddLc(), ns3::LteRrcSap::RlcConfig::AM, ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, CONNECTED_HANDOVER, ns3::LteRrcSap::ConvertPdschConfigDedicated2Double(), ns3::ObjectFactory::Create(), ns3::LteRrcSap::RadioResourceConfigDedicated::drbToAddModList, ns3::LteRrcSap::RadioResourceConfigDedicated::drbToReleaseList, ns3::LteRlc::GetLteMacSapUser(), ns3::LteRlc::GetLteRlcSapProvider(), ns3::Object::GetObject(), ns3::LteRlcUm::GetTypeId(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), ns3::LteRrcSap::PhysicalConfigDedicated::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::havePdschConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::haveSoundingRsUlConfigDedicated, IDLE_CONNECTING, ns3::Object::Initialize(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::logicalChannelGroup, m_bid2DrbidMap, m_cmacSapProvider, m_cphySapProvider, m_drbMap, m_drbPdcpSapUser, m_imsi, m_macSapProvider, m_pdschConfigDedicated, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_state, m_useRlcSm, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, ns3::LteUeCmacSapProvider::LogicalChannelConfig::prioritizedBitRateKbps, ns3::LteUeCmacSapProvider::LogicalChannelConfig::priority, ns3::LteUeCmacSapProvider::RemoveLc(), ns3::LteRlc::SetLcId(), ns3::LteRlc::SetLteMacSapProvider(), ns3::LteRlc::SetLteRlcSapUser(), ns3::LteUeCphySapProvider::SetPa(), ns3::LteRlc::SetRnti(), ns3::LteUeCphySapProvider::SetSrsConfigurationIndex(), ns3::LteUeCphySapProvider::SetTransmissionMode(), ns3::ObjectFactory::SetTypeId(), ns3::LteUeRrcSapUser::Setup(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteUeRrcSapUser::SetupParameters::srb0SapProvider, ns3::LteRrcSap::RadioResourceConfigDedicated::srbToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::ToString(), ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, and ns3::LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL.
Referenced by DoRecvRrcConnectionReconfiguration(), and DoRecvRrcConnectionSetup().
|
private |
Definition at line 2798 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 2323 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by MeasurementReportTriggering(), VarMeasReportListAdd(), and VarMeasReportListClear().
|
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 2347 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_enteringTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
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 2385 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by MeasurementReportTriggering(), VarMeasReportListClear(), and VarMeasReportListErase().
|
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 2409 of file lte-ue-rrc.cc.
References ns3::Simulator::Cancel(), ns3::Simulator::GetDelayLeft(), ns3::Time::GetSeconds(), m_leavingTriggerQueue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure has failed.
Definition at line 2780 of file lte-ue-rrc.cc.
References IDLE_CAMPED_NORMALLY, m_asSapUser, m_cellId, m_cmacSapProvider, m_connectionTimeoutTrace, m_hasReceivedSib2, m_imsi, m_rnti, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::Reset(), and SwitchToState().
Referenced by DoNotifyRandomAccessSuccessful().
|
private |
Definition at line 2791 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.
Definition at line 794 of file lte-ue-rrc.cc.
References m_rnti, m_srb0, m_srb1, NS_LOG_FUNCTION, ns3::LteUeRrcSapProvider::CompleteSetupParameters::srb0SapUser, and ns3::LteUeRrcSapProvider::CompleteSetupParameters::srb1SapUser.
|
private |
Definition at line 649 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 ns3::ToString().
|
private |
Definition at line 454 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 ns3::ToString().
|
privatevirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 156 of file lte-ue-rrc.cc.
References m_asSapProvider, m_cmacSapUser, m_cphySapUser, m_drbMap, m_drbPdcpSapUser, m_rrcSapProvider, and NS_LOG_FUNCTION.
|
private |
Definition at line 604 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(), ns3::LteUeCphySapProvider::SynchronizeWithEnb(), and ns3::ToString().
|
privatevirtual |
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 395 of file lte-ue-rrc.cc.
References ns3::LteUeCmacSapProvider::AddLc(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::bucketSizeDurationMs, ns3::LteRlc::GetLteMacSapUser(), ns3::LteUeCmacSapProvider::LogicalChannelConfig::logicalChannelGroup, 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 |
Definition at line 553 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, IDLE_CAMPED_NORMALLY, IDLE_RANDOM_ACCESS, m_asSapUser, m_cellId, m_handoverEndErrorTrace, m_imsi, m_randomAccessErrorTrace, m_rnti, m_state, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and ns3::ToString().
Referenced by ns3::UeMemberLteUeCmacSapUser::NotifyRandomAccessFailed().
|
private |
Definition at line 505 of file lte-ue-rrc.cc.
References CONNECTED_HANDOVER, CONNECTED_NORMALLY, ConnectionTimeout(), IDLE_CONNECTING, IDLE_RANDOM_ACCESS, m_cellId, 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(), ns3::ToString(), ns3::LteRrcSap::RrcConnectionRequest::ueIdentity, and VarMeasReportListClear().
Referenced by ns3::UeMemberLteUeCmacSapUser::NotifyRandomAccessSuccessful().
|
private |
Definition at line 488 of file lte-ue-rrc.cc.
References m_asSapUser, NS_LOG_FUNCTION, ns3::LtePdcpSapUser::ReceivePdcpSduParameters::pdcpSdu, and ns3::LteAsSapUser::RecvData().
|
private |
Definition at line 691 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, ns3::LteUeCphySapProvider::SetDlBandwidth(), and SwitchToState().
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interface.
Definition at line 875 of file lte-ue-rrc.cc.
References ApplyMeasConfig(), ApplyRadioResourceConfigDedicated(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, ns3::LteUeCphySapProvider::ConfigureUplink(), CONNECTED_HANDOVER, CONNECTED_NORMALLY, DisposeOldSrb1(), ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, m_cellId, m_cmacSapProvider, m_connectionReconfigurationTrace, m_cphySapProvider, m_drbMap, m_handoverStartTrace, m_imsi, m_lastRrcTransactionIdentifier, m_rnti, m_rrcSapUser, m_srb0, m_srb1, m_srb1Old, m_state, ns3::LteRrcSap::RrcConnectionReconfiguration::measConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteUeCphySapProvider::Reset(), ns3::LteUeCmacSapProvider::Reset(), ns3::LteRrcSap::RrcConnectionReconfiguration::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionReconfigurationCompleted::rrcTransactionIdentifier, ns3::Simulator::ScheduleNow(), ns3::LteUeRrcSapUser::SendRrcConnectionReconfigurationCompleted(), ns3::LteUeCphySapProvider::SetDlBandwidth(), ns3::LteUeCphySapProvider::SetRnti(), ns3::LteUeCmacSapProvider::StartNonContentionBasedRandomAccessProcedure(), SwitchToState(), ns3::LteUeCphySapProvider::SynchronizeWithEnb(), ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::ToString(), ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interface.
Definition at line 946 of file lte-ue-rrc.cc.
References CONNECTED_REESTABLISHING, m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::ToString().
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject interface.
Definition at line 970 of file lte-ue-rrc.cc.
References CONNECTED_REESTABLISHING, LeaveConnectedMode(), m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::ToString().
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface.
Definition at line 999 of file lte-ue-rrc.cc.
References ns3::EventId::Cancel(), IDLE_CAMPED_NORMALLY, m_asSapUser, m_cmacSapProvider, m_connectionTimeout, m_hasReceivedSib2, ns3::LteAsSapUser::NotifyConnectionFailed(), NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::Reset(), and SwitchToState().
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface.
Definition at line 992 of file lte-ue-rrc.cc.
References m_rnti, and NS_LOG_FUNCTION.
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface.
Definition at line 850 of file lte-ue-rrc.cc.
References ApplyRadioResourceConfigDedicated(), ns3::EventId::Cancel(), CONNECTED_NORMALLY, IDLE_CONNECTING, m_asSapUser, m_cellId, m_connectionEstablishedTrace, m_connectionTimeout, m_imsi, m_rnti, m_rrcSapUser, m_state, ns3::LteAsSapUser::NotifyConnectionSuccessful(), NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionSetup::radioResourceConfigDedicated, ns3::LteRrcSap::RrcConnectionSetup::rrcTransactionIdentifier, ns3::LteRrcSap::RrcConnectionSetupCompleted::rrcTransactionIdentifier, ns3::LteUeRrcSapUser::SendRrcConnectionSetupCompleted(), SwitchToState(), and ns3::ToString().
|
private |
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface.
Definition at line 806 of file lte-ue-rrc.cc.
References ns3::LteUeCmacSapProvider::ConfigureRach(), ns3::LteUeCphySapProvider::ConfigureReferenceSignalPower(), ns3::LteUeCphySapProvider::ConfigureUplink(), CONNECTED_HANDOVER, CONNECTED_NORMALLY, CONNECTED_PHY_PROBLEM, CONNECTED_REESTABLISHING, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, ns3::LteRrcSap::SystemInformation::haveSib2, IDLE_CAMPED_NORMALLY, IDLE_CONNECTING, IDLE_RANDOM_ACCESS, IDLE_WAIT_SIB2, m_cellId, m_cmacSapProvider, m_connectionPending, m_cphySapProvider, m_hasReceivedSib2, m_imsi, m_rnti, m_sib2ReceivedTrace, m_state, m_ulBandwidth, m_ulEarfcn, NS_ASSERT, NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteUeCmacSapProvider::RachConfig::preambleTransMax, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteUeCmacSapProvider::RachConfig::raResponseWindowSize, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SystemInformation::sib2, StartConnection(), ns3::LteRrcSap::FreqInfo::ulBandwidth, and ns3::LteRrcSap::FreqInfo::ulCarrierFreq.
|
private |
Definition at line 718 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, and NS_ASSERT_MSG.
|
private |
Definition at line 757 of file lte-ue-rrc.cc.
References CONNECTED_NORMALLY, IDLE_CELL_SEARCH, m_state, ns3::LteUeCphySapUser::UeMeasurementsParameters::m_ueMeasurementsList, m_varMeasConfig, ns3::LteUeRrc::VarMeasConfig::measIdList, MeasurementReportTriggering(), NS_LOG_FUNCTION, SaveUeMeasurements(), and SynchronizeToStrongestCell().
Definition at line 428 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 ns3::LtePdcpSapProvider::TransmitPdcpSduParameters::pdcpSdu.
|
private |
Definition at line 586 of file lte-ue-rrc.cc.
References m_csgWhiteList, m_imsi, and NS_LOG_FUNCTION.
|
private |
Definition at line 496 of file lte-ue-rrc.cc.
References m_cphySapProvider, m_rnti, m_srb0, NS_LOG_FUNCTION, and ns3::LteUeCphySapProvider::SetRnti().
Referenced by ns3::UeMemberLteUeCmacSapUser::SetTemporaryCellRnti().
|
private |
Definition at line 593 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, ns3::LteUeCphySapProvider::StartCellSearch(), SwitchToState(), and ns3::ToString().
|
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 1056 of file lte-ue-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, ns3::LteRrcSap::SystemInformationBlockType1::cellSelectionInfo, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, IDLE_CAMPED_NORMALLY, IDLE_CELL_SEARCH, IDLE_WAIT_SIB1, ns3::EutranMeasurementMapping::IeValue2ActualQRxLevMin(), m_acceptableCell, m_cellId, m_cphySapProvider, m_csgWhiteList, m_dlBandwidth, m_dlEarfcn, m_hasReceivedMib, m_hasReceivedSib1, m_imsi, m_initialCellSelectionEndErrorTrace, m_initialCellSelectionEndOkTrace, m_lastSib1, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::CellSelectionInfo::qRxLevMin, ns3::LteUeCphySapProvider::SetDlBandwidth(), SwitchToState(), SynchronizeToStrongestCell(), and ns3::LteUeCphySapProvider::SynchronizeWithEnb().
Referenced by DoRecvSystemInformationBlockType1().
LteAsSapProvider * ns3::LteUeRrc::GetAsSapProvider | ( | ) |
Definition at line 319 of file lte-ue-rrc.cc.
References m_asSapProvider.
uint16_t ns3::LteUeRrc::GetCellId | ( | ) | const |
Definition at line 345 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 360 of file lte-ue-rrc.cc.
References m_dlBandwidth, and NS_LOG_FUNCTION.
uint16_t ns3::LteUeRrc::GetDlEarfcn | ( | ) | const |
Definition at line 367 of file lte-ue-rrc.cc.
References m_dlEarfcn.
uint64_t ns3::LteUeRrc::GetImsi | ( | void | ) | const |
Definition at line 332 of file lte-ue-rrc.cc.
References m_imsi.
LteUeCmacSapUser * ns3::LteUeRrc::GetLteUeCmacSapUser | ( | ) |
Definition at line 285 of file lte-ue-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteUeCphySapUser * ns3::LteUeRrc::GetLteUeCphySapUser | ( | ) |
Definition at line 271 of file lte-ue-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteUeRrcSapProvider * ns3::LteUeRrc::GetLteUeRrcSapProvider | ( | ) |
Definition at line 299 of file lte-ue-rrc.cc.
References m_rrcSapProvider, and NS_LOG_FUNCTION.
uint16_t ns3::LteUeRrc::GetRnti | ( | void | ) | const |
Definition at line 338 of file lte-ue-rrc.cc.
References m_rnti, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
LteUeRrc::State ns3::LteUeRrc::GetState | ( | void | ) | const |
Definition at line 380 of file lte-ue-rrc.cc.
References m_state, and NS_LOG_FUNCTION.
|
static |
Definition at line 168 of file lte-ue-rrc.cc.
References GetCellId(), GetRnti(), m_connectionEstablishedTrace, m_connectionReconfigurationTrace, m_connectionTimeoutTrace, m_drbMap, m_handoverEndErrorTrace, m_handoverEndOkTrace, m_handoverStartTrace, m_initialCellSelectionEndErrorTrace, m_initialCellSelectionEndOkTrace, m_mibReceivedTrace, m_randomAccessErrorTrace, m_randomAccessSuccessfulTrace, m_sib1ReceivedTrace, m_sib2ReceivedTrace, m_srb0, m_srb1, m_stateTransitionTrace, m_t300, 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 353 of file lte-ue-rrc.cc.
References m_ulBandwidth, and NS_LOG_FUNCTION.
uint16_t ns3::LteUeRrc::GetUlEarfcn | ( | ) | const |
Definition at line 373 of file lte-ue-rrc.cc.
References m_ulEarfcn, and NS_LOG_FUNCTION.
|
private |
Definition at line 2763 of file lte-ue-rrc.cc.
References IDLE_CAMPED_NORMALLY, m_asSapUser, m_bid2DrbidMap, m_cmacSapProvider, m_drbMap, m_imsi, m_srb1, ns3::LteAsSapUser::NotifyConnectionReleased(), NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::RemoveLc(), and SwitchToState().
Referenced by DoDisconnect(), and DoRecvRrcConnectionReestablishmentReject().
|
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 1578 of file lte-ue-rrc.cc.
References CancelEnteringTrigger(), CancelLeavingTrigger(), ns3::LteUeRrc::PendingTrigger_t::concernedCells, ns3::LteRrcSap::ReportConfigEutra::EVENT, ns3::LteRrcSap::ReportConfigEutra::EVENT_A1, ns3::LteRrcSap::ReportConfigEutra::EVENT_A2, ns3::LteRrcSap::ReportConfigEutra::EVENT_A3, ns3::LteRrcSap::ReportConfigEutra::EVENT_A4, ns3::LteRrcSap::ReportConfigEutra::EVENT_A5, ns3::EutranMeasurementMapping::IeValue2ActualA3Offset(), ns3::EutranMeasurementMapping::IeValue2ActualHysteresis(), m_cellId, m_enteringTriggerQueue, m_leavingTriggerQueue, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteUeRrc::PendingTrigger_t::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteUeRrc::VarMeasConfig::measObjectList, ns3::MilliSeconds(), NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::EutranMeasurementMapping::RsrpRange2Dbm(), ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::EutranMeasurementMapping::RsrqRange2Db(), ns3::Simulator::Schedule(), ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRP, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ, ns3::LteUeRrc::PendingTrigger_t::timer, VarMeasReportListAdd(), and VarMeasReportListErase().
Referenced by DoReportUeMeasurements().
|
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 |
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 1524 of file lte-ue-rrc.cc.
References ns3::LteUeRrc::VarMeasConfig::aRsrp, ns3::LteUeRrc::VarMeasConfig::aRsrq, m_cellId, m_imsi, m_state, m_storedMeasValues, m_varMeasConfig, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteUeRrc::MeasValues::rsrp, ns3::LteUeRrc::MeasValues::rsrq, and ns3::ToString().
Referenced by DoReportUeMeasurements().
|
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 2594 of file lte-ue-rrc.cc.
References ns3::EutranMeasurementMapping::Db2RsrqRange(), ns3::EutranMeasurementMapping::Dbm2RsrpRange(), ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, m_cellId, m_rrcSapUser, m_storedMeasValues, m_varMeasConfig, m_varMeasReportList, ns3::LteRrcSap::MeasResults::measId, ns3::LteUeRrc::VarMeasConfig::measIdList, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasurementReport::measResults, ns3::MilliSeconds(), ns3::LteRrcSap::ReportConfigEutra::MIN1, ns3::LteRrcSap::ReportConfigEutra::MIN12, ns3::LteRrcSap::ReportConfigEutra::MIN30, ns3::LteRrcSap::ReportConfigEutra::MIN6, ns3::LteRrcSap::ReportConfigEutra::MIN60, ns3::LteRrcSap::ReportConfigEutra::MS1024, ns3::LteRrcSap::ReportConfigEutra::MS10240, ns3::LteRrcSap::ReportConfigEutra::MS120, ns3::LteRrcSap::ReportConfigEutra::MS2048, ns3::LteRrcSap::ReportConfigEutra::MS240, ns3::LteRrcSap::ReportConfigEutra::MS480, ns3::LteRrcSap::ReportConfigEutra::MS5120, ns3::LteRrcSap::ReportConfigEutra::MS640, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, ns3::LteRrcSap::MeasResultEutra::physCellId, ns3::LteUeRrc::VarMeasConfig::reportConfigList, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::LteRrcSap::MeasResults::rsrpResult, ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::LteRrcSap::MeasResults::rsrqResult, ns3::Simulator::Schedule(), ns3::Seconds(), and ns3::LteUeRrcSapUser::SendMeasurementReport().
Referenced by VarMeasReportListAdd(), and VarMeasReportListErase().
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 313 of file lte-ue-rrc.cc.
References m_asSapUser.
void ns3::LteUeRrc::SetImsi | ( | uint64_t | imsi | ) |
imsi | the unique UE identifier |
Definition at line 325 of file lte-ue-rrc.cc.
References m_imsi, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteMacSapProvider | ( | LteMacSapProvider * | s | ) |
set the MAC SAP provider.
The ue RRC does not use this directly, but it needs to provide it to newly created RLC instances.
s | the MAC SAP provider that will be used by all newly created RLC instances |
Definition at line 306 of file lte-ue-rrc.cc.
References m_macSapProvider, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteUeCmacSapProvider | ( | LteUeCmacSapProvider * | s | ) |
set the CMAC SAP this RRC should interact with
s | the CMAC SAP Provider to be used by this RRC |
Definition at line 278 of file lte-ue-rrc.cc.
References m_cmacSapProvider, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteUeCphySapProvider | ( | LteUeCphySapProvider * | s | ) |
set the CPHY SAP this RRC should use to interact with the PHY
s | the CPHY SAP Provider |
Definition at line 264 of file lte-ue-rrc.cc.
References m_cphySapProvider, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetLteUeRrcSapUser | ( | LteUeRrcSapUser * | s | ) |
set the RRC SAP this RRC should interact with
s | the RRC SAP User to be used by this RRC |
Definition at line 292 of file lte-ue-rrc.cc.
References m_rrcSapUser, and NS_LOG_FUNCTION.
void ns3::LteUeRrc::SetUseRlcSm | ( | bool | val | ) |
val | true if RLC SM is to be used, false if RLC UM/AM are to be used |
Definition at line 387 of file lte-ue-rrc.cc.
References m_useRlcSm, and NS_LOG_FUNCTION.
|
private |
Definition at line 2752 of file lte-ue-rrc.cc.
References IDLE_RANDOM_ACCESS, m_cmacSapProvider, m_connectionPending, m_hasReceivedMib, m_hasReceivedSib2, m_imsi, NS_ASSERT, NS_LOG_FUNCTION, ns3::LteUeCmacSapProvider::StartContentionBasedRandomAccessProcedure(), and SwitchToState().
Referenced by DoRecvSystemInformation(), and SwitchToState().
|
private |
Switch the UE RRC to the given state.
s | the destination state |
Definition at line 2813 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_rnti, m_state, m_stateTransitionTrace, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, StartConnection(), and ns3::ToString().
Referenced by ConnectionTimeout(), DoConnect(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReject(), DoRecvRrcConnectionSetup(), DoStartCellSelection(), EvaluateCellForSelection(), LeaveConnectedMode(), 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 1013 of file lte-ue-rrc.cc.
References IDLE_CELL_SEARCH, IDLE_WAIT_MIB_SIB1, m_acceptableCell, m_cphySapProvider, m_dlEarfcn, m_state, m_storedMeasValues, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, SwitchToState(), and ns3::LteUeCphySapProvider::SynchronizeWithEnb().
Referenced by DoReportUeMeasurements(), and EvaluateCellForSelection().
|
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 2447 of file lte-ue-rrc.cc.
References CancelEnteringTrigger(), m_enteringTriggerQueue, m_varMeasReportList, ns3::LteUeRrc::VarMeasReport::measId, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), SendMeasurementReport(), and ns3::UE_MEASUREMENT_REPORT_DELAY.
Referenced by MeasurementReportTriggering().
|
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 2575 of file lte-ue-rrc.cc.
References CancelEnteringTrigger(), CancelLeavingTrigger(), m_varMeasReportList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ApplyMeasConfig(), and DoNotifyRandomAccessSuccessful().
|
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 2514 of file lte-ue-rrc.cc.
References CancelLeavingTrigger(), m_leavingTriggerQueue, m_varMeasReportList, NS_ASSERT, NS_LOG_FUNCTION, and SendMeasurementReport().
Referenced by MeasurementReportTriggering().
|
friend |
Definition at line 75 of file lte-ue-rrc.h.
|
friend |
Definition at line 76 of file lte-ue-rrc.h.
|
friend |
Definition at line 77 of file lte-ue-rrc.h.
|
friend |
Definition at line 78 of file lte-ue-rrc.h.
|
friend |
Definition at line 73 of file lte-ue-rrc.h.
Referenced by LteUeRrc().
|
friend |
Definition at line 74 of file lte-ue-rrc.h.
|
private |
List of cell ID of acceptable cells for cell selection that have been detected.
Definition at line 674 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), and SynchronizeToStrongestCell().
|
private |
Definition at line 535 of file lte-ue-rrc.h.
Referenced by DoDispose(), GetAsSapProvider(), and LteUeRrc().
|
private |
Definition at line 536 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), DoNotifyRandomAccessFailed(), DoReceivePdcpSdu(), DoRecvRrcConnectionReject(), DoRecvRrcConnectionSetup(), LeaveConnectedMode(), and SetAsSapUser().
|
private |
Definition at line 521 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), Bid2Drbid(), and LeaveConnectedMode().
|
private |
The CellId
attribute.
Serving cell identifier.
Definition at line 550 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), EvaluateCellForSelection(), GetCellId(), MeasurementReportTriggering(), SaveUeMeasurements(), SendMeasurementReport(), and SwitchToState().
|
private |
Definition at line 527 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReject(), DoRecvSystemInformation(), LeaveConnectedMode(), SetLteUeCmacSapProvider(), and StartConnection().
|
private |
Definition at line 526 of file lte-ue-rrc.h.
Referenced by DoDispose(), GetLteUeCmacSapUser(), and LteUeRrc().
|
private |
The ConnectionEstablished
trace source.
Fired upon successful RRC connection establishment. Exporting IMSI, cell ID, and RNTI.
Definition at line 634 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionSetup(), and GetTypeId().
|
private |
True if a connection request by upper layers is pending.
Definition at line 662 of file lte-ue-rrc.h.
Referenced by DoConnect(), DoRecvSystemInformation(), StartConnection(), and SwitchToState().
|
private |
The ConnectionReconfiguration
trace source.
Fired upon RRC connection reconfiguration. Exporting IMSI, cell ID, and RNTI.
Definition at line 644 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().
|
private |
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes longer than T300.
Definition at line 938 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReject(), and DoRecvRrcConnectionSetup().
|
private |
The ConnectionTimeout
trace source.
Fired upon timeout RRC connection establishment because of T300. Exporting IMSI, cell ID, and RNTI.
Definition at line 639 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), and GetTypeId().
|
private |
Definition at line 524 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoForceCampedOnEnb(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvSystemInformation(), DoSetTemporaryCellRnti(), DoStartCellSelection(), EvaluateCellForSelection(), SetLteUeCphySapProvider(), and SynchronizeToStrongestCell().
|
private |
Definition at line 523 of file lte-ue-rrc.h.
Referenced by DoDispose(), GetLteUeCphySapUser(), and LteUeRrc().
|
private |
List of CSG ID which this UE entity has access to.
Definition at line 677 of file lte-ue-rrc.h.
Referenced by DoSetCsgWhiteList(), and EvaluateCellForSelection().
|
private |
Downlink bandwidth in RBs.
Definition at line 581 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), and GetDlBandwidth().
|
private |
Downlink carrier frequency.
Definition at line 584 of file lte-ue-rrc.h.
Referenced by DoForceCampedOnEnb(), DoStartCellSelection(), EvaluateCellForSelection(), GetDlEarfcn(), and SynchronizeToStrongestCell().
|
private |
The DataRadioBearerMap
attribute.
List of UE RadioBearerInfo for Data Radio Bearers by LCID.
Definition at line 569 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoDispose(), DoRecvRrcConnectionReconfiguration(), DoSendData(), GetTypeId(), and LeaveConnectedMode().
|
private |
Definition at line 533 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoDispose(), and LteUeRrc().
|
private |
List of triggers that were raised because entering condition have been true, but are still delayed from reporting it by time-to-trigger.
The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and insert a reporting entry to m_varMeasReportList.
Definition at line 833 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), CancelEnteringTrigger(), MeasurementReportTriggering(), and VarMeasReportListAdd().
|
private |
The HandoverEndError
trace source.
Fired upon failure of a handover procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 659 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().
|
private |
The HandoverEndOk
trace source.
Fired upon successful termination of a handover procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 654 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
The HandoverStart
trace source.
Fired upon start of a handover procedure. Exporting IMSI, source cell ID, RNTI, and target cell ID.
Definition at line 649 of file lte-ue-rrc.h.
Referenced by DoRecvRrcConnectionReconfiguration(), and GetTypeId().
|
private |
True if MIB was received for the current cell.
Definition at line 664 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), EvaluateCellForSelection(), and StartConnection().
|
private |
True if SIB1 was received for the current cell.
Definition at line 666 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().
|
private |
True if SIB2 was received for the current cell.
Definition at line 668 of file lte-ue-rrc.h.
Referenced by ConnectionTimeout(), DoRecvRrcConnectionReject(), DoRecvSystemInformation(), StartConnection(), and SwitchToState().
|
private |
The unique UE identifier.
Definition at line 542 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoConnect(), DoForceCampedOnEnb(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), DoSetCsgWhiteList(), DoStartCellSelection(), EvaluateCellForSelection(), GetImsi(), LeaveConnectedMode(), 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 618 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 613 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), and GetTypeId().
|
private |
Definition at line 577 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and DoRecvRrcConnectionReconfiguration().
|
private |
Stored content of the last SIB1 received.
Definition at line 671 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), and EvaluateCellForSelection().
|
private |
List of triggers that were raised because leaving condition have been true, but are still delayed from stopping the reporting by time-to-trigger.
The list is indexed by the measurement identity where the trigger originates from. The enclosed event will run at the end of the time-to-trigger and remove the associated reporting entry from m_varMeasReportList.
Definition at line 845 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), CancelLeavingTrigger(), MeasurementReportTriggering(), and VarMeasReportListErase().
|
private |
Definition at line 532 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 591 of file lte-ue-rrc.h.
Referenced by DoRecvMasterInformationBlock(), and GetTypeId().
|
private |
Definition at line 579 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated().
|
private |
The RandomAccessError
trace source.
Fired upon failure of the random access procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 629 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessFailed(), and GetTypeId().
|
private |
The RandomAccessSuccessful
trace source.
Fired upon successful completion of the random access procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 624 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
The C-RNTI
attribute.
Cell Radio Network Temporary Identifier.
Definition at line 546 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), ConnectionTimeout(), DoCompleteSetup(), DoInitialize(), DoNotifyRandomAccessFailed(), DoNotifyRandomAccessSuccessful(), DoRecvMasterInformationBlock(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionReestablishment(), DoRecvRrcConnectionReestablishmentReject(), DoRecvRrcConnectionRelease(), DoRecvRrcConnectionSetup(), DoRecvSystemInformation(), DoRecvSystemInformationBlockType1(), DoSendData(), DoSetTemporaryCellRnti(), GetRnti(), and SwitchToState().
|
private |
Definition at line 530 of file lte-ue-rrc.h.
Referenced by DoDispose(), GetLteUeRrcSapProvider(), and LteUeRrc().
|
private |
Definition at line 529 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoInitialize(), DoNotifyRandomAccessSuccessful(), DoRecvRrcConnectionReconfiguration(), DoRecvRrcConnectionSetup(), SendMeasurementReport(), and SetLteUeRrcSapUser().
|
private |
The Sib1Received
trace source.
Fired upon reception of System Information Block Type 1. Exporting IMSI, the serving cell ID, RNTI, and the source cell ID.
Definition at line 597 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformationBlockType1(), and GetTypeId().
|
private |
The Sib2Received
trace source.
Fired upon reception of System Information Block Type 2. Exporting IMSI, the serving cell ID, RNTI.
Definition at line 602 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformation(), and GetTypeId().
|
private |
The Srb0
attribute.
SignalingRadioBearerInfo for SRB0.
Definition at line 555 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoInitialize(), DoRecvRrcConnectionReconfiguration(), DoSetTemporaryCellRnti(), and GetTypeId().
|
private |
The Srb1
attribute.
SignalingRadioBearerInfo for SRB1.
Definition at line 559 of file lte-ue-rrc.h.
Referenced by ApplyRadioResourceConfigDedicated(), DoCompleteSetup(), DoRecvRrcConnectionReconfiguration(), GetTypeId(), and LeaveConnectedMode().
|
private |
SRB1 configuration before RRC connection reconfiguration.
To be deleted soon by DisposeOldSrb1().
Definition at line 564 of file lte-ue-rrc.h.
Referenced by DisposeOldSrb1(), and DoRecvRrcConnectionReconfiguration().
|
private |
The current UE RRC state.
Definition at line 539 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 608 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 810 of file lte-ue-rrc.h.
Referenced by EvaluateCellForSelection(), MeasurementReportTriggering(), SaveUeMeasurements(), SendMeasurementReport(), and SynchronizeToStrongestCell().
|
private |
The T300
attribute.
Timer for RRC connection establishment procedure (i.e., the procedure is deemed as failed if it takes longer than this). See Section 7.3 of 3GPP TS 36.331.
Definition at line 932 of file lte-ue-rrc.h.
Referenced by DoNotifyRandomAccessSuccessful(), and GetTypeId().
|
private |
Uplink bandwidth in RBs.
Definition at line 582 of file lte-ue-rrc.h.
Referenced by DoRecvSystemInformation(), and GetUlBandwidth().
|
private |
Uplink carrier frequency.
Definition at line 585 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 575 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 705 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), DoNotifyRandomAccessSuccessful(), DoReportUeMeasurements(), 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 727 of file lte-ue-rrc.h.
Referenced by ApplyMeasConfig(), MeasurementReportTriggering(), SendMeasurementReport(), VarMeasReportListAdd(), VarMeasReportListClear(), and VarMeasReportListErase().