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. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
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, bool permissive=false) 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. | |
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 | 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 Symbols 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.
Definition at line 56 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 405 of file lte-enb-rrc.h.
The state of the UeManager at the eNB RRC.
Definition at line 66 of file lte-enb-rrc.h.
ns3::UeManager::UeManager | ( | ) |
Definition at line 132 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 137 of file lte-enb-rrc.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 305 of file lte-enb-rrc.cc.
|
private |
Add a new LteDataRadioBearerInfo structure to the UeManager.
radioBearerInfo |
Definition at line 1539 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 1680 of file lte-enb-rrc.cc.
Referenced by SendData(), and SendPacket().
|
private |
bid | an EPS Bearer Identifier |
Definition at line 1668 of file lte-enb-rrc.cc.
Referenced by SendPacket().
EpcX2Sap::HandoverCancelParams ns3::UeManager::BuildHoCancelMsg | ( | ) |
build handover cancel message
Definition at line 1525 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 1511 of file lte-enb-rrc.cc.
References m_componentCarrierId, m_rrc, m_sourceCellId, m_sourceX2apId, and NS_LOG_FUNCTION.
|
private |
Definition at line 1731 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 1609 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::DrbToAddMod::logicalChannelConfig, ns3::LteRrcSap::SrbToAddMod::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 1582 of file lte-enb-rrc.cc.
References BuildNonCriticalExtensionConfigurationCa(), BuildRadioResourceConfigDedicated(), GetNewRrcTransactionIdentifier(), m_caSupportConfigured, m_rrc, NS_LOG_FUNCTION, 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 1500 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 1405 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 1114 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 310 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 156 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::PhysicalConfigDedicated::antennaInfo, ns3::LteEnbRrc::ConnectionRequestTimeout(), ns3::CreateObject(), 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 1421 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 1674 of file lte-enb-rrc.cc.
Referenced by SetupDataRadioBearer().
|
private |
drbid | a Data Radio Bearer Id |
Definition at line 1655 of file lte-enb-rrc.cc.
Referenced by ReleaseDataRadioBearer(), and SetupDataRadioBearer().
uint8_t ns3::UeManager::GetComponentCarrierId | ( | ) | const |
Definition at line 1448 of file lte-enb-rrc.cc.
References m_componentCarrierId.
|
private |
drbid | the Data Radio Bearer id |
Definition at line 1562 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 984 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 1442 of file lte-enb-rrc.cc.
References m_imsi.
Referenced by ns3::LteStatsCalculator::FindImsiFromEnbRlcPath(), and RecvIdealUeContextRemoveRequest().
|
private |
Definition at line 1639 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 859 of file lte-enb-rrc.cc.
References BuildRadioResourceConfigDedicated(), and NS_LOG_FUNCTION.
Referenced by PrepareHandover().
uint16_t ns3::UeManager::GetRnti | ( | ) | const |
Definition at line 1436 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 866 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::DynamicCast(), 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 1454 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 321 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::MakeObjectMapChecker(), ns3::MakePointerAccessor(), ns3::MakePointerChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MakeUintegerChecker(), 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 374 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 1661 of file lte-enb-rrc.cc.
References NS_ASSERT.
Referenced by DoReceivePdcpSdu().
|
private |
lcid | a Logical Channel Identifier |
Definition at line 1648 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 649 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::DynamicCast(), 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 511 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 1086 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 1036 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 789 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 597 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 1328 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 1207 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 1320 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 1294 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 1122 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 1173 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 1060 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 1078 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 538 of file lte-enb-rrc.cc.
References Drbid2Lcid(), ns3::LteRrcSap::RadioResourceConfigDedicated::drbToReleaseList, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMeasConfig, ns3::LteRrcSap::RadioResourceConfigDedicated::havePhysicalConfigDedicated, m_drbMap, m_physicalConfigDedicated, m_rnti, m_rrc, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::LteRrcSap::RadioResourceConfigDedicated::physicalConfigDedicated.
|
private |
remove the LteDataRadioBearerInfo corresponding to a bearer being released
drbid | the Data Radio Bearer id |
Definition at line 1572 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 616 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 938 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_INFO, 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 915 of file lte-enb-rrc.cc.
References Bid2Drbid(), Bid2Lcid(), GetDataRadioBearerInfo(), m_drbMap, m_rnti, NS_LOG_FUNCTION, NS_LOG_INFO, 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 1094 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 1002 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 368 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 1488 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 361 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 1460 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 389 of file lte-enb-rrc.cc.
References AddDataRadioBearerInfo(), ns3::LteRrcSap::RlcConfig::AM, ns3::ObjectFactory::Create(), ns3::CreateObject(), 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 521 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 1686 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 621 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 551 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 604 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 592 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 598 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 577 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SetupDataRadioBearer().
|
private |
The DataRadioBearerMap
attribute.
List of UE DataRadioBearerInfo by DRBID.
Definition at line 528 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 561 of file lte-enb-rrc.h.
Referenced by DoDispose(), DoInitialize(), and SetupDataRadioBearer().
|
private |
DRBS to be started.
Definition at line 583 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 611 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 618 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 547 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 522 of file lte-enb-rrc.h.
Referenced by AddDataRadioBearerInfo().
|
private |
last RRC transaction identifier
Definition at line 553 of file lte-enb-rrc.h.
Referenced by GetNewRrcTransactionIdentifier().
|
private |
need Phy MAC configuration
Definition at line 584 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 635 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionReconfigurationCompleted(), and SendData().
|
private |
pending RRC connection reconfiguration
Definition at line 563 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionSetupCompleted(), ScheduleRrcConnectionReconfiguration(), and SwitchToState().
|
private |
Pending start data radio bearers.
Definition at line 624 of file lte-enb-rrc.h.
Referenced by RecvRrcConnectionSetupCompleted(), and SwitchToState().
|
private |
physical config dedicated
Definition at line 555 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 542 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 557 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 581 of file lte-enb-rrc.h.
Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().
|
private |
source X2 ap ID
Definition at line 579 of file lte-enb-rrc.h.
Referenced by BuildHoPrepFailMsg(), SendUeContextRelease(), and SetSource().
|
private |
The Srb0
attribute.
SignalingRadioBearerInfo for SRB0.
Definition at line 533 of file lte-enb-rrc.h.
Referenced by CompleteSetupUe(), DoInitialize(), and GetTypeId().
|
private |
The Srb1
attribute.
SignalingRadioBearerInfo for SRB1.
Definition at line 537 of file lte-enb-rrc.h.
Referenced by BuildRadioResourceConfigDedicated(), CompleteSetupUe(), DoInitialize(), and GetTypeId().
|
private |
The current UeManager state.
Definition at line 559 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 570 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SwitchToState().
|
private |
target cell ID
Definition at line 582 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), PrepareHandover(), RecvHandoverPreparationFailure(), RecvHandoverRequestAck(), SendData(), and SendUeContextRelease().
|
private |
target X2 ap ID
Definition at line 580 of file lte-enb-rrc.h.
Referenced by BuildHoCancelMsg(), and RecvHandoverRequestAck().