Manages all the radio bearer information possessed by the ENB RRC for a single UE. More...
#include "lte-enb-rrc.h"
Public Types | |
enum | State { INITIAL_RANDOM_ACCESS = 0 , CONNECTION_SETUP , CONNECTION_REJECTED , ATTACH_REQUEST , CONNECTED_NORMALLY , CONNECTION_RECONFIGURATION , CONNECTION_REESTABLISHMENT , HANDOVER_PREPARATION , HANDOVER_JOINING , HANDOVER_PATH_SWITCH , HANDOVER_LEAVING , NUM_STATES } |
The state of the UeManager at the eNB RRC. More... | |
typedef void(* | StateTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const State oldState, const State newState) |
TracedCallback signature for state transition events. | |
Public Member Functions | |
UeManager () | |
UeManager (Ptr< LteEnbRrc > rrc, uint16_t rnti, State s, uint8_t componentCarrierId) | |
UeManager constructor. | |
~UeManager () override | |
EpcX2Sap::HandoverCancelParams | BuildHoCancelMsg () |
build handover cancel message | |
EpcX2Sap::HandoverPreparationFailureParams | BuildHoPrepFailMsg () |
build handover preparation failure message | |
void | CancelPendingEvents () |
Cancel all timers which are running for the UE. | |
void | CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams) |
CMAC UE config update indication function. | |
void | CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params) |
Implement the LteEnbRrcSapProvider::CompleteSetupUe interface. | |
void | DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params) |
Receive PDCP SDU function. | |
uint8_t | GetComponentCarrierId () const |
std::vector< EpcX2Sap::ErabToBeSetupItem > | GetErabList () |
uint64_t | GetImsi () const |
LteRrcSap::RadioResourceConfigDedicated | GetRadioResourceConfigForHandoverPreparationInfo () |
uint16_t | GetRnti () const |
LteRrcSap::RrcConnectionReconfiguration | GetRrcConnectionReconfigurationForHandover (uint8_t componentCarrierId) |
uint16_t | GetSrsConfigurationIndex () const |
State | GetState () const |
void | InitialContextSetupRequest () |
Process Initial context setup request message from the MME. | |
void | PrepareHandover (uint16_t cellId) |
Start the handover preparation and send the handover request. | |
void | RecordDataRadioBearersToBeStarted () |
Start all configured data radio bearers. | |
void | RecvHandoverCancel (EpcX2SapUser::HandoverCancelParams params) |
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message. | |
void | RecvHandoverPreparationFailure (uint16_t cellId) |
Take the necessary actions in response to the reception of an X2 HO preparation failure message. | |
void | RecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params) |
take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message | |
void | RecvIdealUeContextRemoveRequest (uint16_t rnti) |
Implement the LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface. | |
void | RecvMeasurementReport (LteRrcSap::MeasurementReport msg) |
Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface. | |
void | RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface. | |
void | RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface. | |
void | RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface. | |
void | RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface. | |
void | RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface. | |
void | RecvSnStatusTransfer (EpcX2SapUser::SnStatusTransferParams params) |
Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message. | |
void | RecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params) |
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message. | |
void | ReleaseDataRadioBearer (uint8_t drbid) |
Release a given radio bearer. | |
void | ScheduleRrcConnectionReconfiguration () |
schedule an RRC Connection Reconfiguration procedure with the UE | |
void | SendData (uint8_t bid, Ptr< Packet > p) |
Send a data packet over the appropriate Data Radio Bearer. | |
void | SendRrcConnectionRelease () |
This function acts as an interface to trigger the connection release towards eNB, EPC and UE. | |
void | SendUeContextRelease () |
send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handover procedure | |
void | SetImsi (uint64_t imsi) |
Set the IMSI. | |
void | SetPdschConfigDedicated (LteRrcSap::PdschConfigDedicated pdschConfigDedicated) |
Configure PdschConfigDedicated (i.e. | |
void | SetSource (uint16_t sourceCellId, uint16_t sourceX2apId) |
Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a handover procedure. | |
void | SetSrsConfigurationIndex (uint16_t srsConfIndex) |
Set the SRS configuration index and do the necessary reconfiguration. | |
void | SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress) |
Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC signaling with the UE. | |
void | StartDataRadioBearers () |
Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBearersToBeStarted() | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
virtual TypeId | GetInstanceTypeId () const =0 |
Get the most derived TypeId for this Object. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Member Functions | |
void | DoDispose () override |
Destructor implementation. | |
void | DoInitialize () override |
Initialize() implementation. | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoDispose () |
Destructor implementation. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Private Attributes | |
bool | m_caSupportConfigured |
Define if the Carrier Aggregation was already configure for the current UE on not. | |
uint8_t | m_componentCarrierId |
ID of the primary CC for this UE. | |
EventId | m_connectionRejectedTimeout |
The delay before a connection rejected timeout occurs. | |
EventId | m_connectionRequestTimeout |
Time limit before a connection request timeout occurs. | |
EventId | m_connectionSetupTimeout |
Time limit before a connection setup timeout occurs. | |
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > | m_drbCreatedTrace |
The DrbCreated trace source. | |
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > | m_drbMap |
The DataRadioBearerMap attribute. | |
LtePdcpSapUser * | m_drbPdcpSapUser |
DRB PDCP SAP user. | |
std::list< uint8_t > | m_drbsToBeStarted |
DRBS to be started. | |
EventId | m_handoverJoiningTimeout |
Time limit before a handover joining timeout occurs. | |
EventId | m_handoverLeavingTimeout |
Time limit before a handover leaving timeout occurs. | |
uint64_t | m_imsi |
International Mobile Subscriber Identity assigned to this UE. | |
uint8_t | m_lastAllocatedDrbid |
last allocated Data Radio Bearer ID | |
uint8_t | m_lastRrcTransactionIdentifier |
last RRC transaction identifier | |
bool | m_needPhyMacConfiguration |
need Phy MAC configuration | |
std::list< std::pair< uint8_t, Ptr< Packet > > > | m_packetBuffer |
Packet buffer for when UE is doing the handover. | |
bool | m_pendingRrcConnectionReconfiguration |
pending RRC connection reconfiguration | |
bool | m_pendingStartDataRadioBearers |
Pending start data radio bearers. | |
LteRrcSap::PhysicalConfigDedicated | m_physicalConfigDedicated |
physical config dedicated | |
uint16_t | m_rnti |
The C-RNTI attribute. | |
Ptr< LteEnbRrc > | m_rrc |
Pointer to the parent eNodeB RRC. | |
uint16_t | m_sourceCellId |
source cell ID | |
uint16_t | m_sourceX2apId |
source X2 ap ID | |
Ptr< LteSignalingRadioBearerInfo > | m_srb0 |
The Srb0 attribute. | |
Ptr< LteSignalingRadioBearerInfo > | m_srb1 |
The Srb1 attribute. | |
State | m_state |
The current UeManager state. | |
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > | m_stateTransitionTrace |
The StateTransition trace source. | |
uint16_t | m_targetCellId |
target cell ID | |
uint16_t | m_targetX2apId |
target X2 ap ID | |
Friends | |
class | LtePdcpSpecificLtePdcpSapUser< UeManager > |
allow LtePdcpSpecificLtePdcpSapUser<UeManager> class friend access | |
Additional Inherited Members | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Manages all the radio bearer information possessed by the ENB RRC for a single UE.
ns3::UeManager is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 376 bytes (on a 64-bit architecture).
Definition at line 66 of file lte-enb-rrc.h.
typedef void(* ns3::UeManager::StateTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const State oldState, const State newState) |
TracedCallback signature for state transition events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | oldState | |
[in] | newState |
Definition at line 415 of file lte-enb-rrc.h.
The state of the UeManager at the eNB RRC.
Definition at line 76 of file lte-enb-rrc.h.
ns3::UeManager::UeManager | ( | ) |
Definition at line 141 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR.
ns3::UeManager::UeManager | ( | Ptr< LteEnbRrc > | rrc, |
uint16_t | rnti, | ||
State | s, | ||
uint8_t | componentCarrierId | ||
) |
UeManager constructor.
rrc | pointer to the LteEnbRrc holding this UeManager |
rnti | RNTI of the UE |
s | initial state of the UeManager |
componentCarrierId | primary component carrier ID |
Definition at line 146 of file lte-enb-rrc.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 314 of file lte-enb-rrc.cc.
|
private |
Add a new LteDataRadioBearerInfo structure to the UeManager.
radioBearerInfo |
Definition at line 1562 of file lte-enb-rrc.cc.
References m_drbMap, m_lastAllocatedDrbid, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by SetupDataRadioBearer().
|
private |
bid | an EPS Bearer Identifier |
Definition at line 1705 of file lte-enb-rrc.cc.
Referenced by SendData(), and SendPacket().
|
private |
bid | an EPS Bearer Identifier |
Definition at line 1693 of file lte-enb-rrc.cc.
Referenced by SendPacket().
EpcX2Sap::HandoverCancelParams ns3::UeManager::BuildHoCancelMsg | ( | ) |
build handover cancel message
Definition at line 1548 of file lte-enb-rrc.cc.
References m_componentCarrierId, m_rnti, m_rrc, m_targetCellId, m_targetX2apId, and NS_LOG_FUNCTION.
EpcX2Sap::HandoverPreparationFailureParams ns3::UeManager::BuildHoPrepFailMsg | ( | ) |
build handover preparation failure message
Definition at line 1534 of file lte-enb-rrc.cc.
References m_componentCarrierId, m_rrc, m_sourceCellId, m_sourceX2apId, and NS_LOG_FUNCTION.
|
private |
Definition at line 1764 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::UlPowerControlCommonSCell::alpha, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::antennaInfo, ns3::LteRrcSap::NonUlConfiguration::antennaInfoCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::antennaInfoUl, ns3::LteRrcSap::AntennaInfoCommon::antennaPortsCount, ns3::LteRrcSap::SCellToAddMod::cellIdentification, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::crossCarrierSchedulingConfig, ns3::LteRrcSap::PdschConfigDedicated::dB0, ns3::LteRrcSap::NonUlConfiguration::dlBandwidth, ns3::LteRrcSap::CellIdentification::dlCarrierFreq, GetSrsConfigurationIndex(), ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveAntennaInfoUlDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveNonUlConfiguration, ns3::LteRrcSap::RadioResourceConfigCommonSCell::haveNonUlConfiguration, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::havePdschConfigDedicated, ns3::LteRrcSap::SCellToAddMod::haveRadioResourceConfigDedicatedSCell, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveSoundingRsUlConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::haveUlConfiguration, ns3::LteRrcSap::RadioResourceConfigCommonSCell::haveUlConfiguration, ns3::LteRrcSap::PrachConfigSCell::index, m_componentCarrierId, m_rrc, ns3::LteRrcSap::RadioResourceConfigCommonSCell::nonUlConfiguration, ns3::LteRrcSap::PuschConfigDedicatedSCell::nPuschIdentity, NS_LOG_FUNCTION, ns3::LteRrcSap::PdschConfigDedicated::pa, ns3::LteRrcSap::PdschConfigCommon::pb, ns3::LteRrcSap::NonUlConfiguration::pdschConfigCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::pdschConfigDedicated, ns3::LteRrcSap::CellIdentification::physCellId, ns3::LteRrcSap::RadioResourceConfigDedicatedSCell::physicalConfigDedicatedSCell, ns3::LteRrcSap::UlConfiguration::prachConfigSCell, ns3::LteRrcSap::UlPowerControlDedicatedSCell::pSrsOffset, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::pushConfigDedicatedSCell, ns3::LteRrcSap::SCellToAddMod::radioResourceConfigCommonSCell, ns3::LteRrcSap::SCellToAddMod::radioResourceConfigDedicatedSCell, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::LteRrcSap::SCellToAddMod::sCellIndex, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToAddModList, ns3::LteRrcSap::SoundingRsUlConfigDedicated::SETUP, ns3::LteRrcSap::UlConfiguration::soundingRsUlConfigCommon, ns3::LteRrcSap::PhysicalConfigDedicatedSCell::soundingRsUlConfigDedicated, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsBandwidth, ns3::LteRrcSap::SoundingRsUlConfigCommon::srsBandwidthConfig, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::LteRrcSap::SoundingRsUlConfigCommon::srsSubframeConfig, ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, ns3::LteRrcSap::SoundingRsUlConfigDedicated::type, ns3::LteRrcSap::FreqInfo::ulBandwidth, ns3::LteRrcSap::FreqInfo::ulCarrierFreq, ns3::LteRrcSap::RadioResourceConfigCommonSCell::ulConfiguration, ns3::LteRrcSap::UlConfiguration::ulFreqInfo, ns3::LteRrcSap::UlConfiguration::ulPowerControlCommonSCell, and ns3::LteRrcSap::PhysicalConfigDedicatedSCell::ulPowerControlDedicatedSCell.
Referenced by BuildRrcConnectionReconfiguration().
|
private |
Definition at line 1632 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::DrbToAddMod::drbIdentity, ns3::LteRrcSap::RadioResourceConfigDedicated::drbToAddModList, ns3::LteRrcSap::DrbToAddMod::epsBearerIdentity, ns3::LteRrcSap::RadioResourceConfigDedicated::havePhysicalConfigDedicated, ns3::LteRrcSap::SrbToAddMod::logicalChannelConfig, ns3::LteRrcSap::DrbToAddMod::logicalChannelConfig, ns3::LteRrcSap::DrbToAddMod::logicalChannelIdentity, m_drbMap, m_physicalConfigDedicated, m_srb1, NS_LOG_FUNCTION, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, ns3::LteRrcSap::DrbToAddMod::rlcConfig, ns3::LteRrcSap::SrbToAddMod::srbIdentity, and ns3::LteRrcSap::RadioResourceConfigDedicated::srbToAddModList.
Referenced by BuildRrcConnectionReconfiguration(), GetRadioResourceConfigForHandoverPreparationInfo(), RecvRrcConnectionReestablishmentRequest(), and RecvRrcConnectionRequest().
|
private |
Definition at line 1605 of file lte-enb-rrc.cc.
References BuildNonCriticalExtensionConfigurationCa(), BuildRadioResourceConfigDedicated(), GetNewRrcTransactionIdentifier(), ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, m_caSupportConfigured, m_rrc, ns3::LteRrcSap::RrcConnectionReconfiguration::measConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated, and ns3::LteRrcSap::RrcConnectionReconfiguration::rrcTransactionIdentifier.
Referenced by GetRrcConnectionReconfigurationForHandover(), and ScheduleRrcConnectionReconfiguration().
void ns3::UeManager::CancelPendingEvents | ( | ) |
Cancel all timers which are running for the UE.
Definition at line 1523 of file lte-enb-rrc.cc.
References ns3::EventId::Cancel(), m_connectionRejectedTimeout, m_connectionRequestTimeout, m_connectionSetupTimeout, m_handoverJoiningTimeout, m_handoverLeavingTimeout, and NS_LOG_FUNCTION.
void ns3::UeManager::CmacUeConfigUpdateInd | ( | LteEnbCmacSapUser::UeConfig | cmacParams | ) |
CMAC UE config update indication function.
cmacParams | the UE config parameters |
Definition at line 1428 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, m_needPhyMacConfiguration, m_physicalConfigDedicated, m_rnti, ns3::LteEnbCmacSapUser::UeConfig::m_transmissionMode, NS_LOG_FUNCTION, ScheduleRrcConnectionReconfiguration(), and ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode.
void ns3::UeManager::CompleteSetupUe | ( | LteEnbRrcSapProvider::CompleteSetupUeParameters | params | ) |
Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
params | CompleteSetupUeParameters |
Definition at line 1134 of file lte-enb-rrc.cc.
References m_srb0, m_srb1, and NS_LOG_FUNCTION.
|
overrideprotectedvirtual |
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 319 of file lte-enb-rrc.cc.
References m_drbMap, m_drbPdcpSapUser, and m_rrc.
|
overrideprotectedvirtual |
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 165 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteEnbRrc::ConnectionRequestTimeout(), ns3::LteRrcSap::PdschConfigDedicated::dB0, ns3::EpsBearer::GBR_CONV_VOICE, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, HANDOVER_JOINING, ns3::LteEnbRrc::HandoverJoiningTimeout(), ns3::LteRrcSap::PhysicalConfigDedicated::haveAntennaInfoDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::havePdschConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::haveSoundingRsUlConfigDedicated, INITIAL_RANDOM_ACCESS, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, LtePdcpSpecificLtePdcpSapUser< UeManager >, m_caSupportConfigured, m_componentCarrierId, m_connectionRequestTimeout, m_drbPdcpSapUser, m_handoverJoiningTimeout, m_physicalConfigDedicated, ns3::LteEnbCmacSapProvider::UeConfig::m_rnti, m_rnti, m_rrc, m_srb0, m_srb1, m_state, ns3::LteEnbCmacSapProvider::UeConfig::m_transmissionMode, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::PdschConfigDedicated::pa, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::LteEnbCmacSapProvider::LcInfo::resourceType, ns3::LteEnbCmacSapProvider::LcInfo::rnti, ns3::Simulator::Schedule(), ns3::LteRrcSap::SoundingRsUlConfigDedicated::SETUP, ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, ns3::LteEnbRrcSapUser::SetupUeParameters::srb0SapProvider, ns3::LteEnbRrcSapUser::SetupUeParameters::srb1SapProvider, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsBandwidth, ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex, ns3::ToString(), ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::type.
void ns3::UeManager::DoReceivePdcpSdu | ( | LtePdcpSapUser::ReceivePdcpSduParameters | params | ) |
Receive PDCP SDU function.
params | the receive PDCP SDU parameters |
Definition at line 1444 of file lte-enb-rrc.cc.
References Lcid2Bid(), m_rrc, NS_LOG_FUNCTION, ns3::EpsBearerTag::SetBid(), and ns3::EpsBearerTag::SetRnti().
|
private |
drbid | Data Radio Bearer Id |
Definition at line 1699 of file lte-enb-rrc.cc.
Referenced by SetupDataRadioBearer().
|
private |
drbid | a Data Radio Bearer Id |
Definition at line 1680 of file lte-enb-rrc.cc.
Referenced by ReleaseDataRadioBearer(), and SetupDataRadioBearer().
uint8_t ns3::UeManager::GetComponentCarrierId | ( | ) | const |
Definition at line 1471 of file lte-enb-rrc.cc.
References m_componentCarrierId.
|
private |
drbid | the Data Radio Bearer id |
Definition at line 1585 of file lte-enb-rrc.cc.
References m_drbMap, NS_ABORT_IF, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by SendData(), and SendPacket().
std::vector< EpcX2Sap::ErabToBeSetupItem > ns3::UeManager::GetErabList | ( | ) |
Definition at line 1001 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::ErabToBeSetupItem::dlForwarding, ns3::EpcX2Sap::ErabToBeSetupItem::erabId, ns3::EpcX2Sap::ErabToBeSetupItem::erabLevelQosParameters, ns3::EpcX2Sap::ErabToBeSetupItem::gtpTeid, m_drbMap, NS_LOG_FUNCTION, and ns3::EpcX2Sap::ErabToBeSetupItem::transportLayerAddress.
Referenced by PrepareHandover().
uint64_t ns3::UeManager::GetImsi | ( | ) | const |
Definition at line 1465 of file lte-enb-rrc.cc.
References m_imsi.
Referenced by ns3::LteStatsCalculator::FindImsiFromEnbRlcPath(), and RecvIdealUeContextRemoveRequest().
|
private |
Definition at line 1664 of file lte-enb-rrc.cc.
References m_lastRrcTransactionIdentifier, and NS_LOG_FUNCTION.
Referenced by BuildRrcConnectionReconfiguration(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), and SendRrcConnectionRelease().
LteRrcSap::RadioResourceConfigDedicated ns3::UeManager::GetRadioResourceConfigForHandoverPreparationInfo | ( | ) |
Definition at line 877 of file lte-enb-rrc.cc.
References BuildRadioResourceConfigDedicated(), and NS_LOG_FUNCTION.
Referenced by PrepareHandover().
uint16_t ns3::UeManager::GetRnti | ( | ) | const |
Definition at line 1459 of file lte-enb-rrc.cc.
References m_rnti.
LteRrcSap::RrcConnectionReconfiguration ns3::UeManager::GetRrcConnectionReconfigurationForHandover | ( | uint8_t | componentCarrierId | ) |
componentCarrierId | target component carrier ID |
Definition at line 884 of file lte-enb-rrc.cc.
References BuildRrcConnectionReconfiguration(), ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, m_caSupportConfigured, m_componentCarrierId, m_rrc, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_LOG_FUNCTION, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToReleaseList, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, and ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq.
Referenced by PrepareHandover().
uint16_t ns3::UeManager::GetSrsConfigurationIndex | ( | ) | const |
Definition at line 1477 of file lte-enb-rrc.cc.
References m_physicalConfigDedicated, ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex.
Referenced by BuildNonCriticalExtensionConfigurationCa().
UeManager::State ns3::UeManager::GetState | ( | ) | const |
|
static |
Get the type ID.
Definition at line 332 of file lte-enb-rrc.cc.
References ns3::TypeId::ATTR_GET, m_drbCreatedTrace, m_drbMap, m_rnti, m_srb0, m_srb1, m_stateTransitionTrace, ns3::MakeObjectMapAccessor(), ns3::MakePointerAccessor(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), and ns3::TypeId::SetParent().
void ns3::UeManager::InitialContextSetupRequest | ( | ) |
Process Initial context setup request message from the MME.
It triggers RRC connection reconfiguration.
Definition at line 385 of file lte-enb-rrc.cc.
References ATTACH_REQUEST, CONNECTED_NORMALLY, m_rnti, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and ns3::ToString().
|
private |
lcid | a Logical Channel Identifier |
Definition at line 1686 of file lte-enb-rrc.cc.
References NS_ASSERT.
Referenced by DoReceivePdcpSdu().
|
private |
lcid | a Logical Channel Identifier |
Definition at line 1673 of file lte-enb-rrc.cc.
References NS_ASSERT.
void ns3::UeManager::PrepareHandover | ( | uint16_t | cellId | ) |
Start the handover preparation and send the handover request.
cellId | id of the target cell |
Definition at line 665 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::HandoverPreparationInfo::asConfig, ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, CONNECTED_NORMALLY, ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, GetErabList(), GetRadioResourceConfigForHandoverPreparationInfo(), GetRrcConnectionReconfigurationForHandover(), HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PREPARATION, ns3::EpcX2Sap::HandoverDesirableForRadioReason, ns3::LteEnbRrc::HandoverLeavingTimeout(), ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, m_componentCarrierId, m_drbMap, m_handoverLeavingTimeout, m_imsi, m_rnti, m_rrc, m_state, m_targetCellId, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::PlmnIdentityInfo::plmnIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::plmnIdentityInfo, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommon::rachConfigCommon, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::MobilityControlInfo::radioResourceConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPrachMaskIndex, ns3::LteRrcSap::RachConfigDedicated::raPrachMaskIndex, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPreambleId, ns3::LteRrcSap::RachConfigDedicated::raPreambleIndex, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, ns3::Simulator::Schedule(), ns3::LteRrcSap::AsConfig::sourceDlCarrierFreq, ns3::LteRrcSap::AsConfig::sourceMasterInformationBlock, ns3::LteRrcSap::AsConfig::sourceMeasConfig, ns3::LteRrcSap::AsConfig::sourceRadioResourceConfig, ns3::LteRrcSap::AsConfig::sourceSystemInformationBlockType1, ns3::LteRrcSap::AsConfig::sourceSystemInformationBlockType2, ns3::LteRrcSap::AsConfig::sourceUeIdentity, SwitchToState(), ns3::LteRrcSap::MasterInformationBlock::systemFrameNumber, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::ToString(), ns3::LteRrcSap::RachConfigCommon::txFailParam, ns3::LteRrcSap::FreqInfo::ulBandwidth, ns3::LteRrcSap::FreqInfo::ulCarrierFreq, and ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::valid.
void ns3::UeManager::RecordDataRadioBearersToBeStarted | ( | ) |
Start all configured data radio bearers.
It is safe to call this method if any bearer had been already started previously.
Definition at line 523 of file lte-enb-rrc.cc.
References m_drbMap, m_drbsToBeStarted, m_rnti, and NS_LOG_FUNCTION.
Referenced by RecvRrcConnectionRequest(), and ScheduleRrcConnectionReconfiguration().
void ns3::UeManager::RecvHandoverCancel | ( | EpcX2SapUser::HandoverCancelParams | params | ) |
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.
params | the SN STATUS |
Definition at line 1106 of file lte-enb-rrc.cc.
References ns3::EventId::Cancel(), HANDOVER_JOINING, m_handoverJoiningTimeout, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::ToString().
void ns3::UeManager::RecvHandoverPreparationFailure | ( | uint16_t | cellId | ) |
Take the necessary actions in response to the reception of an X2 HO preparation failure message.
cellId | id of the target cell |
Definition at line 1055 of file lte-enb-rrc.cc.
References ns3::EventId::Cancel(), CONNECTED_NORMALLY, HANDOVER_LEAVING, HANDOVER_PREPARATION, m_handoverLeavingTimeout, m_state, m_targetCellId, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, SendRrcConnectionRelease(), SwitchToState(), and ns3::ToString().
void ns3::UeManager::RecvHandoverRequestAck | ( | EpcX2SapUser::HandoverRequestAckParams | params | ) |
take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message
params |
Definition at line 805 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::ErabsSubjectToStatusTransferItem::dlPdcpSn, ns3::EpcX2Sap::SnStatusTransferParams::erabsSubjectToStatusTransferList, HANDOVER_LEAVING, ns3::LteEnbRrc::HandoverLeavingTimeout(), ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, m_componentCarrierId, m_drbMap, m_handoverLeavingTimeout, m_imsi, m_rnti, m_rrc, m_targetCellId, m_targetX2apId, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::EpcX2Sap::SnStatusTransferParams::newEnbUeX2apId, ns3::LteRrcSap::RrcConnectionReconfiguration::nonCriticalExtension, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::EpcX2Sap::SnStatusTransferParams::oldEnbUeX2apId, ns3::LtePdcp::Status::rxSn, ns3::LteRrcSap::NonCriticalExtensionConfiguration::sCellToAddModList, ns3::Simulator::Schedule(), ns3::EpcX2Sap::SnStatusTransferParams::sourceCellId, SwitchToState(), ns3::EpcX2Sap::SnStatusTransferParams::targetCellId, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::LtePdcp::Status::txSn, and ns3::EpcX2Sap::ErabsSubjectToStatusTransferItem::ulPdcpSn.
void ns3::UeManager::RecvIdealUeContextRemoveRequest | ( | uint16_t | rnti | ) |
Implement the LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface.
rnti | the C-RNTI identifying the user |
Definition at line 613 of file lte-enb-rrc.cc.
References GetImsi(), m_drbMap, m_rnti, m_rrc, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
void ns3::UeManager::RecvMeasurementReport | ( | LteRrcSap::MeasurementReport | msg | ) |
Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface.
msg | the measrurement report |
ToDo: implement on Ffr algorithm the code to properly parsing the new measResults message format alternatively it is needed to 'repack' properly the measResults message before sending to Ffr
Report any measurements to ComponentCarrierManager, so it can react to any change or activate the SCC
Definition at line 1350 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::MeasResults::haveMeasResultNeighCells, ns3::LteRrcSap::MeasResults::haveMeasResultServFreqList, m_componentCarrierId, m_imsi, m_rnti, m_rrc, ns3::LteRrcSap::MeasResults::measId, ns3::LteRrcSap::MeasResults::measResultListEutra, ns3::LteRrcSap::MeasResults::measResultPCell, ns3::LteRrcSap::MeasurementReport::measResults, ns3::LteRrcSap::MeasResults::measResultServFreqList, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LteRrcSap::MeasResultPCell::rsrpResult, and ns3::LteRrcSap::MeasResultPCell::rsrqResult.
void ns3::UeManager::RecvRrcConnectionReconfigurationCompleted | ( | LteRrcSap::RrcConnectionReconfigurationCompleted | msg | ) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface.
msg | RRC connection reconfiguration completed message |
Definition at line 1227 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::EventId::Cancel(), CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, ns3::LteRrcSap::ConvertPdschConfigDedicated2Double(), ns3::EpcEnbS1SapProvider::BearerToBeSwitched::epsBearerId, HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PATH_SWITCH, m_componentCarrierId, m_drbMap, m_handoverJoiningTimeout, m_imsi, m_needPhyMacConfiguration, m_packetBuffer, m_physicalConfigDedicated, ns3::LteEnbCmacSapProvider::UeConfig::m_rnti, m_rnti, m_rrc, m_state, ns3::LteEnbCmacSapProvider::UeConfig::m_transmissionMode, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, SendPacket(), StartDataRadioBearers(), SwitchToState(), ns3::EpcEnbS1SapProvider::BearerToBeSwitched::teid, ns3::ToString(), and ns3::LteRrcSap::AntennaInfoDedicated::transmissionMode.
void ns3::UeManager::RecvRrcConnectionReestablishmentComplete | ( | LteRrcSap::RrcConnectionReestablishmentComplete | msg | ) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface.
msg | the RRC connection reestablsihment complete message |
Definition at line 1342 of file lte-enb-rrc.cc.
References CONNECTED_NORMALLY, NS_LOG_FUNCTION, and SwitchToState().
void ns3::UeManager::RecvRrcConnectionReestablishmentRequest | ( | LteRrcSap::RrcConnectionReestablishmentRequest | msg | ) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface.
msg | the RRC connection reestablishment request message |
Definition at line 1316 of file lte-enb-rrc.cc.
References BuildRadioResourceConfigDedicated(), ns3::EventId::Cancel(), CONNECTED_NORMALLY, CONNECTION_REESTABLISHMENT, GetNewRrcTransactionIdentifier(), HANDOVER_LEAVING, m_handoverLeavingTimeout, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::LteRrcSap::RrcConnectionReestablishment::radioResourceConfigDedicated, ns3::LteRrcSap::RrcConnectionReestablishment::rrcTransactionIdentifier, SwitchToState(), and ns3::ToString().
void ns3::UeManager::RecvRrcConnectionRequest | ( | LteRrcSap::RrcConnectionRequest | msg | ) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface.
msg | the RRC connection request message |
Definition at line 1142 of file lte-enb-rrc.cc.
References BuildRadioResourceConfigDedicated(), ns3::EventId::Cancel(), CONNECTION_REJECTED, CONNECTION_SETUP, ns3::LteEnbRrc::ConnectionRejectedTimeout(), ns3::LteEnbRrc::ConnectionSetupTimeout(), GetNewRrcTransactionIdentifier(), INITIAL_RANDOM_ACCESS, m_connectionRejectedTimeout, m_connectionRequestTimeout, m_connectionSetupTimeout, m_imsi, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::LteRrcSap::RrcConnectionSetup::radioResourceConfigDedicated, RecordDataRadioBearersToBeStarted(), ns3::LteRrcSap::RrcConnectionSetup::rrcTransactionIdentifier, ns3::Simulator::Schedule(), SwitchToState(), ns3::ToString(), ns3::LteRrcSap::RrcConnectionRequest::ueIdentity, and ns3::LteRrcSap::RrcConnectionReject::waitTime.
void ns3::UeManager::RecvRrcConnectionSetupCompleted | ( | LteRrcSap::RrcConnectionSetupCompleted | msg | ) |
Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface.
msg | RRC connection setup completed message |
Definition at line 1193 of file lte-enb-rrc.cc.
References ATTACH_REQUEST, ns3::EventId::Cancel(), CONNECTED_NORMALLY, CONNECTION_SETUP, m_caSupportConfigured, m_componentCarrierId, m_connectionSetupTimeout, m_imsi, m_pendingRrcConnectionReconfiguration, m_pendingStartDataRadioBearers, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, SwitchToState(), and ns3::ToString().
void ns3::UeManager::RecvSnStatusTransfer | ( | EpcX2SapUser::SnStatusTransferParams | params | ) |
Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message.
params | the SN STATUS |
Definition at line 1079 of file lte-enb-rrc.cc.
References NS_LOG_FUNCTION.
void ns3::UeManager::RecvUeContextRelease | ( | EpcX2SapUser::UeContextReleaseParams | params | ) |
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message.
params | the SN STATUS |
Definition at line 1098 of file lte-enb-rrc.cc.
References ns3::EventId::Cancel(), HANDOVER_LEAVING, m_handoverLeavingTimeout, m_state, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::ToString().
void ns3::UeManager::ReleaseDataRadioBearer | ( | uint8_t | drbid | ) |
Release a given radio bearer.
drbid | the data radio bearer id of the bearer to be released |
Definition at line 554 of file lte-enb-rrc.cc.
References Drbid2Lcid(), ns3::LteRrcSap::RadioResourceConfigDedicated::drbToReleaseList, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::RrcConnectionReconfiguration::haveNonCriticalExtension, ns3::LteRrcSap::RadioResourceConfigDedicated::havePhysicalConfigDedicated, ns3::LteRrcSap::RrcConnectionReconfiguration::haveRadioResourceConfigDedicated, m_drbMap, m_physicalConfigDedicated, m_rnti, m_rrc, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated, and ns3::LteRrcSap::RrcConnectionReconfiguration::radioResourceConfigDedicated.
|
private |
remove the LteDataRadioBearerInfo corresponding to a bearer being released
drbid | the Data Radio Bearer id |
Definition at line 1595 of file lte-enb-rrc.cc.
References m_drbMap, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
void ns3::UeManager::ScheduleRrcConnectionReconfiguration | ( | ) |
schedule an RRC Connection Reconfiguration procedure with the UE
Definition at line 632 of file lte-enb-rrc.cc.
References ATTACH_REQUEST, BuildRrcConnectionReconfiguration(), CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, CONNECTION_REESTABLISHMENT, CONNECTION_SETUP, HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PREPARATION, INITIAL_RANDOM_ACCESS, m_pendingRrcConnectionReconfiguration, m_rnti, m_rrc, m_state, NS_FATAL_ERROR, NS_LOG_FUNCTION, RecordDataRadioBearersToBeStarted(), SwitchToState(), and ns3::ToString().
Referenced by CmacUeConfigUpdateInd(), SetPdschConfigDedicated(), SetSrsConfigurationIndex(), SetupDataRadioBearer(), and SwitchToState().
Send a data packet over the appropriate Data Radio Bearer.
If state is HANDOVER_JOINING (i.e. target eNB has received the Handover Request), the packet is buffered. If state is HANDOVER_LEAVING (i.e. source eNB has received the RRC Connection Reconfiguration, the packet is sent through the X2 interface.
bid | the corresponding EPS Bearer ID |
p | the packet |
Definition at line 955 of file lte-enb-rrc.cc.
References Bid2Drbid(), CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, CONNECTION_REESTABLISHMENT, CONNECTION_SETUP, GetDataRadioBearerInfo(), HANDOVER_JOINING, HANDOVER_LEAVING, HANDOVER_PATH_SWITCH, HANDOVER_PREPARATION, INITIAL_RANDOM_ACCESS, m_componentCarrierId, m_packetBuffer, m_rrc, m_state, m_targetCellId, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, NS_LOG_WARN, SendPacket(), and ns3::ToString().
Send a data packet over the appropriate Data Radio Bearer.
It is called by SendData if the UE is in a connected state or when the RRC Connection Reconfiguration Complete message is received and the packets are debuffered.
bid | the corresponding EPS Bearer ID |
p | the packet |
Definition at line 933 of file lte-enb-rrc.cc.
References Bid2Drbid(), Bid2Lcid(), GetDataRadioBearerInfo(), m_drbMap, m_rnti, NS_LOG_FUNCTION, and ns3::LtePdcpSapProvider::TransmitPdcpSdu().
Referenced by RecvRrcConnectionReconfigurationCompleted(), and SendData().
void ns3::UeManager::SendRrcConnectionRelease | ( | ) |
This function acts as an interface to trigger the connection release towards eNB, EPC and UE.
Bearer de-activation indication towards epc-enb application and removal of UE context at the eNodeB
Definition at line 1114 of file lte-enb-rrc.cc.
References GetNewRrcTransactionIdentifier(), m_rnti, m_rrc, NS_LOG_FUNCTION, and ns3::LteRrcSap::RrcConnectionRelease::rrcTransactionIdentifier.
Referenced by RecvHandoverPreparationFailure().
void ns3::UeManager::SendUeContextRelease | ( | ) |
send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handover procedure
Definition at line 1021 of file lte-enb-rrc.cc.
References CONNECTED_NORMALLY, HANDOVER_PATH_SWITCH, m_componentCarrierId, m_imsi, m_rnti, m_rrc, m_sourceCellId, m_sourceX2apId, m_state, m_targetCellId, ns3::EpcX2Sap::UeContextReleaseParams::newEnbUeX2apId, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::EpcX2Sap::UeContextReleaseParams::oldEnbUeX2apId, ns3::EpcX2Sap::UeContextReleaseParams::sourceCellId, SwitchToState(), ns3::EpcX2Sap::UeContextReleaseParams::targetCellId, and ns3::ToString().
void ns3::UeManager::SetImsi | ( | uint64_t | imsi | ) |
Set the IMSI.
imsi | the IMSI |
Definition at line 379 of file lte-enb-rrc.cc.
References m_imsi.
void ns3::UeManager::SetPdschConfigDedicated | ( | LteRrcSap::PdschConfigDedicated | pdschConfigDedicated | ) |
Configure PdschConfigDedicated (i.e.
P_A value) for UE and start RrcConnectionReconfiguration to inform UE about new PdschConfigDedicated
pdschConfigDedicated | new pdschConfigDedicated (i.e. P_A value) to be set |
Definition at line 1511 of file lte-enb-rrc.cc.
References m_needPhyMacConfiguration, m_physicalConfigDedicated, NS_LOG_FUNCTION, ns3::LteRrcSap::PhysicalConfigDedicated::pdschConfigDedicated, and ScheduleRrcConnectionReconfiguration().
void ns3::UeManager::SetSource | ( | uint16_t | sourceCellId, |
uint16_t | sourceX2apId | ||
) |
Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a handover procedure.
sourceCellId | |
sourceX2apId |
Definition at line 372 of file lte-enb-rrc.cc.
References m_sourceCellId, and m_sourceX2apId.
void ns3::UeManager::SetSrsConfigurationIndex | ( | uint16_t | srsConfIndex | ) |
Set the SRS configuration index and do the necessary reconfiguration.
srsConfIndex |
Definition at line 1483 of file lte-enb-rrc.cc.
References INITIAL_RANDOM_ACCESS, m_physicalConfigDedicated, m_rnti, m_rrc, m_state, NS_LOG_FUNCTION, ScheduleRrcConnectionReconfiguration(), ns3::LteRrcSap::PhysicalConfigDedicated::soundingRsUlConfigDedicated, and ns3::LteRrcSap::SoundingRsUlConfigDedicated::srsConfigIndex.
void ns3::UeManager::SetupDataRadioBearer | ( | EpsBearer | bearer, |
uint8_t | bearerId, | ||
uint32_t | gtpTeid, | ||
Ipv4Address | transportLayerAddress | ||
) |
Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC signaling with the UE.
bearer | the QoS characteristics of the bearer |
bearerId | the EPS bearer identifier |
gtpTeid | S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1 |
transportLayerAddress | IP Address of the SGW, see 36.423 9.2.1 |
Definition at line 400 of file lte-enb-rrc.cc.
References AddDataRadioBearerInfo(), ns3::LteRrcSap::RlcConfig::AM, ns3::ObjectFactory::Create(), ns3::LteEnbRrc::X2uTeidInfo::drbid, Drbid2Bid(), Drbid2Lcid(), ns3::EpsBearer::gbrQosInfo, ns3::GbrQosInformation::gbrUl, ns3::Object::GetObject(), ns3::EpsBearer::GetPacketDelayBudgetMs(), ns3::EpsBearer::GetResourceType(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), HANDOVER_JOINING, m_componentCarrierId, m_drbCreatedTrace, m_drbPdcpSapUser, m_imsi, m_rnti, m_rrc, m_state, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteEnbRrc::X2uTeidInfo::rnti, ScheduleRrcConnectionReconfiguration(), ns3::ObjectFactory::SetTypeId(), and ns3::LteRrcSap::RlcConfig::UM_BI_DIRECTIONAL.
void ns3::UeManager::StartDataRadioBearers | ( | ) |
Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBearersToBeStarted()
Definition at line 535 of file lte-enb-rrc.cc.
References m_drbMap, m_drbsToBeStarted, m_rnti, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by RecvRrcConnectionReconfigurationCompleted(), and SwitchToState().
|
private |
Switch the UeManager to the given state.
s | the given state |
Definition at line 1711 of file lte-enb-rrc.cc.
References ATTACH_REQUEST, CONNECTED_NORMALLY, CONNECTION_RECONFIGURATION, CONNECTION_REESTABLISHMENT, CONNECTION_SETUP, HANDOVER_JOINING, HANDOVER_LEAVING, INITIAL_RANDOM_ACCESS, m_caSupportConfigured, m_componentCarrierId, m_imsi, m_pendingRrcConnectionReconfiguration, m_pendingStartDataRadioBearers, m_rnti, m_rrc, m_state, m_stateTransitionTrace, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, ScheduleRrcConnectionReconfiguration(), StartDataRadioBearers(), and ns3::ToString().
Referenced by InitialContextSetupRequest(), PrepareHandover(), RecvHandoverPreparationFailure(), RecvHandoverRequestAck(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionReestablishmentComplete(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), RecvRrcConnectionSetupCompleted(), ScheduleRrcConnectionReconfiguration(), and SendUeContextRelease().
|
friend |
allow LtePdcpSpecificLtePdcpSapUser<UeManager> class friend access
Definition at line 1 of file lte-enb-rrc.h.
Referenced by DoInitialize().
|
private |
Define if the Carrier Aggregation was already configure for the current UE on not.
Definition at line 631 of file lte-enb-rrc.h.
Referenced by BuildRrcConnectionReconfiguration(), DoInitialize(), GetRrcConnectionReconfigurationForHandover(), RecvRrcConnectionSetupCompleted(), and SwitchToState().
|
private |
ID of the primary CC for this UE.
Definition at line 561 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), BuildHoPrepFailMsg(), BuildNonCriticalExtensionConfigurationCa(), DoInitialize(), GetComponentCarrierId(), GetRrcConnectionReconfigurationForHandover(), PrepareHandover(), RecvHandoverRequestAck(), RecvMeasurementReport(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionSetupCompleted(), SendData(), SendUeContextRelease(), SetupDataRadioBearer(), and SwitchToState().
|
private |
The delay before a connection rejected timeout occurs.
Set after an RRC CONNECTION REJECT is sent. Calling LteEnbRrc::ConnectionRejectedTimeout() when it expires.
Definition at line 614 of file lte-enb-rrc.h.
Referenced by CancelPendingEvents(), and RecvRrcConnectionRequest().
|
private |
Time limit before a connection request timeout occurs.
Set after a new UE context is added after a successful Random Access. Calling LteEnbRrc::ConnectionRequestTimeout() when it expires. Cancelled when RRC CONNECTION REQUEST is received.
Definition at line 602 of file lte-enb-rrc.h.
Referenced by CancelPendingEvents(), DoInitialize(), and RecvRrcConnectionRequest().
|
private |
Time limit before a connection setup timeout occurs.
Set after an RRC CONNECTION SETUP is sent. Calling LteEnbRrc::ConnectionSetupTimeout() when it expires. Cancelled when RRC CONNECTION SETUP COMPLETE is received.
Definition at line 608 of file lte-enb-rrc.h.
Referenced by CancelPendingEvents(), RecvRrcConnectionRequest(), and RecvRrcConnectionSetupCompleted().
|
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 587 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SetupDataRadioBearer().
|
private |
The DataRadioBearerMap
attribute.
List of UE DataRadioBearerInfo by DRBID.
Definition at line 538 of file lte-enb-rrc.h.
Referenced by AddDataRadioBearerInfo(), BuildRadioResourceConfigDedicated(), DoDispose(), GetDataRadioBearerInfo(), GetErabList(), GetTypeId(), PrepareHandover(), RecordDataRadioBearersToBeStarted(), RecvHandoverRequestAck(), RecvIdealUeContextRemoveRequest(), RecvRrcConnectionReconfigurationCompleted(), ReleaseDataRadioBearer(), RemoveDataRadioBearerInfo(), SendPacket(), and StartDataRadioBearers().
|
private |
DRB PDCP SAP user.
Definition at line 571 of file lte-enb-rrc.h.
Referenced by DoDispose(), DoInitialize(), and SetupDataRadioBearer().
|
private |
DRBS to be started.
Definition at line 593 of file lte-enb-rrc.h.
Referenced by RecordDataRadioBearersToBeStarted(), and StartDataRadioBearers().
|
private |
Time limit before a handover joining timeout occurs.
Set after a new UE context is added after receiving a handover request. Calling LteEnbRrc::HandoverJoiningTimeout() when it expires. Cancelled when RRC CONNECTION RECONFIGURATION COMPLETE is received.
Definition at line 621 of file lte-enb-rrc.h.
Referenced by CancelPendingEvents(), DoInitialize(), RecvHandoverCancel(), and RecvRrcConnectionReconfigurationCompleted().
|
private |
Time limit before a handover leaving timeout occurs.
Set after a handover command is sent. Calling LteEnbRrc::HandoverLeavingTimeout() when it expires. Cancelled when RRC CONNECTION RE-ESTABLISHMENT or X2 UE CONTEXT RELEASE is received.
Definition at line 628 of file lte-enb-rrc.h.
Referenced by CancelPendingEvents(), PrepareHandover(), RecvHandoverPreparationFailure(), RecvHandoverRequestAck(), RecvRrcConnectionReestablishmentRequest(), and RecvUeContextRelease().
|
private |
International Mobile Subscriber Identity assigned to this UE.
A globally unique UE identifier.
Definition at line 557 of file lte-enb-rrc.h.
Referenced by GetImsi(), PrepareHandover(), RecvHandoverRequestAck(), RecvMeasurementReport(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionRequest(), RecvRrcConnectionSetupCompleted(), SendUeContextRelease(), SetImsi(), SetupDataRadioBearer(), and SwitchToState().
|
private |
last allocated Data Radio Bearer ID
Definition at line 532 of file lte-enb-rrc.h.
Referenced by AddDataRadioBearerInfo().
|
private |
last RRC transaction identifier
Definition at line 563 of file lte-enb-rrc.h.
Referenced by GetNewRrcTransactionIdentifier().
|
private |
need Phy MAC configuration
Definition at line 594 of file lte-enb-rrc.h.
Referenced by CmacUeConfigUpdateInd(), RecvRrcConnectionReconfigurationCompleted(), and SetPdschConfigDedicated().
Packet buffer for when UE is doing the handover.
The packets are stored with the bid (bearer ID).
Source eNB starts forwarding data to target eNB through the X2 interface when it sends RRC Connection Reconfiguration to the UE. Target eNB buffers data until it receives RRC Connection Reconfiguration Complete from the UE.
Definition at line 645 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionReconfigurationCompleted(), and SendData().
|
private |
pending RRC connection reconfiguration
Definition at line 573 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionSetupCompleted(), ScheduleRrcConnectionReconfiguration(), and SwitchToState().
|
private |
Pending start data radio bearers.
Definition at line 634 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionSetupCompleted(), and SwitchToState().
|
private |
physical config dedicated
Definition at line 565 of file lte-enb-rrc.h.
Referenced by BuildRadioResourceConfigDedicated(), CmacUeConfigUpdateInd(), DoInitialize(), GetSrsConfigurationIndex(), RecvRrcConnectionReconfigurationCompleted(), ReleaseDataRadioBearer(), SetPdschConfigDedicated(), and SetSrsConfigurationIndex().
|
private |
The C-RNTI
attribute.
Cell Radio Network Temporary Identifier.
Definition at line 552 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), CmacUeConfigUpdateInd(), DoInitialize(), GetRnti(), GetTypeId(), InitialContextSetupRequest(), PrepareHandover(), RecordDataRadioBearersToBeStarted(), RecvHandoverRequestAck(), RecvIdealUeContextRemoveRequest(), RecvMeasurementReport(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), RecvRrcConnectionSetupCompleted(), ReleaseDataRadioBearer(), ScheduleRrcConnectionReconfiguration(), SendPacket(), SendRrcConnectionRelease(), SendUeContextRelease(), SetSrsConfigurationIndex(), SetupDataRadioBearer(), StartDataRadioBearers(), and SwitchToState().
Pointer to the parent eNodeB RRC.
Definition at line 567 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), BuildHoPrepFailMsg(), BuildNonCriticalExtensionConfigurationCa(), BuildRrcConnectionReconfiguration(), DoDispose(), DoInitialize(), DoReceivePdcpSdu(), GetRrcConnectionReconfigurationForHandover(), PrepareHandover(), RecvHandoverRequestAck(), RecvIdealUeContextRemoveRequest(), RecvMeasurementReport(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), RecvRrcConnectionSetupCompleted(), ReleaseDataRadioBearer(), ScheduleRrcConnectionReconfiguration(), SendData(), SendRrcConnectionRelease(), SendUeContextRelease(), SetSrsConfigurationIndex(), SetupDataRadioBearer(), and SwitchToState().
|
private |
source cell ID
Definition at line 591 of file lte-enb-rrc.h.
Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().
|
private |
source X2 ap ID
Definition at line 589 of file lte-enb-rrc.h.
Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().
|
private |
The Srb0
attribute.
SignalingRadioBearerInfo for SRB0.
Definition at line 543 of file lte-enb-rrc.h.
Referenced by CompleteSetupUe(), DoInitialize(), and GetTypeId().
|
private |
The Srb1
attribute.
SignalingRadioBearerInfo for SRB1.
Definition at line 547 of file lte-enb-rrc.h.
Referenced by BuildRadioResourceConfigDedicated(), CompleteSetupUe(), DoInitialize(), and GetTypeId().
|
private |
The current UeManager state.
Definition at line 569 of file lte-enb-rrc.h.
Referenced by DoInitialize(), GetState(), InitialContextSetupRequest(), PrepareHandover(), RecvHandoverCancel(), RecvHandoverPreparationFailure(), RecvRrcConnectionReconfigurationCompleted(), RecvRrcConnectionReestablishmentRequest(), RecvRrcConnectionRequest(), RecvRrcConnectionSetupCompleted(), RecvUeContextRelease(), ScheduleRrcConnectionReconfiguration(), SendData(), SendUeContextRelease(), SetSrsConfigurationIndex(), SetupDataRadioBearer(), and SwitchToState().
|
private |
The StateTransition
trace source.
Fired upon every UE state transition seen by the UeManager at the eNB RRC. Exporting IMSI, cell ID, RNTI, old state, and new state.
Definition at line 580 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SwitchToState().
|
private |
target cell ID
Definition at line 592 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), PrepareHandover(), RecvHandoverPreparationFailure(), RecvHandoverRequestAck(), SendData(), and SendUeContextRelease().
|
private |
target X2 ap ID
Definition at line 590 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), and RecvHandoverRequestAck().