The LTE Radio Resource Control entity at the eNB. More...
#include "lte-enb-rrc.h"
Classes | |
struct | X2uTeidInfo |
X2uTeidInfo structure. More... | |
Public Types | |
typedef void(* | ConnectionHandoverTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti) |
TracedCallback signature for connection and handover end events. More... | |
typedef void(* | HandoverFailureTracedCallback) (const uint64_t imsi, const uint16_t rnti, const uint16_t cellId) |
TracedCallback signature for handover failure events. More... | |
typedef void(* | HandoverStartTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const uint16_t targetCid) |
TracedCallback signature for handover start events. More... | |
enum | LteEpsBearerToRlcMapping_t { RLC_SM_ALWAYS = 1 , RLC_UM_ALWAYS = 2 , RLC_AM_ALWAYS = 3 , PER_BASED = 4 } |
Identifies how EPS Bearer parameters are mapped to different RLC types. More... | |
typedef void(* | NewUeContextTracedCallback) (const uint16_t cellId, const uint16_t rnti) |
TracedCallback signature for new Ue Context events. More... | |
typedef void(* | ReceiveReportTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const LteRrcSap::MeasurementReport report) |
TracedCallback signature for receive measurement report events. More... | |
typedef void(* | TimerExpiryTracedCallback) (const uint64_t imsi, const uint16_t rnti, const uint16_t cellId, const std::string cause) |
TracedCallback signature for timer expiry events. More... | |
Public Member Functions | |
LteEnbRrc () | |
create an RRC instance for use within an eNB More... | |
~LteEnbRrc () override | |
Destructor. More... | |
std::vector< uint8_t > | AddUeMeasReportConfig (LteRrcSap::ReportConfigEutra config) |
Add a new UE measurement reporting configuration. More... | |
void | AddX2Neighbour (uint16_t cellId) |
Add a neighbour with an X2 interface. More... | |
uint8_t | CellToComponentCarrierId (uint16_t cellId) |
convert the cell id to component carrier id More... | |
uint16_t | ComponentCarrierToCellId (uint8_t componentCarrierId) |
convert the component carrier id to cell id More... | |
void | ConfigureCarriers (std::map< uint8_t, Ptr< ComponentCarrierBaseStation >> ccPhyConf) |
Configure carriers. More... | |
void | ConfigureCell (std::map< uint8_t, Ptr< ComponentCarrierBaseStation >> ccPhyConf) |
Configure cell-specific parameters. More... | |
void | ConnectionRejectedTimeout (uint16_t rnti) |
Method triggered a while after sending RRC Connection Rejected. More... | |
void | ConnectionRequestTimeout (uint16_t rnti) |
Method triggered when a UE is expected to request for connection but does not do so in a reasonable time. More... | |
void | ConnectionSetupTimeout (uint16_t rnti) |
Method triggered when a UE is expected to complete a connection setup procedure but does not do so in a reasonable time. More... | |
void | DoSendReleaseDataRadioBearer (uint64_t imsi, uint16_t rnti, uint8_t bearerId) |
This function acts as an interface to trigger Release indication messages towards eNB and EPC. More... | |
EpcX2SapUser * | GetEpcX2SapUser () |
Get the X2 SAP offered by this RRC. More... | |
LteAnrSapUser * | GetLteAnrSapUser () |
Get the ANR SAP offered by this RRC. More... | |
LteCcmRrcSapUser * | GetLteCcmRrcSapUser () |
Get the Component Carrier Management SAP offered by this RRC. More... | |
LteEnbCmacSapUser * | GetLteEnbCmacSapUser () |
Get the CMAC SAP offered by this RRC. More... | |
LteEnbCmacSapUser * | GetLteEnbCmacSapUser (uint8_t pos) |
Get the CMAC SAP offered by this RRC. More... | |
LteEnbCphySapUser * | GetLteEnbCphySapUser () |
LteEnbCphySapUser * | GetLteEnbCphySapUser (uint8_t pos) |
Get the ENB CPhy SAP user. More... | |
LteEnbRrcSapProvider * | GetLteEnbRrcSapProvider () |
LteFfrRrcSapUser * | GetLteFfrRrcSapUser () |
Get the FFR SAP offered by this RRC. More... | |
LteFfrRrcSapUser * | GetLteFfrRrcSapUser (uint8_t index) |
Get the FFR SAP offered by this RRC. More... | |
LteHandoverManagementSapUser * | GetLteHandoverManagementSapUser () |
Get the Handover Management SAP offered by this RRC. More... | |
EpcEnbS1SapUser * | GetS1SapUser () |
uint32_t | GetSrsPeriodicity () const |
Ptr< UeManager > | GetUeManager (uint16_t rnti) |
void | HandoverJoiningTimeout (uint16_t rnti) |
Method triggered when a UE is expected to join the cell for a handover but does not do so in a reasonable time. More... | |
void | HandoverLeavingTimeout (uint16_t rnti) |
Method triggered when a UE is expected to leave a cell for a handover but no feedback is received in a reasonable time. More... | |
bool | HasCellId (uint16_t cellId) const |
bool | HasUeManager (uint16_t rnti) const |
bool | SendData (Ptr< Packet > p) |
Enqueue an IP data packet on the proper bearer for downlink transmission. More... | |
void | SendHandoverRequest (uint16_t rnti, uint16_t cellId) |
Send a HandoverRequest through the X2 SAP interface. More... | |
void | SendRrcConnectionRelease () |
Send RRC connection release function. More... | |
void | SetCellId (uint16_t m_cellId) |
set the cell id of this eNB More... | |
void | SetCellId (uint16_t m_cellId, uint8_t ccIndex) |
set the cell id of this eNB More... | |
void | SetCsgId (uint32_t csgId, bool csgIndication) |
Associate this RRC entity with a particular CSG information. More... | |
void | SetEpcX2SapProvider (EpcX2SapProvider *s) |
Set the X2 SAP this RRC should interact with. More... | |
void | SetForwardUpCallback (Callback< void, Ptr< Packet >> cb) |
set the callback used to forward data packets up the stack More... | |
void | SetLteAnrSapProvider (LteAnrSapProvider *s) |
set the ANR SAP this RRC should interact with More... | |
void | SetLteCcmRrcSapProvider (LteCcmRrcSapProvider *s) |
set the Component Carrier Management SAP this RRC should interact with More... | |
void | SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s) |
set the CMAC SAP this RRC should interact with More... | |
void | SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s, uint8_t pos) |
set the CMAC SAP this RRC should interact with More... | |
void | SetLteEnbCphySapProvider (LteEnbCphySapProvider *s) |
set the CPHY SAP this RRC should use to interact with the PHY More... | |
void | SetLteEnbCphySapProvider (LteEnbCphySapProvider *s, uint8_t pos) |
set the CPHY SAP this RRC should use to interact with the PHY More... | |
void | SetLteEnbRrcSapUser (LteEnbRrcSapUser *s) |
set the RRC SAP this RRC should interact with More... | |
void | SetLteFfrRrcSapProvider (LteFfrRrcSapProvider *s) |
set the FFR SAP this RRC should interact with More... | |
void | SetLteFfrRrcSapProvider (LteFfrRrcSapProvider *s, uint8_t index) |
set the FFR SAP this RRC should interact with More... | |
void | SetLteHandoverManagementSapProvider (LteHandoverManagementSapProvider *s) |
set the Handover Management SAP this RRC should interact with More... | |
void | SetLteMacSapProvider (LteMacSapProvider *s) |
set the MAC SAP provider. More... | |
void | SetS1SapProvider (EpcEnbS1SapProvider *s) |
Set the S1 SAP Provider. More... | |
void | SetSrsPeriodicity (uint32_t p) |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Protected Member Functions | |
void | DoDispose () override |
Destructor implementation. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Private Member Functions | |
uint16_t | AddUe (UeManager::State state, uint8_t componentCarrierId) |
Allocate a new RNTI for a new UE. More... | |
uint8_t | DoAddUeMeasReportConfigForAnr (LteRrcSap::ReportConfigEutra reportConfig) |
Add UE measure report config for ANR function. More... | |
uint8_t | DoAddUeMeasReportConfigForComponentCarrier (LteRrcSap::ReportConfigEutra reportConfig) |
Add UE measure report config for component carrier function. More... | |
uint8_t | DoAddUeMeasReportConfigForFfr (LteRrcSap::ReportConfigEutra reportConfig) |
Add UE measure report config for FFR function. More... | |
std::vector< uint8_t > | DoAddUeMeasReportConfigForHandover (LteRrcSap::ReportConfigEutra reportConfig) |
Add UE measure report config for handover function. More... | |
uint16_t | DoAllocateTemporaryCellRnti (uint8_t componentCarrierId) |
Allocate temporary cell RNTI function. More... | |
void | DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params) |
Part of the RRC protocol. More... | |
void | DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params) |
Data radio beaerer setup request function. More... | |
void | DoInitialContextSetupRequest (EpcEnbS1SapUser::InitialContextSetupRequestParameters params) |
Initial context setup request function. More... | |
void | DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) |
Notify LC config result function. More... | |
void | DoPathSwitchRequestAcknowledge (EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params) |
Path switch request acknowledge function. More... | |
void | DoRecvHandoverCancel (EpcX2SapUser::HandoverCancelParams params) |
Receive Handover Cancel function. More... | |
void | DoRecvHandoverPreparationFailure (EpcX2SapUser::HandoverPreparationFailureParams params) |
Receive handover preparation failure function. More... | |
void | DoRecvHandoverRequest (EpcX2SapUser::HandoverRequestParams params) |
Receive handover request function. More... | |
void | DoRecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params) |
Receive handover request acknowledge function. More... | |
void | DoRecvIdealUeContextRemoveRequest (uint16_t rnti) |
Part of the RRC protocol. More... | |
void | DoRecvLoadInformation (EpcX2SapUser::LoadInformationParams params) |
Receive load information function. More... | |
void | DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg) |
Part of the RRC protocol. More... | |
void | DoRecvResourceStatusUpdate (EpcX2SapUser::ResourceStatusUpdateParams params) |
Receive resource status update function. More... | |
void | DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg) |
Part of the RRC protocol. More... | |
void | DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg) |
Part of the RRC protocol. More... | |
void | DoRecvSnStatusTransfer (EpcX2SapUser::SnStatusTransferParams params) |
Receive SN status transfer function. More... | |
void | DoRecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params) |
Receive UE context release function. More... | |
void | DoRecvUeData (EpcX2SapUser::UeDataParams params) |
Receive UE data function. More... | |
void | DoRrcConfigurationUpdateInd (LteEnbCmacSapUser::UeConfig params) |
RRC configuration update indication function. More... | |
void | DoSendLoadInformation (EpcX2Sap::LoadInformationParams params) |
Send load information function. More... | |
void | DoSetNumberOfComponentCarriers (uint16_t numberOfComponentCarriers) |
Set number of component carriers. More... | |
void | DoSetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pa) |
Set PDSCH config dedicated function. More... | |
void | DoTriggerHandover (uint16_t rnti, uint16_t targetCellId) |
Trigger handover function. More... | |
uint8_t | GetLogicalChannelGroup (EpsBearer bearer) |
uint8_t | GetLogicalChannelPriority (EpsBearer bearer) |
uint16_t | GetNewSrsConfigurationIndex () |
Allocate a new SRS configuration index for a new UE. More... | |
TypeId | GetRlcType (EpsBearer bearer) |
bool | IsMaxSrsReached () |
bool | IsRandomAccessCompleted (uint16_t rnti) |
Is random access completed function. More... | |
void | RemoveSrsConfigurationIndex (uint16_t srcCi) |
remove a previously allocated SRS configuration index More... | |
void | RemoveUe (uint16_t rnti) |
remove a UE from the cell More... | |
void | SendSystemInformation () |
method used to periodically send System Information More... | |
Private Attributes | |
bool | m_admitHandoverRequest |
The AdmitHandoverRequest attribute. More... | |
bool | m_admitRrcConnectionRequest |
The AdmitRrcConnectionRequest attribute. More... | |
std::set< uint8_t > | m_anrMeasIds |
List of measurement identities which are intended for ANR purpose. More... | |
LteAnrSapProvider * | m_anrSapProvider |
Interface to the ANR instance. More... | |
LteAnrSapUser * | m_anrSapUser |
Receive API calls from the ANR instance. More... | |
bool | m_carriersConfigured |
are carriers configured More... | |
LteCcmRrcSapProvider * | m_ccmRrcSapProvider |
Interface to the LteEnbComponentCarrierManager instance. More... | |
LteCcmRrcSapUser * | m_ccmRrcSapUser |
Receive API calls from the LteEnbComponentCarrierManager instance. More... | |
std::vector< LteEnbCmacSapProvider * > | m_cmacSapProvider |
Interface to the eNodeB MAC instance. More... | |
std::vector< LteEnbCmacSapUser * > | m_cmacSapUser |
Receive API calls from the eNodeB MAC instance. More... | |
std::set< uint8_t > | m_componentCarrierMeasIds |
List of measurement identities which are intended for component carrier management purposes. More... | |
std::map< uint8_t, Ptr< ComponentCarrierBaseStation > > | m_componentCarrierPhyConf |
component carrier phy configuration More... | |
bool | m_configured |
True if ConfigureCell() has been completed. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionEstablishedTrace |
The ConnectionEstablished trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionReconfigurationTrace |
The ConnectionReconfiguration trace source. More... | |
Time | m_connectionRejectedTimeoutDuration |
The ConnectionRejectedTimeoutDuration attribute. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_connectionReleaseTrace |
The NotifyConnectionRelease trace source. More... | |
Time | m_connectionRequestTimeoutDuration |
The ConnectionRequestTimeoutDuration attribute. More... | |
Time | m_connectionSetupTimeoutDuration |
The ConnectionSetupTimeoutDuration attribute. More... | |
std::vector< LteEnbCphySapProvider * > | m_cphySapProvider |
Interface to the eNodeB PHY instances. More... | |
std::vector< LteEnbCphySapUser * > | m_cphySapUser |
Receive API calls from the eNodeB PHY instances. More... | |
uint8_t | m_defaultTransmissionMode |
The DefaultTransmissionMode attribute. More... | |
uint16_t | m_dlBandwidth |
Downlink transmission bandwidth configuration in number of Resource Blocks. More... | |
uint32_t | m_dlEarfcn |
Downlink E-UTRA Absolute Radio Frequency Channel Number. More... | |
LteEpsBearerToRlcMapping_t | m_epsBearerToRlcMapping |
The EpsBearerToRlcMapping attribute. More... | |
std::set< uint8_t > | m_ffrMeasIds |
List of measurement identities which are intended for FFR purpose. More... | |
std::vector< LteFfrRrcSapProvider * > | m_ffrRrcSapProvider |
Interface to the FFR algorithm instance. More... | |
std::vector< LteFfrRrcSapUser * > | m_ffrRrcSapUser |
Receive API calls from the FFR algorithm instance. More... | |
Callback< void, Ptr< Packet > > | m_forwardUpCallback |
forward up callback function More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndOkTrace |
The HandoverEndOk trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverFailureJoiningTrace |
The 'HandoverFailureJoining' Trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverFailureLeavingTrace |
The 'HandoverFailureLeaving' Trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverFailureMaxRachTrace |
The 'HandoverFailureMaxRach' Trace source. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverFailureNoPreambleTrace |
The 'HandoverFailureNoPreamble' Trace source. More... | |
Time | m_handoverJoiningTimeoutDuration |
The HandoverJoiningTimeoutDuration attribute. More... | |
Time | m_handoverLeavingTimeoutDuration |
The HandoverLeavingTimeoutDuration attribute. More... | |
LteHandoverManagementSapProvider * | m_handoverManagementSapProvider |
Interface to the handover algorithm instance. More... | |
LteHandoverManagementSapUser * | m_handoverManagementSapUser |
Receive API calls from the handover algorithm instance. More... | |
std::set< uint8_t > | m_handoverMeasIds |
List of measurement identities which are intended for handover purpose. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > | m_handoverStartTrace |
The HandoverStart trace source. More... | |
uint16_t | m_lastAllocatedConfigurationIndex |
last allocated configuration index More... | |
uint16_t | m_lastAllocatedRnti |
Last allocated RNTI. More... | |
LteMacSapProvider * | m_macSapProvider |
Interface to the eNodeB MAC instance, to be used by RLC instances. More... | |
TracedCallback< uint16_t, uint16_t > | m_newUeContextTrace |
The NewUeContext trace source. More... | |
uint16_t | m_numberOfComponentCarriers |
number of component carriers More... | |
int8_t | m_qRxLevMin |
The QRxLevMin attribute. More... | |
bool | m_reconfigureUes |
reconfigure UEs? More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > | m_recvMeasurementReportTrace |
The RecvMeasurementReport trace source. More... | |
LteEnbRrcSapProvider * | m_rrcSapProvider |
Interface to receive messages from UE over the RRC protocol. More... | |
LteEnbRrcSapUser * | m_rrcSapUser |
Interface to send messages to UE over the RRC protocol. More... | |
TracedCallback< uint64_t, uint16_t, uint16_t, std::string > | m_rrcTimeoutTrace |
The 'TimerExpiry' Trace source. More... | |
uint8_t | m_rsrpFilterCoefficient |
The RsrpFilterCoefficient attribute. More... | |
uint8_t | m_rsrqFilterCoefficient |
The RsrqFilterCoefficient attribute. More... | |
EpcEnbS1SapProvider * | m_s1SapProvider |
Interface to send messages to core network over the S1 protocol. More... | |
EpcEnbS1SapUser * | m_s1SapUser |
Interface to receive messages from core network over the S1 protocol. More... | |
std::vector< LteRrcSap::SystemInformationBlockType1 > | m_sib1 |
The System Information Block Type 1 that is currently broadcasted over BCH. More... | |
uint16_t | m_srsCurrentPeriodicityId |
The SrsPeriodicity attribute. More... | |
Time | m_systemInformationPeriodicity |
The SystemInformationPeriodicity attribute. More... | |
std::map< uint16_t, Ptr< UeManager > > | m_ueMap |
The UeMap attribute. More... | |
LteRrcSap::MeasConfig | m_ueMeasConfig |
List of measurement configuration which are active in every UE attached to this eNodeB instance. More... | |
std::set< uint16_t > | m_ueSrsConfigurationIndexSet |
UE SRS configuration index set. More... | |
uint16_t | m_ulBandwidth |
Uplink transmission bandwidth configuration in number of Resource Blocks. More... | |
uint32_t | m_ulEarfcn |
Uplink E-UTRA Absolute Radio Frequency Channel Number. More... | |
EpcX2SapProvider * | m_x2SapProvider |
Interface to send messages to neighbour eNodeB over the X2 interface. More... | |
EpcX2SapUser * | m_x2SapUser |
Interface to receive messages from neighbour eNodeB over the X2 interface. More... | |
std::map< uint32_t, X2uTeidInfo > | m_x2uTeidInfoMap |
TEID, RNTI, DRBID. More... | |
Friends | |
class | EnbRrcMemberLteEnbCmacSapUser |
allow EnbRrcMemberLteEnbCmacSapUser class friend access More... | |
class | EpcX2SpecificEpcX2SapUser< LteEnbRrc > |
allow MemberEpcEnbS1SapUser<LteEnbRrc> class friend access More... | |
class | MemberEpcEnbS1SapUser< LteEnbRrc > |
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access More... | |
class | MemberLteAnrSapUser< LteEnbRrc > |
allow MemberLteAnrSapUser<LteEnbRrc> class friend access More... | |
class | MemberLteCcmRrcSapUser< LteEnbRrc > |
allow MemberLteCcmRrcSapUser<LteEnbRrc> class friend access More... | |
class | MemberLteEnbRrcSapProvider< LteEnbRrc > |
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access More... | |
class | MemberLteFfrRrcSapUser< LteEnbRrc > |
allow MemberLteFfrRrcSapUser<LteEnbRrc> class friend access More... | |
class | MemberLteHandoverManagementSapUser< LteEnbRrc > |
allow MemberLteHandoverManagementSapUser<LteEnbRrc> class friend access More... | |
class | UeManager |
allow UeManager class friend access More... | |
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. More... | |
The LTE Radio Resource Control entity at the eNB.
Definition at line 655 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::ConnectionHandoverTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti) |
TracedCallback signature for connection and handover end events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti |
Definition at line 1091 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::HandoverFailureTracedCallback) (const uint64_t imsi, const uint16_t rnti, const uint16_t cellId) |
TracedCallback signature for handover failure events.
[in] | imsi | |
[in] | rnti | |
[in] | cellId |
Definition at line 1143 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::HandoverStartTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const uint16_t targetCid) |
TracedCallback signature for handover start events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | targetCid |
Definition at line 1103 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::NewUeContextTracedCallback) (const uint16_t cellId, const uint16_t rnti) |
TracedCallback signature for new Ue Context events.
[in] | cellId | |
[in] | rnti |
Definition at line 1082 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::ReceiveReportTracedCallback) (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti, const LteRrcSap::MeasurementReport report) |
TracedCallback signature for receive measurement report events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | report |
LteRrcSap::MeasurementReport
argument should be changed to a const reference since the argument is large. Definition at line 1118 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::TimerExpiryTracedCallback) (const uint64_t imsi, const uint16_t rnti, const uint16_t cellId, const std::string cause) |
TracedCallback signature for timer expiry events.
[in] | imsi | |
[in] | rnti | |
[in] | cellId | |
[in] | cause |
Definition at line 1131 of file lte-enb-rrc.h.
Identifies how EPS Bearer parameters are mapped to different RLC types.
Enumerator | |
---|---|
RLC_SM_ALWAYS | |
RLC_UM_ALWAYS | |
RLC_AM_ALWAYS | |
PER_BASED |
Definition at line 1068 of file lte-enb-rrc.h.
ns3::LteEnbRrc::LteEnbRrc | ( | ) |
create an RRC instance for use within an eNB
Definition at line 1842 of file lte-enb-rrc.cc.
References EnbRrcMemberLteEnbCmacSapUser, EpcX2SpecificEpcX2SapUser< LteEnbRrc >, m_anrSapUser, m_ccmRrcSapUser, m_cmacSapUser, m_cphySapUser, m_ffrRrcSapUser, m_handoverManagementSapUser, m_rrcSapProvider, m_s1SapUser, m_x2SapUser, MemberEpcEnbS1SapUser< LteEnbRrc >, MemberLteAnrSapUser< LteEnbRrc >, MemberLteCcmRrcSapUser< LteEnbRrc >, MemberLteEnbRrcSapProvider< LteEnbRrc >, MemberLteHandoverManagementSapUser< LteEnbRrc >, and NS_LOG_FUNCTION.
|
override |
|
private |
Allocate a new RNTI for a new UE.
This is done in the following cases:
state | the initial state of the UeManager |
componentCarrierId | primary component carrier ID of the UeManager |
Definition at line 3235 of file lte-enb-rrc.cc.
References ns3::LteCcmRrcSapProvider::AddUe(), ComponentCarrierToCellId(), m_ccmRrcSapProvider, m_lastAllocatedRnti, m_newUeContextTrace, m_ueMap, NS_ASSERT_MSG, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by DoAllocateTemporaryCellRnti(), and DoRecvHandoverRequest().
std::vector< uint8_t > ns3::LteEnbRrc::AddUeMeasReportConfig | ( | LteRrcSap::ReportConfigEutra | config | ) |
Add a new UE measurement reporting configuration.
config | the new reporting configuration |
Assuming intra-frequency environment, the new measurement reporting configuration will be automatically associated to measurement objects corresponding to serving cell frequencies.
Can only be called before the start of simulation.
Definition at line 2355 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::ReportConfigEutra::BOTH, ns3::LteRrcSap::ThresholdEutra::choice, ns3::LteRrcSap::ReportConfigEutra::EVENT_A1, ns3::LteRrcSap::ReportConfigEutra::EVENT_A2, ns3::LteRrcSap::ReportConfigEutra::EVENT_A4, ns3::LteRrcSap::ReportConfigEutra::EVENT_A5, ns3::LteRrcSap::ReportConfigEutra::eventId, m_numberOfComponentCarriers, m_ueMeasConfig, ns3::LteRrcSap::MeasIdToAddMod::measId, ns3::LteRrcSap::MeasConfig::measIdToAddModList, ns3::LteRrcSap::MeasIdToAddMod::measObjectId, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_WARN, ns3::LteRrcSap::ReportConfigEutra::purpose, ns3::LteRrcSap::ReportConfigEutra::REPORT_STRONGEST_CELLS, ns3::LteRrcSap::ReportConfigToAddMod::reportConfigEutra, ns3::LteRrcSap::ReportConfigToAddMod::reportConfigId, ns3::LteRrcSap::MeasIdToAddMod::reportConfigId, ns3::LteRrcSap::MeasConfig::reportConfigToAddModList, ns3::LteRrcSap::ReportConfigEutra::reportQuantity, ns3::LteRrcSap::ReportConfigEutra::RSRP, ns3::LteRrcSap::ReportConfigEutra::RSRQ, ns3::Seconds(), ns3::LteRrcSap::ReportConfigEutra::threshold1, ns3::LteRrcSap::ReportConfigEutra::threshold2, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRP, ns3::LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ, and ns3::LteRrcSap::ReportConfigEutra::triggerQuantity.
Referenced by DoAddUeMeasReportConfigForAnr(), DoAddUeMeasReportConfigForComponentCarrier(), DoAddUeMeasReportConfigForFfr(), and DoAddUeMeasReportConfigForHandover().
void ns3::LteEnbRrc::AddX2Neighbour | ( | uint16_t | cellId | ) |
Add a neighbour with an X2 interface.
cellId | neighbouring cell id |
Definition at line 3326 of file lte-enb-rrc.cc.
References ns3::LteAnrSapProvider::AddNeighbourRelation(), m_anrSapProvider, and NS_LOG_FUNCTION.
uint8_t ns3::LteEnbRrc::CellToComponentCarrierId | ( | uint16_t | cellId | ) |
convert the cell id to component carrier id
cellId | Cell ID |
Definition at line 2568 of file lte-enb-rrc.cc.
References m_componentCarrierPhyConf, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by DoRecvHandoverRequest().
uint16_t ns3::LteEnbRrc::ComponentCarrierToCellId | ( | uint8_t | componentCarrierId | ) |
convert the component carrier id to cell id
componentCarrierId | component carrier ID |
Definition at line 2582 of file lte-enb-rrc.cc.
References m_componentCarrierPhyConf, and NS_LOG_FUNCTION.
Referenced by AddUe(), ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), DoRecvHandoverRequest(), DoRecvIdealUeContextRemoveRequest(), DoTriggerHandover(), HandoverJoiningTimeout(), HandoverLeavingTimeout(), and RemoveUe().
void ns3::LteEnbRrc::ConfigureCarriers | ( | std::map< uint8_t, Ptr< ComponentCarrierBaseStation >> | ccPhyConf | ) |
Configure carriers.
ccPhyConf | the component carrier configuration |
Definition at line 1874 of file lte-enb-rrc.cc.
References ns3::Object::DoInitialize(), EnbRrcMemberLteEnbCmacSapUser, m_carriersConfigured, m_cmacSapUser, m_componentCarrierPhyConf, m_cphySapUser, m_ffrRrcSapUser, m_numberOfComponentCarriers, NS_ABORT_MSG_IF, and NS_ASSERT_MSG.
void ns3::LteEnbRrc::ConfigureCell | ( | std::map< uint8_t, Ptr< ComponentCarrierBaseStation >> | ccPhyConf | ) |
Configure cell-specific parameters.
Configure cell-specific parameters and propagate them to lower layers. The parameters include bandwidth, EARFCN (E-UTRA Absolute Radio Frequency Channel Number), and cell ID.
In addition to parameter configuration, this function also performs several other tasks:
LteEnbRrc::AddUeMeasReportConfig
;Typically runs when the eNodeB NetDevice is installed, for instance by LteHelper::InstallEnbDevice
(i.e. before the simulation starts).
ccPhyConf | the component carrier configuration |
Definition at line 2460 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::MeasObjectEutra::allowedMeasBandwidth, ns3::LteRrcSap::MeasObjectEutra::carrierFreq, ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, ns3::LteRrcSap::SystemInformationBlockType1::cellSelectionInfo, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRP, ns3::LteRrcSap::QuantityConfig::filterCoefficientRSRQ, ns3::LteRrcSap::MeasObjectEutra::haveCellForWhichToReportCGI, ns3::LteRrcSap::MeasConfig::haveMeasGapConfig, ns3::LteRrcSap::MeasConfig::haveQuantityConfig, ns3::LteRrcSap::MeasConfig::haveSmeasure, ns3::LteRrcSap::MeasConfig::haveSpeedStatePars, m_cmacSapProvider, m_configured, m_cphySapProvider, m_dlBandwidth, m_dlEarfcn, m_ffrRrcSapProvider, m_qRxLevMin, m_rsrpFilterCoefficient, m_rsrqFilterCoefficient, m_sib1, m_ueMeasConfig, m_ulBandwidth, m_ulEarfcn, ns3::LteRrcSap::MeasObjectToAddMod::measObjectEutra, ns3::LteRrcSap::MeasObjectToAddMod::measObjectId, ns3::LteRrcSap::MeasConfig::measObjectToAddModList, ns3::MilliSeconds(), ns3::LteRrcSap::MeasObjectEutra::neighCellConfig, NS_ASSERT, NS_LOG_FUNCTION, ns3::LteRrcSap::MeasObjectEutra::offsetFreq, ns3::LteRrcSap::PlmnIdentityInfo::plmnIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::plmnIdentityInfo, ns3::LteRrcSap::MeasObjectEutra::presenceAntennaPort1, ns3::LteRrcSap::CellSelectionInfo::qQualMin, ns3::LteRrcSap::CellSelectionInfo::qRxLevMin, ns3::LteRrcSap::MeasConfig::quantityConfig, ns3::Simulator::Schedule(), SendSystemInformation(), and ns3::LteRrcSap::MasterInformationBlock::systemFrameNumber.
void ns3::LteEnbRrc::ConnectionRejectedTimeout | ( | uint16_t | rnti | ) |
Method triggered a while after sending RRC Connection Rejected.
The method will remove the UE context.
rnti | the T-C-RNTI whose timeout expired |
Definition at line 2653 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), ns3::UeManager::CONNECTION_REJECTED, GetUeManager(), m_rrcTimeoutTrace, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), and ns3::ToString().
Referenced by ns3::UeManager::RecvRrcConnectionRequest().
void ns3::LteEnbRrc::ConnectionRequestTimeout | ( | uint16_t | rnti | ) |
Method triggered when a UE is expected to request for connection but does not do so in a reasonable time.
The method will remove the UE context.
rnti | the T-C-RNTI whose timeout expired |
Definition at line 2625 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), GetUeManager(), ns3::UeManager::INITIAL_RANDOM_ACCESS, m_rrcTimeoutTrace, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), and ns3::ToString().
Referenced by ns3::UeManager::DoInitialize().
void ns3::LteEnbRrc::ConnectionSetupTimeout | ( | uint16_t | rnti | ) |
Method triggered when a UE is expected to complete a connection setup procedure but does not do so in a reasonable time.
The method will remove the UE context.
rnti | the T-C-RNTI whose timeout expired |
Definition at line 2639 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), ns3::UeManager::CONNECTION_SETUP, GetUeManager(), m_rrcTimeoutTrace, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), and ns3::ToString().
Referenced by ns3::UeManager::RecvRrcConnectionRequest().
|
private |
Add UE measure report config for ANR function.
reportConfig | LteRrcSap::ReportConfigEutra |
Definition at line 3200 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_anrMeasIds, and NS_LOG_FUNCTION.
|
private |
Add UE measure report config for component carrier function.
reportConfig | LteRrcSap::ReportConfigEutra |
Definition at line 3143 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_componentCarrierMeasIds, and NS_LOG_FUNCTION.
|
private |
Add UE measure report config for FFR function.
reportConfig | LteRrcSap::ReportConfigEutra |
Definition at line 3209 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_ffrMeasIds, and NS_LOG_FUNCTION.
|
private |
Add UE measure report config for handover function.
reportConfig | LteRrcSap::ReportConfigEutra |
Definition at line 3134 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_handoverMeasIds, and NS_LOG_FUNCTION.
|
private |
Allocate temporary cell RNTI function.
componentCarrierId | ID of the primary component carrier |
Definition at line 3107 of file lte-enb-rrc.cc.
References AddUe(), ns3::UeManager::INITIAL_RANDOM_ACCESS, IsMaxSrsReached(), NS_LOG_FUNCTION, and NS_LOG_WARN.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::AllocateTemporaryCellRnti().
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to UeManager::CompleteSetupUe
rnti | the RNTI |
params | the LteEnbRrcSapProvider::CompleteSetupUeParameters |
Definition at line 2732 of file lte-enb-rrc.cc.
References GetUeManager(), NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Data radio beaerer setup request function.
params | EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters |
Definition at line 2828 of file lte-enb-rrc.cc.
References ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearer, ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearerId, GetUeManager(), ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::gtpTeid, NS_LOG_FUNCTION, ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::rnti, and ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::transportLayerAddress.
|
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 1898 of file lte-enb-rrc.cc.
References m_anrSapUser, m_ccmRrcSapUser, m_cmacSapUser, m_cphySapUser, m_ffrRrcSapUser, m_handoverManagementSapUser, m_numberOfComponentCarriers, m_rrcSapProvider, m_s1SapUser, m_ueMap, m_x2SapUser, and NS_LOG_FUNCTION.
|
private |
Initial context setup request function.
params | EpcEnbS1SapUser::InitialContextSetupRequestParameters |
Definition at line 2788 of file lte-enb-rrc.cc.
References GetUeManager(), NS_LOG_FUNCTION, and ns3::EpcEnbS1SapUser::InitialContextSetupRequestParameters::rnti.
|
private |
Notify LC config result function.
rnti | RNTI |
lcid | LCID |
success | the success indicator |
Definition at line 3127 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().
|
private |
Path switch request acknowledge function.
params | EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters |
Definition at line 2840 of file lte-enb-rrc.cc.
References GetUeManager(), NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Receive Handover Cancel function.
params | EpcX2SapUser::HandoverCancelParams |
Definition at line 3085 of file lte-enb-rrc.cc.
References GetUeManager(), HasUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Receive handover preparation failure function.
params | EpcX2SapUser::HandoverPreparationFailureParams |
Definition at line 2971 of file lte-enb-rrc.cc.
References GetUeManager(), HasUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Receive handover request function.
params | EpcX2SapUser::HandoverRequestParams |
When the maximum non-contention based preambles is reached, then it is considered handover has failed and source cell is notified to release the RRC connection and delete the UE context at eNodeB and SGW/PGW.
Definition at line 2849 of file lte-enb-rrc.cc.
References AddUe(), ns3::EpcX2Sap::HandoverRequestAckParams::admittedBearers, ns3::EpcX2Sap::HandoverRequestParams::bearers, CellToComponentCarrierId(), ComponentCarrierToCellId(), ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteEnbRrcSapUser::EncodeHandoverCommand(), ns3::EpcX2Sap::ErabAdmittedItem::erabId, GetUeManager(), ns3::UeManager::HANDOVER_JOINING, ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, IsMaxSrsReached(), m_admitHandoverRequest, m_cmacSapProvider, m_handoverFailureNoPreambleTrace, m_rrcSapUser, m_x2SapProvider, ns3::EpcX2Sap::HandoverRequestParams::mmeUeS1apId, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::EpcX2Sap::HandoverRequestAckParams::newEnbUeX2apId, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::EpcX2Sap::HandoverRequestParams::oldEnbUeX2apId, ns3::EpcX2Sap::HandoverRequestAckParams::oldEnbUeX2apId, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommon::rachConfigCommon, ns3::LteRrcSap::MobilityControlInfo::rachConfigDedicated, ns3::LteRrcSap::MobilityControlInfo::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, two-ray-to-three-gpp-ch-calibration::rc, RemoveUe(), two-ray-to-three-gpp-ch-calibration::res, ns3::EpcX2Sap::HandoverRequestAckParams::rrcContext, ns3::EpcX2SapProvider::SendHandoverPreparationFailure(), ns3::EpcX2SapProvider::SendHandoverRequestAck(), ns3::EpcX2Sap::HandoverRequestParams::sourceCellId, ns3::EpcX2Sap::HandoverRequestAckParams::sourceCellId, ns3::EpcX2Sap::HandoverRequestParams::targetCellId, ns3::EpcX2Sap::HandoverRequestAckParams::targetCellId, ns3::LteRrcSap::RachConfigCommon::txFailParam, and ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::valid.
|
private |
Receive handover request acknowledge function.
params | EpcX2SapUser::HandoverRequestAckParams |
Definition at line 2954 of file lte-enb-rrc.cc.
References GetUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvIdealUeContextRemoveRequest interface to UeManager::RecvIdealUeContextRemoveRequest.
Remove the UE context at eNodeB and also remove the bearers established at SGW/PGW node. Bearer info at MME is not deleted since they are added at MME only at the beginning of simulation and if they are removed, the bearers cannot be activated again.
rnti | the C-RNTI identifying the user |
During the HO, when the RACH failure due to the maximum number of re-attempts is reached the UE request the target eNB to deletes its context. Upon which, the target eNB sends handover preparation failure to the source eNB.
Definition at line 2796 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), GetUeManager(), ns3::UeManager::HANDOVER_JOINING, HasUeManager(), m_handoverFailureMaxRachTrace, m_x2SapProvider, NS_LOG_FUNCTION, RemoveUe(), and ns3::EpcX2SapProvider::SendHandoverPreparationFailure().
|
private |
Receive load information function.
params | EpcX2SapUser::LoadInformationParams |
Definition at line 3036 of file lte-enb-rrc.cc.
References m_ffrRrcSapProvider, NS_ABORT_IF, NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManager::RecvMeasurementReport
rnti | the RNTI |
msg | the LteRrcSap::MeasurementReport |
Definition at line 2781 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Receive resource status update function.
params | EpcX2SapUser::ResourceStatusUpdateParams |
Definition at line 3049 of file lte-enb-rrc.cc.
References NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface to UeManager::RecvRrcConnectionReconfigurationCompleted
rnti | the RNTI |
msg | the LteRrcSap::RrcConnectionReconfigurationCompleted |
Definition at line 2754 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete interface to UeManager::RecvRrcConnectionReestablishmentComplete
rnti | the RNTI |
msg | the LteRrcSap::RrcConnectionReestablishmentComplete |
Definition at line 2772 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest interface to UeManager::RecvRrcConnectionReestablishmentRequest
rnti | the RNTI |
msg | the LteRrcSap::RrcConnectionReestablishmentRequest |
Definition at line 2763 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvRrcConnectionRequest interface to UeManager::RecvRrcConnectionRequest
rnti | the RNTI |
msg | the LteRrcSap::RrcConnectionRequest |
Definition at line 2739 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Part of the RRC protocol.
Forwarding LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface to UeManager::RecvRrcConnectionSetupCompleted
rnti | the RNTI |
msg | the LteRrcSap::RrcConnectionSetupCompleted |
Definition at line 2746 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Receive SN status transfer function.
params | EpcX2SapUser::SnStatusTransferParams |
Definition at line 2994 of file lte-enb-rrc.cc.
References GetUeManager(), HasUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
Receive UE context release function.
params | EpcX2SapUser::UeContextReleaseParams |
Definition at line 3016 of file lte-enb-rrc.cc.
References GetUeManager(), HasUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, two-ray-to-three-gpp-ch-calibration::params, and RemoveUe().
|
private |
Receive UE data function.
params | EpcX2SapUser::UeDataParams |
Definition at line 3062 of file lte-enb-rrc.cc.
References GetUeManager(), m_x2uTeidInfoMap, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, and two-ray-to-three-gpp-ch-calibration::params.
|
private |
RRC configuration update indication function.
params | LteEnbCmacSapUser::UeConfig |
Definition at line 3120 of file lte-enb-rrc.cc.
References GetUeManager(), and ns3::LteEnbCmacSapUser::UeConfig::m_rnti.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::RrcConfigurationUpdateInd().
|
private |
Send load information function.
params | EpcX2Sap::LoadInformationParams |
Definition at line 3227 of file lte-enb-rrc.cc.
References m_x2SapProvider, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::EpcX2SapProvider::SendLoadInformation().
void ns3::LteEnbRrc::DoSendReleaseDataRadioBearer | ( | uint64_t | imsi, |
uint16_t | rnti, | ||
uint8_t | bearerId | ||
) |
This function acts as an interface to trigger Release indication messages towards eNB and EPC.
imsi | the IMSI |
rnti | the RNTI |
bearerId | Bearer Identity which is to be de-activated |
Definition at line 592 of file lte-enb-rrc.cc.
References ns3::EpcEnbS1SapProvider::DoSendReleaseIndication(), GetUeManager(), HasUeManager(), m_s1SapProvider, and NS_LOG_FUNCTION.
|
private |
Set number of component carriers.
numberOfComponentCarriers | the number of component carriers |
Definition at line 3152 of file lte-enb-rrc.cc.
References m_numberOfComponentCarriers.
|
private |
Set PDSCH config dedicated function.
rnti | the RNTI |
pa | LteRrcSap::PdschConfigDedicated |
Definition at line 3218 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Trigger handover function.
rnti | RNTI |
targetCellId | target cell ID |
Definition at line 3158 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), ns3::UeManager::CONNECTED_NORMALLY, ns3::LteAnrSapProvider::GetNoHo(), ns3::LteAnrSapProvider::GetNoX2(), GetUeManager(), HasCellId(), m_anrSapProvider, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::ToString().
EpcX2SapUser * ns3::LteEnbRrc::GetEpcX2SapUser | ( | ) |
Get the X2 SAP offered by this RRC.
Definition at line 2127 of file lte-enb-rrc.cc.
References m_x2SapUser, and NS_LOG_FUNCTION.
|
private |
bearer | the characteristics of the bearer |
Definition at line 3479 of file lte-enb-rrc.cc.
References ns3::EpsBearer::GetResourceType().
|
private |
bearer | the characteristics of the bearer |
Definition at line 3492 of file lte-enb-rrc.cc.
References ns3::EpsBearer::qci.
LteAnrSapUser * ns3::LteEnbRrc::GetLteAnrSapUser | ( | ) |
Get the ANR SAP offered by this RRC.
Definition at line 2205 of file lte-enb-rrc.cc.
References m_anrSapUser, and NS_LOG_FUNCTION.
LteCcmRrcSapUser * ns3::LteEnbRrc::GetLteCcmRrcSapUser | ( | ) |
Get the Component Carrier Management SAP offered by this RRC.
Definition at line 2191 of file lte-enb-rrc.cc.
References m_ccmRrcSapUser, and NS_LOG_FUNCTION.
LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser | ( | ) |
Get the CMAC SAP offered by this RRC.
Definition at line 2156 of file lte-enb-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser | ( | uint8_t | pos | ) |
Get the CMAC SAP offered by this RRC.
pos | the position |
Definition at line 2163 of file lte-enb-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteEnbCphySapUser * ns3::LteEnbRrc::GetLteEnbCphySapUser | ( | ) |
Definition at line 2308 of file lte-enb-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteEnbCphySapUser * ns3::LteEnbRrc::GetLteEnbCphySapUser | ( | uint8_t | pos | ) |
Get the ENB CPhy SAP user.
pos | the position |
Definition at line 2330 of file lte-enb-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteEnbRrcSapProvider * ns3::LteEnbRrc::GetLteEnbRrcSapProvider | ( | ) |
Definition at line 2268 of file lte-enb-rrc.cc.
References m_rrcSapProvider, and NS_LOG_FUNCTION.
LteFfrRrcSapUser * ns3::LteEnbRrc::GetLteFfrRrcSapUser | ( | ) |
Get the FFR SAP offered by this RRC.
Definition at line 2244 of file lte-enb-rrc.cc.
References m_ffrRrcSapUser, and NS_LOG_FUNCTION.
LteFfrRrcSapUser * ns3::LteEnbRrc::GetLteFfrRrcSapUser | ( | uint8_t | index | ) |
Get the FFR SAP offered by this RRC.
index | the index |
Definition at line 2251 of file lte-enb-rrc.cc.
References m_ffrRrcSapUser, m_numberOfComponentCarriers, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
LteHandoverManagementSapUser * ns3::LteEnbRrc::GetLteHandoverManagementSapUser | ( | ) |
Get the Handover Management SAP offered by this RRC.
Definition at line 2177 of file lte-enb-rrc.cc.
References m_handoverManagementSapUser, and NS_LOG_FUNCTION.
|
private |
Allocate a new SRS configuration index for a new UE.
Definition at line 3402 of file lte-enb-rrc.cc.
References ns3::g_srsCiHigh, ns3::g_srsCiLow, ns3::g_srsPeriodicity, m_lastAllocatedConfigurationIndex, m_srsCurrentPeriodicityId, m_ueSrsConfigurationIndexSet, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::SRS_ENTRIES.
bearer | the specification of an EPS bearer |
Definition at line 3297 of file lte-enb-rrc.cc.
References ns3::EpsBearer::GetPacketErrorLossRate(), ns3::LteRlcAm::GetTypeId(), ns3::LteRlcUm::GetTypeId(), ns3::LteRlcSm::GetTypeId(), m_epsBearerToRlcMapping, PER_BASED, RLC_AM_ALWAYS, RLC_SM_ALWAYS, and RLC_UM_ALWAYS.
EpcEnbS1SapUser * ns3::LteEnbRrc::GetS1SapUser | ( | ) |
uint32_t ns3::LteEnbRrc::GetSrsPeriodicity | ( | ) | const |
Definition at line 3393 of file lte-enb-rrc.cc.
References ns3::g_srsPeriodicity, m_srsCurrentPeriodicityId, NS_ASSERT, NS_LOG_FUNCTION, and ns3::SRS_ENTRIES.
Referenced by GetTypeId().
|
static |
Get the type ID.
Definition at line 1926 of file lte-enb-rrc.cc.
References ns3::TypeId::ATTR_CONSTRUCT, ns3::TypeId::ATTR_GET, GetSrsPeriodicity(), m_admitHandoverRequest, m_admitRrcConnectionRequest, m_connectionEstablishedTrace, m_connectionReconfigurationTrace, m_connectionRejectedTimeoutDuration, m_connectionReleaseTrace, m_connectionRequestTimeoutDuration, m_connectionSetupTimeoutDuration, m_defaultTransmissionMode, m_epsBearerToRlcMapping, m_handoverEndOkTrace, m_handoverFailureJoiningTrace, m_handoverFailureLeavingTrace, m_handoverFailureMaxRachTrace, m_handoverFailureNoPreambleTrace, m_handoverJoiningTimeoutDuration, m_handoverLeavingTimeoutDuration, m_handoverStartTrace, m_newUeContextTrace, m_numberOfComponentCarriers, m_qRxLevMin, m_recvMeasurementReportTrace, m_rrcTimeoutTrace, m_rsrpFilterCoefficient, m_rsrqFilterCoefficient, m_systemInformationPeriodicity, m_ueMap, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeEnumChecker(), ns3::MakeIntegerAccessor(), ns3::MakeObjectMapAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MAX_NO_CC, ns3::MilliSeconds(), ns3::MIN_NO_CC, PER_BASED, RLC_AM_ALWAYS, RLC_SM_ALWAYS, RLC_UM_ALWAYS, ns3::TypeId::SetParent(), and SetSrsPeriodicity().
rnti | the identifier of an UE |
Definition at line 2345 of file lte-enb-rrc.cc.
References m_ueMap, NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), DoCompleteSetupUe(), DoDataRadioBearerSetupRequest(), DoInitialContextSetupRequest(), DoPathSwitchRequestAcknowledge(), DoRecvHandoverCancel(), DoRecvHandoverPreparationFailure(), DoRecvHandoverRequest(), DoRecvHandoverRequestAck(), DoRecvIdealUeContextRemoveRequest(), DoRecvMeasurementReport(), DoRecvRrcConnectionReconfigurationCompleted(), DoRecvRrcConnectionReestablishmentComplete(), DoRecvRrcConnectionReestablishmentRequest(), DoRecvRrcConnectionRequest(), DoRecvRrcConnectionSetupCompleted(), DoRecvSnStatusTransfer(), DoRecvUeContextRelease(), DoRecvUeData(), DoRrcConfigurationUpdateInd(), DoSendReleaseDataRadioBearer(), DoSetPdschConfigDedicated(), DoTriggerHandover(), HandoverJoiningTimeout(), HandoverLeavingTimeout(), IsRandomAccessCompleted(), SendData(), and SendHandoverRequest().
void ns3::LteEnbRrc::HandoverJoiningTimeout | ( | uint16_t | rnti | ) |
Method triggered when a UE is expected to join the cell for a handover but does not do so in a reasonable time.
The method will remove the UE context.
rnti | the C-RNTI whose timeout expired |
When the handover joining timer expires at the target cell, then notify the source cell to release the RRC connection and delete the UE context at eNodeB and SGW/PGW. The HandoverPreparationFailure message is reused to notify the source cell through the X2 interface instead of creating a new message.
Definition at line 2667 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), GetUeManager(), ns3::UeManager::HANDOVER_JOINING, HasUeManager(), m_handoverFailureJoiningTrace, m_x2SapProvider, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), ns3::EpcX2SapProvider::SendHandoverPreparationFailure(), and ns3::ToString().
Referenced by ns3::UeManager::DoInitialize().
void ns3::LteEnbRrc::HandoverLeavingTimeout | ( | uint16_t | rnti | ) |
Method triggered when a UE is expected to leave a cell for a handover but no feedback is received in a reasonable time.
The method will remove the UE context.
rnti | the C-RNTI whose timeout expired |
Send HO cancel msg to the target eNB and release the RRC connection with the UE and also delete UE context at the source eNB and bearer info at SGW and PGW.
Definition at line 2695 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), GetUeManager(), ns3::UeManager::HANDOVER_LEAVING, HasUeManager(), m_handoverFailureLeavingTrace, m_x2SapProvider, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::EpcX2SapProvider::SendHandoverCancel(), and ns3::ToString().
Referenced by ns3::UeManager::PrepareHandover(), and ns3::UeManager::RecvHandoverRequestAck().
bool ns3::LteEnbRrc::HasCellId | ( | uint16_t | cellId | ) | const |
cellId | cell ID |
Definition at line 2589 of file lte-enb-rrc.cc.
References m_componentCarrierPhyConf.
Referenced by DoTriggerHandover().
bool ns3::LteEnbRrc::HasUeManager | ( | uint16_t | rnti | ) | const |
rnti | the identifier of an UE |
Definition at line 2337 of file lte-enb-rrc.cc.
References m_ueMap, and NS_LOG_FUNCTION.
Referenced by DoRecvHandoverCancel(), DoRecvHandoverPreparationFailure(), DoRecvIdealUeContextRemoveRequest(), DoRecvSnStatusTransfer(), DoRecvUeContextRelease(), DoSendReleaseDataRadioBearer(), HandoverJoiningTimeout(), and HandoverLeavingTimeout().
|
private |
Definition at line 3469 of file lte-enb-rrc.cc.
References ns3::g_srsPeriodicity, m_srsCurrentPeriodicityId, m_ueSrsConfigurationIndexSet, NS_ASSERT, NS_LOG_DEBUG, and ns3::SRS_ENTRIES.
Referenced by DoAllocateTemporaryCellRnti(), and DoRecvHandoverRequest().
|
private |
Is random access completed function.
This method is executed to decide if the non contention based preamble has to reused or not upon preamble expiry. If the random access in connected mode is completed, then the preamble can be reused by other UEs. If not, the same UE retains the preamble and other available preambles is assigned to the required UEs.
rnti | the C-RNTI identifying the user |
Definition at line 3533 of file lte-enb-rrc.cc.
References ns3::UeManager::CONNECTED_NORMALLY, ns3::UeManager::CONNECTION_RECONFIGURATION, GetUeManager(), and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::IsRandomAccessCompleted().
|
private |
remove a previously allocated SRS configuration index
srcCi | the index to be removed |
Definition at line 3459 of file lte-enb-rrc.cc.
References m_ueSrsConfigurationIndexSet, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by RemoveUe().
|
private |
remove a UE from the cell
rnti | the C-RNTI identiftying the user |
Definition at line 3263 of file lte-enb-rrc.cc.
References ComponentCarrierToCellId(), m_ccmRrcSapProvider, m_cmacSapProvider, m_connectionReleaseTrace, m_cphySapProvider, m_numberOfComponentCarriers, m_rrcSapUser, m_s1SapProvider, m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveSrsConfigurationIndex(), ns3::LteCcmRrcSapProvider::RemoveUe(), ns3::LteEnbRrcSapUser::RemoveUe(), and ns3::EpcEnbS1SapProvider::UeContextRelease().
Referenced by ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), DoRecvHandoverRequest(), DoRecvIdealUeContextRemoveRequest(), DoRecvUeContextRelease(), and HandoverJoiningTimeout().
Enqueue an IP data packet on the proper bearer for downlink transmission.
Normally expected to be called by the NetDevice forwarding a packet coming from the EpcEnbApplication
p | the packet |
Definition at line 2602 of file lte-enb-rrc.cc.
References ns3::EpsBearerTag::GetBid(), ns3::EpsBearerTag::GetRnti(), ns3::Packet::GetSize(), GetUeManager(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, and ns3::Packet::RemovePacketTag().
void ns3::LteEnbRrc::SendHandoverRequest | ( | uint16_t | rnti, |
uint16_t | cellId | ||
) |
Send a HandoverRequest through the X2 SAP interface.
This method will trigger a handover which is started by the RRC by sending a handover request to the target eNB over the X2 interface
rnti | the ID of the UE to be handed over |
cellId | the ID of the target eNB |
Definition at line 2721 of file lte-enb-rrc.cc.
References GetUeManager(), m_configured, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
void ns3::LteEnbRrc::SendRrcConnectionRelease | ( | ) |
Send RRC connection release function.
This function acts as an interface to trigger the connection release towards eNB, EPC and UE.
|
private |
method used to periodically send System Information
Definition at line 3498 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::TxFailParam::connEstFailCount, ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, ns3::LteRrcSap::SystemInformation::haveSib2, m_cmacSapProvider, m_componentCarrierPhyConf, m_cphySapProvider, m_rrcSapUser, m_systemInformationPeriodicity, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::PdschConfigCommon::pb, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, two-ray-to-three-gpp-ch-calibration::rc, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::Simulator::Schedule(), ns3::LteEnbRrcSapUser::SendSystemInformation(), ns3::LteRrcSap::SystemInformation::sib2, ns3::LteRrcSap::RachConfigCommon::txFailParam, ns3::LteRrcSap::FreqInfo::ulBandwidth, and ns3::LteRrcSap::FreqInfo::ulCarrierFreq.
Referenced by ConfigureCell().
void ns3::LteEnbRrc::SetCellId | ( | uint16_t | m_cellId | ) |
set the cell id of this eNB
m_cellId |
Definition at line 2552 of file lte-enb-rrc.cc.
References m_cphySapProvider, and m_sib1.
void ns3::LteEnbRrc::SetCellId | ( | uint16_t | m_cellId, |
uint8_t | ccIndex | ||
) |
set the cell id of this eNB
m_cellId | |
ccIndex |
Definition at line 2560 of file lte-enb-rrc.cc.
References m_cphySapProvider, and m_sib1.
void ns3::LteEnbRrc::SetCsgId | ( | uint32_t | csgId, |
bool | csgIndication | ||
) |
Associate this RRC entity with a particular CSG information.
csgId | the intended Closed Subscriber Group identity |
csgIndication | if TRUE, only CSG members are allowed to access the cell |
CSG identity is a number identifying a Closed Subscriber Group which the cell belongs to. eNodeB is associated with a single CSG identity.
The same CSG identity can also be associated to several UEs, which is equivalent as enlisting these UEs as the members of this particular CSG. When the CSG indication field is set to TRUE, only UEs which are members of the CSG (i.e. same CSG ID) can gain access to the eNodeB, therefore enforcing closed access mode. Otherwise, the eNodeB operates as a non-CSG cell and implements open access mode.
This restriction only applies to initial cell selection and EPC-enabled simulation.
Definition at line 3337 of file lte-enb-rrc.cc.
References m_cphySapProvider, m_sib1, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetEpcX2SapProvider | ( | EpcX2SapProvider * | s | ) |
Set the X2 SAP this RRC should interact with.
s | the X2 SAP Provider to be used by this RRC entity |
Definition at line 2120 of file lte-enb-rrc.cc.
References m_x2SapProvider, and NS_LOG_FUNCTION.
set the callback used to forward data packets up the stack
cb |
Definition at line 2619 of file lte-enb-rrc.cc.
References m_forwardUpCallback.
void ns3::LteEnbRrc::SetLteAnrSapProvider | ( | LteAnrSapProvider * | s | ) |
set the ANR SAP this RRC should interact with
s | the ANR SAP Provider to be used by this RRC |
Definition at line 2198 of file lte-enb-rrc.cc.
References m_anrSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteCcmRrcSapProvider | ( | LteCcmRrcSapProvider * | s | ) |
set the Component Carrier Management SAP this RRC should interact with
s | the Component Carrier Management SAP Provider to be used by this RRC |
Definition at line 2184 of file lte-enb-rrc.cc.
References m_ccmRrcSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbCmacSapProvider | ( | LteEnbCmacSapProvider * | s | ) |
set the CMAC SAP this RRC should interact with
s | the CMAC SAP Provider to be used by this RRC |
Definition at line 2134 of file lte-enb-rrc.cc.
References m_cmacSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbCmacSapProvider | ( | LteEnbCmacSapProvider * | s, |
uint8_t | pos | ||
) |
set the CMAC SAP this RRC should interact with
s | the CMAC SAP Provider to be used by this RRC |
pos | the position |
Definition at line 2141 of file lte-enb-rrc.cc.
References m_cmacSapProvider, NS_ABORT_IF, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbCphySapProvider | ( | LteEnbCphySapProvider * | s | ) |
set the CPHY SAP this RRC should use to interact with the PHY
s | the CPHY SAP Provider |
Definition at line 2294 of file lte-enb-rrc.cc.
References m_cphySapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbCphySapProvider | ( | LteEnbCphySapProvider * | s, |
uint8_t | pos | ||
) |
set the CPHY SAP this RRC should use to interact with the PHY
s | the CPHY SAP Provider |
pos | the position |
Definition at line 2315 of file lte-enb-rrc.cc.
References m_cphySapProvider, NS_ABORT_IF, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteEnbRrcSapUser | ( | LteEnbRrcSapUser * | s | ) |
set the RRC SAP this RRC should interact with
s | the RRC SAP User to be used by this RRC |
Definition at line 2261 of file lte-enb-rrc.cc.
References m_rrcSapUser, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteFfrRrcSapProvider | ( | LteFfrRrcSapProvider * | s | ) |
set the FFR SAP this RRC should interact with
s | the FFR SAP Provider to be used by this RRC |
Definition at line 2212 of file lte-enb-rrc.cc.
References m_ffrRrcSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteFfrRrcSapProvider | ( | LteFfrRrcSapProvider * | s, |
uint8_t | index | ||
) |
set the FFR SAP this RRC should interact with
s | the FFR SAP Provider to be used by this RRC |
index | the index |
Definition at line 2226 of file lte-enb-rrc.cc.
References m_ffrRrcSapProvider, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteHandoverManagementSapProvider | ( | LteHandoverManagementSapProvider * | s | ) |
set the Handover Management SAP this RRC should interact with
s | the Handover Management SAP Provider to be used by this RRC |
Definition at line 2170 of file lte-enb-rrc.cc.
References m_handoverManagementSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetLteMacSapProvider | ( | LteMacSapProvider * | s | ) |
set the MAC SAP provider.
The eNB RRC does not use this directly, but it needs to provide it to newly created RLC instances.
s | the MAC SAP provider that will be used by all newly created RLC instances |
Definition at line 2275 of file lte-enb-rrc.cc.
References m_macSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::SetS1SapProvider | ( | EpcEnbS1SapProvider * | s | ) |
Set the S1 SAP Provider.
s | the S1 SAP Provider |
Definition at line 2282 of file lte-enb-rrc.cc.
References m_s1SapProvider.
void ns3::LteEnbRrc::SetSrsPeriodicity | ( | uint32_t | p | ) |
p | the SRS periodicity in num TTIs |
Definition at line 3371 of file lte-enb-rrc.cc.
References ns3::g_srsPeriodicity, m_srsCurrentPeriodicityId, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::SRS_ENTRIES.
Referenced by GetTypeId().
|
friend |
allow EnbRrcMemberLteEnbCmacSapUser class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), and ConfigureCarriers().
|
friend |
allow MemberEpcEnbS1SapUser<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow MemberLteAnrSapUser<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow MemberLteCcmRrcSapUser<LteEnbRrc> class friend access
Definition at line 672 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow MemberLteEnbRrcSapProvider<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow MemberLteFfrRrcSapUser<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
|
friend |
allow MemberLteHandoverManagementSapUser<LteEnbRrc> class friend access
Definition at line 658 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
allow UeManager class friend access
Definition at line 672 of file lte-enb-rrc.h.
|
private |
The AdmitHandoverRequest
attribute.
Whether to admit an X2 handover request from another eNB.
Definition at line 1660 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), and GetTypeId().
|
private |
The AdmitRrcConnectionRequest
attribute.
Whether to admit a connection request from a UE.
Definition at line 1665 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
List of measurement identities which are intended for ANR purpose.
Definition at line 1611 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForAnr().
|
private |
Interface to the ANR instance.
Definition at line 1556 of file lte-enb-rrc.h.
Referenced by AddX2Neighbour(), DoTriggerHandover(), and SetLteAnrSapProvider().
|
private |
Receive API calls from the ANR instance.
Definition at line 1554 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetLteAnrSapUser().
|
private |
are carriers configured
Definition at line 1784 of file lte-enb-rrc.h.
Referenced by ConfigureCarriers().
|
private |
Interface to the LteEnbComponentCarrierManager instance.
Definition at line 1551 of file lte-enb-rrc.h.
Referenced by AddUe(), RemoveUe(), and SetLteCcmRrcSapProvider().
|
private |
Receive API calls from the LteEnbComponentCarrierManager instance.
Definition at line 1549 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetLteCcmRrcSapUser().
|
private |
Interface to the eNodeB MAC instance.
Definition at line 1541 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), DoRecvHandoverRequest(), RemoveUe(), SendSystemInformation(), and SetLteEnbCmacSapProvider().
|
private |
Receive API calls from the eNodeB MAC instance.
Definition at line 1539 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), ConfigureCarriers(), DoDispose(), and GetLteEnbCmacSapUser().
|
private |
List of measurement identities which are intended for component carrier management purposes.
Definition at line 1615 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForComponentCarrier().
|
private |
component carrier phy configuration
Definition at line 1787 of file lte-enb-rrc.h.
Referenced by CellToComponentCarrierId(), ComponentCarrierToCellId(), ConfigureCarriers(), HasCellId(), and SendSystemInformation().
|
private |
True if ConfigureCell() has been completed.
Definition at line 1582 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and SendHandoverRequest().
|
private |
The ConnectionEstablished
trace source.
Fired upon successful RRC connection establishment. Exporting IMSI, cell ID, and RNTI.
Definition at line 1722 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The ConnectionReconfiguration
trace source.
Fired upon RRC connection reconfiguration. Exporting IMSI, cell ID, and RNTI.
Definition at line 1727 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The ConnectionRejectedTimeoutDuration
attribute.
Time to wait between sending a RRC CONNECTION REJECT and destroying the UE context.
Definition at line 1696 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The NotifyConnectionRelease
trace source.
Fired when an UE leaves the eNB. Exporting IMSI, cell ID, RNTI.
Definition at line 1749 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and RemoveUe().
|
private |
The ConnectionRequestTimeoutDuration
attribute.
After a RA attempt, if no RRC CONNECTION REQUEST is received before this time, the UE context is destroyed. Must account for reception of RAR and transmission of RRC CONNECTION REQUEST over UL GRANT.
Definition at line 1684 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The ConnectionSetupTimeoutDuration
attribute.
After accepting connection request, if no RRC CONNECTION SETUP COMPLETE is received before this time, the UE context is destroyed. Must account for the UE's reception of RRC CONNECTION SETUP and transmission of RRC CONNECTION SETUP COMPLETE.
Definition at line 1691 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to the eNodeB PHY instances.
Definition at line 1579 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), RemoveUe(), SendSystemInformation(), SetCellId(), SetCsgId(), and SetLteEnbCphySapProvider().
|
private |
Receive API calls from the eNodeB PHY instances.
Definition at line 1577 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), ConfigureCarriers(), DoDispose(), and GetLteEnbCphySapUser().
|
private |
The DefaultTransmissionMode
attribute.
The default UEs' transmission mode (0: SISO).
Definition at line 1631 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Downlink transmission bandwidth configuration in number of Resource Blocks.
Definition at line 1588 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
Downlink E-UTRA Absolute Radio Frequency Channel Number.
Definition at line 1584 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
The EpsBearerToRlcMapping
attribute.
Specify which type of RLC will be used for each type of EPS bearer.
Definition at line 1636 of file lte-enb-rrc.h.
Referenced by GetRlcType(), and GetTypeId().
|
private |
List of measurement identities which are intended for FFR purpose.
Definition at line 1613 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForFfr().
|
private |
Interface to the FFR algorithm instance.
Definition at line 1561 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), DoRecvLoadInformation(), and SetLteFfrRrcSapProvider().
|
private |
Receive API calls from the FFR algorithm instance.
Definition at line 1559 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), ConfigureCarriers(), DoDispose(), and GetLteFfrRrcSapUser().
forward up callback function
Definition at line 1531 of file lte-enb-rrc.h.
Referenced by SetForwardUpCallback().
|
private |
The HandoverEndOk
trace source.
Fired upon successful termination of a handover procedure. Exporting IMSI, cell ID, and RNTI.
Definition at line 1737 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The 'HandoverFailureJoining' Trace source.
Fired upon handover failure due to handover joining timeout at target eNB
Definition at line 1780 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and HandoverJoiningTimeout().
|
private |
The 'HandoverFailureLeaving' Trace source.
Fired upon handover failure due to handover leaving timeout at source eNB
Definition at line 1774 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and HandoverLeavingTimeout().
|
private |
The 'HandoverFailureMaxRach' Trace source.
Fired upon handover failure due to max RACH attempts from UE to target eNB
Definition at line 1768 of file lte-enb-rrc.h.
Referenced by DoRecvIdealUeContextRemoveRequest(), and GetTypeId().
|
private |
The 'HandoverFailureNoPreamble' Trace source.
Fired upon handover failure due to non-allocation of non-contention based preamble at eNB for UE to handover due to max count reached
Definition at line 1762 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), and GetTypeId().
|
private |
The HandoverJoiningTimeoutDuration
attribute.
After accepting a handover request, if no RRC CONNECTION RECONFIGURATION COMPLETE is received before this time, the UE context is destroyed. Must account for reception of X2 HO REQ ACK by source eNB, transmission of the Handover Command, non-contention-based random access and reception of the RRC CONNECTION RECONFIGURATION COMPLETE message.
Definition at line 1705 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
The HandoverLeavingTimeoutDuration
attribute.
After issuing a Handover Command, if neither RRC CONNECTION RE-ESTABLISHMENT nor X2 UE Context Release has been previously received, the UE context is destroyed.
Definition at line 1711 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to the handover algorithm instance.
Definition at line 1546 of file lte-enb-rrc.h.
Referenced by SetLteHandoverManagementSapProvider().
|
private |
Receive API calls from the handover algorithm instance.
Definition at line 1544 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetLteHandoverManagementSapUser().
|
private |
List of measurement identities which are intended for handover purpose.
Definition at line 1609 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForHandover().
|
private |
The HandoverStart
trace source.
Fired upon start of a handover procedure. Exporting IMSI, cell ID, RNTI, and target cell ID.
Definition at line 1732 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
last allocated configuration index
Definition at line 1647 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex().
|
private |
|
private |
Interface to the eNodeB MAC instance, to be used by RLC instances.
Definition at line 1569 of file lte-enb-rrc.h.
Referenced by SetLteMacSapProvider().
|
private |
The NewUeContext
trace source.
Fired upon creation of a new UE context. Exporting cell ID and RNTI.
Definition at line 1717 of file lte-enb-rrc.h.
Referenced by AddUe(), and GetTypeId().
|
private |
number of component carriers
Definition at line 1782 of file lte-enb-rrc.h.
Referenced by AddUeMeasReportConfig(), ConfigureCarriers(), DoDispose(), DoSetNumberOfComponentCarriers(), GetLteFfrRrcSapUser(), GetTypeId(), and RemoveUe().
|
private |
The QRxLevMin
attribute.
One of information transmitted within the SIB1 message, indicating the required minimum RSRP level that any UE must receive from this cell before it is allowed to camp to this cell.
Definition at line 1655 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and GetTypeId().
|
private |
reconfigure UEs?
Definition at line 1648 of file lte-enb-rrc.h.
|
private |
The RecvMeasurementReport
trace source.
Fired when measurement report is received. Exporting IMSI, cell ID, and RNTI.
Definition at line 1743 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to receive messages from UE over the RRC protocol.
Definition at line 1566 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetLteEnbRrcSapProvider().
|
private |
Interface to send messages to UE over the RRC protocol.
Definition at line 1564 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), RemoveUe(), SendSystemInformation(), and SetLteEnbRrcSapUser().
|
private |
The 'TimerExpiry' Trace source.
Fired when any of the RRC timers maintained at eNB expires. Exporting IMSI, cell ID, and RNTI and name of timer which expired.
Definition at line 1755 of file lte-enb-rrc.h.
Referenced by ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), and GetTypeId().
|
private |
The RsrpFilterCoefficient
attribute.
Determines the strength of smoothing effect induced by layer 3 filtering of RSRP in all attached UE. If equals to 0, no layer 3 filtering is applicable.
Definition at line 1671 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and GetTypeId().
|
private |
The RsrqFilterCoefficient
attribute.
Determines the strength of smoothing effect induced by layer 3 filtering of RSRQ in all attached UE. If equals to 0, no layer 3 filtering is applicable.
Definition at line 1677 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and GetTypeId().
|
private |
Interface to send messages to core network over the S1 protocol.
Definition at line 1572 of file lte-enb-rrc.h.
Referenced by DoSendReleaseDataRadioBearer(), RemoveUe(), and SetS1SapProvider().
|
private |
Interface to receive messages from core network over the S1 protocol.
Definition at line 1574 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetS1SapUser().
|
private |
The System Information Block Type 1 that is currently broadcasted over BCH.
Definition at line 1595 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), SetCellId(), and SetCsgId().
|
private |
The SrsPeriodicity
attribute.
The SRS periodicity in milliseconds. SRS current periodicity ID
Definition at line 1645 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), GetSrsPeriodicity(), IsMaxSrsReached(), and SetSrsPeriodicity().
|
private |
The SystemInformationPeriodicity
attribute.
The interval for sending system information.
Definition at line 1641 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SendSystemInformation().
The UeMap
attribute.
List of UeManager by C-RNTI.
Definition at line 1600 of file lte-enb-rrc.h.
Referenced by AddUe(), DoDispose(), GetTypeId(), GetUeManager(), HasUeManager(), and RemoveUe().
|
private |
List of measurement configuration which are active in every UE attached to this eNodeB instance.
Definition at line 1606 of file lte-enb-rrc.h.
Referenced by AddUeMeasReportConfig(), and ConfigureCell().
|
private |
UE SRS configuration index set.
Definition at line 1646 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), IsMaxSrsReached(), and RemoveSrsConfigurationIndex().
|
private |
Uplink transmission bandwidth configuration in number of Resource Blocks.
Definition at line 1590 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
Uplink E-UTRA Absolute Radio Frequency Channel Number.
Definition at line 1586 of file lte-enb-rrc.h.
Referenced by ConfigureCell().
|
private |
Interface to send messages to neighbour eNodeB over the X2 interface.
Definition at line 1536 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), DoRecvIdealUeContextRemoveRequest(), DoSendLoadInformation(), HandoverJoiningTimeout(), HandoverLeavingTimeout(), and SetEpcX2SapProvider().
|
private |
Interface to receive messages from neighbour eNodeB over the X2 interface.
Definition at line 1534 of file lte-enb-rrc.h.
Referenced by LteEnbRrc(), DoDispose(), and GetEpcX2SapUser().
|
private |