The LTE Radio Resource Control entity at the eNB. More...
#include "lte-enb-rrc.h"
Classes | |
struct | X2uTeidInfo |
Public Types | |
typedef void(* | ConnectionHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti) |
TracedCallback signature for connection and handover end events. More... | |
typedef void(* | HandoverStartTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, 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) (uint16_t cellId, uint16_t rnti) |
TracedCallback signature for new Ue Context events. More... | |
typedef void(* | ReceiveReportTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, LteRrcSap::MeasurementReport report) |
TracedCallback signature for receive measurement report events. More... | |
Public Member Functions | |
LteEnbRrc () | |
create an RRC instance for use within an eNB More... | |
virtual | ~LteEnbRrc () |
Destructor. More... | |
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... | |
void | ConfigureCell (uint8_t ulBandwidth, uint8_t dlBandwidth, uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId) |
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... | |
LteEnbCmacSapUser * | GetLteEnbCmacSapUser () |
Get the CMAC SAP offered by this RRC. More... | |
LteEnbCphySapUser * | GetLteEnbCphySapUser () |
LteEnbRrcSapProvider * | GetLteEnbRrcSapProvider () |
LteFfrRrcSapUser * | GetLteFfrRrcSapUser () |
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 | 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 | SetCellId (uint16_t m_cellId) |
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 | SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s) |
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 | 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 | 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) |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
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... | |
uint16_t | m_cellId |
Cell identifier. Must be unique across the simulation. More... | |
LteEnbCmacSapProvider * | m_cmacSapProvider |
Interface to the eNodeB MAC instance. More... | |
LteEnbCmacSapUser * | m_cmacSapUser |
Receive API calls from the eNodeB MAC instance. 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... | |
Time | m_connectionRequestTimeoutDuration |
The ConnectionRequestTimeoutDuration attribute. More... | |
Time | m_connectionSetupTimeoutDuration |
The ConnectionSetupTimeoutDuration attribute. More... | |
LteEnbCphySapProvider * | m_cphySapProvider |
Interface to the eNodeB PHY instance. More... | |
LteEnbCphySapUser * | m_cphySapUser |
Receive API calls from the eNodeB PHY instance. More... | |
uint8_t | m_defaultTransmissionMode |
The DefaultTransmissionMode attribute. More... | |
uint16_t | m_dlBandwidth |
Downlink transmission bandwidth configuration in number of Resource Blocks. More... | |
uint16_t | m_dlEarfcn |
Downlink E-UTRA Absolute Radio Frequency Channel Number. More... | |
enum 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... | |
LteFfrRrcSapProvider * | m_ffrRrcSapProvider |
Interface to the FFR algorithm instance. More... | |
LteFfrRrcSapUser * | m_ffrRrcSapUser |
Receive API calls from the FFR algorithm instance. More... | |
Callback< void, Ptr< Packet > > | m_forwardUpCallback |
TracedCallback< uint64_t, uint16_t, uint16_t > | m_handoverEndOkTrace |
The HandoverEndOk 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 |
uint16_t | m_lastAllocatedRnti |
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... | |
int8_t | m_qRxLevMin |
The QRxLevMin attribute. More... | |
bool | m_reconfigureUes |
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... | |
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... | |
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 |
uint16_t | m_ulBandwidth |
Uplink transmission bandwidth configuration in number of Resource Blocks. More... | |
uint16_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 |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
The LTE Radio Resource Control entity at the eNB.
ns3::LteEnbRrc is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 800 bytes (on a 64-bit architecture).
Definition at line 509 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::ConnectionHandoverTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti) |
TracedCallback signature for connection and handover end events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti |
Definition at line 840 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::HandoverStartTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t targetCid) |
TracedCallback signature for handover start events.
[in] | imsi | |
[in] | cellId | |
[in] | rnti | |
[in] | targetCid |
Definition at line 851 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::NewUeContextTracedCallback) (uint16_t cellId, uint16_t rnti) |
TracedCallback signature for new Ue Context events.
[in] | cellId | |
[in] | rnti |
Definition at line 830 of file lte-enb-rrc.h.
typedef void(* ns3::LteEnbRrc::ReceiveReportTracedCallback) (uint64_t imsi, uint16_t cellId, uint16_t rnti, 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 864 of file lte-enb-rrc.h.
ns3::LteEnbRrc::LteEnbRrc | ( | ) |
create an RRC instance for use within an eNB
Definition at line 1292 of file lte-enb-rrc.cc.
References EnbRrcMemberLteEnbCmacSapUser, m_anrSapUser, m_cmacSapUser, m_cphySapUser, m_ffrRrcSapUser, m_handoverManagementSapUser, m_rrcSapProvider, m_s1SapUser, m_x2SapUser, and NS_LOG_FUNCTION.
|
virtual |
|
private |
Allocate a new RNTI for a new UE.
This is done in the following cases:
state | the initial state of the UeManager |
Definition at line 2251 of file lte-enb-rrc.cc.
References m_cellId, m_lastAllocatedRnti, m_newUeContextTrace, m_ueMap, NS_ASSERT_MSG, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by DoAllocateTemporaryCellRnti(), and DoRecvHandoverRequest().
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 the only measurement object (i.e., a new measurement identity will be automatically created).
Can only be called before the start of simulation.
Definition at line 1632 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_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(), DoAddUeMeasReportConfigForFfr(), DoAddUeMeasReportConfigForHandover(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), and LteUeMeasurementsHandoverTestCase::DoRun().
void ns3::LteEnbRrc::AddX2Neighbour | ( | uint16_t | cellId | ) |
Add a neighbour with an X2 interface.
cellId | neighbouring cell id |
Definition at line 2331 of file lte-enb-rrc.cc.
References ns3::LteAnrSapProvider::AddNeighbourRelation(), m_anrSapProvider, and NS_LOG_FUNCTION.
void ns3::LteEnbRrc::ConfigureCell | ( | uint8_t | ulBandwidth, |
uint8_t | dlBandwidth, | ||
uint16_t | ulEarfcn, | ||
uint16_t | dlEarfcn, | ||
uint16_t | cellId | ||
) |
Configure cell-specific parameters.
ulBandwidth | the uplink bandwidth in number of RB |
dlBandwidth | the downlink bandwidth in number of RB |
ulEarfcn | the UL EARFCN |
dlEarfcn | the DL EARFCN |
cellId | the ID of the cell |
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).
Definition at line 1720 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::LteEnbCmacSapProvider::ConfigureMac(), 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_cellId, 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(), ns3::LteFfrRrcSapProvider::SetBandwidth(), ns3::LteEnbCphySapProvider::SetBandwidth(), ns3::LteFfrRrcSapProvider::SetCellId(), ns3::LteEnbCphySapProvider::SetCellId(), ns3::LteEnbCphySapProvider::SetEarfcn(), ns3::LteEnbCphySapProvider::SetMasterInformationBlock(), and ns3::LteEnbCphySapProvider::SetSystemInformationBlockType1().
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 1837 of file lte-enb-rrc.cc.
References ns3::UeManager::CONNECTION_REJECTED, GetUeManager(), 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 1819 of file lte-enb-rrc.cc.
References GetUeManager(), ns3::UeManager::INITIAL_RANDOM_ACCESS, 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 1828 of file lte-enb-rrc.cc.
References ns3::UeManager::CONNECTION_SETUP, GetUeManager(), NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), and ns3::ToString().
Referenced by ns3::UeManager::RecvRrcConnectionRequest().
|
private |
Definition at line 2217 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_anrMeasIds, and NS_LOG_FUNCTION.
|
private |
Definition at line 2226 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_ffrMeasIds, and NS_LOG_FUNCTION.
|
private |
Definition at line 2166 of file lte-enb-rrc.cc.
References AddUeMeasReportConfig(), m_handoverMeasIds, and NS_LOG_FUNCTION.
|
private |
Definition at line 2144 of file lte-enb-rrc.cc.
References AddUe(), ns3::UeManager::INITIAL_RANDOM_ACCESS, and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::AllocateTemporaryCellRnti().
|
private |
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to UeManager::CompleteSetupUe.
Definition at line 1876 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Definition at line 1925 of file lte-enb-rrc.cc.
References ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearer, ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::bearerId, GetUeManager(), ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::gtpTeid, ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::rnti, and ns3::EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters::transportLayerAddress.
|
protectedvirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 1327 of file lte-enb-rrc.cc.
References m_anrSapUser, m_cmacSapUser, m_cphySapUser, m_ffrRrcSapUser, m_handoverManagementSapUser, m_rrcSapProvider, m_s1SapUser, m_ueMap, m_x2SapUser, and NS_LOG_FUNCTION.
|
private |
Definition at line 2158 of file lte-enb-rrc.cc.
References NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().
|
private |
Definition at line 1932 of file lte-enb-rrc.cc.
References GetUeManager(), and ns3::EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters::rnti.
|
private |
Definition at line 2046 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::HandoverPreparationFailureParams::cause, ns3::EpcX2Sap::HandoverPreparationFailureParams::criticalityDiagnostics, GetUeManager(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::EpcX2Sap::HandoverPreparationFailureParams::oldEnbUeX2apId, ns3::EpcX2Sap::HandoverPreparationFailureParams::sourceCellId, and ns3::EpcX2Sap::HandoverPreparationFailureParams::targetCellId.
|
private |
Definition at line 1939 of file lte-enb-rrc.cc.
References AddUe(), ns3::EpcX2Sap::HandoverRequestAckParams::admittedBearers, ns3::LteEnbCmacSapProvider::AllocateNcRaPreamble(), ns3::EpcX2Sap::HandoverRequestParams::bearers, ns3::LteRrcSap::MobilityControlInfo::carrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::carrierFreq, ns3::EpcX2Sap::HandoverPreparationFailureParams::cause, ns3::EpcX2Sap::HandoverPreparationFailureParams::criticalityDiagnostics, ns3::LteRrcSap::CarrierBandwidthEutra::dlBandwidth, ns3::LteRrcSap::CarrierFreqEutra::dlCarrierFreq, ns3::LteEnbRrcSapUser::EncodeHandoverCommand(), ns3::EpcX2Sap::ErabAdmittedItem::erabId, ns3::LteEnbCmacSapProvider::GetRachConfig(), GetUeManager(), ns3::UeManager::HANDOVER_JOINING, ns3::LteRrcSap::MobilityControlInfo::haveCarrierBandwidth, ns3::LteRrcSap::MobilityControlInfo::haveCarrierFreq, ns3::LteRrcSap::RrcConnectionReconfiguration::haveMobilityControlInfo, ns3::LteRrcSap::MobilityControlInfo::haveRachConfigDedicated, m_admitHandoverRequest, m_cellId, m_cmacSapProvider, m_dlBandwidth, m_dlEarfcn, m_rrcSapUser, m_ulBandwidth, m_ulEarfcn, m_x2SapProvider, ns3::EpcX2Sap::HandoverRequestParams::mmeUeS1apId, ns3::LteRrcSap::RrcConnectionReconfiguration::mobilityControlInfo, ns3::EpcX2Sap::HandoverRequestAckParams::newEnbUeX2apId, ns3::LteRrcSap::MobilityControlInfo::newUeIdentity, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::LteEnbCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::EpcX2Sap::HandoverRequestParams::oldEnbUeX2apId, ns3::EpcX2Sap::HandoverRequestAckParams::oldEnbUeX2apId, ns3::EpcX2Sap::HandoverPreparationFailureParams::oldEnbUeX2apId, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteEnbCmacSapProvider::RachConfig::preambleTransMax, 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::LteEnbCmacSapProvider::RachConfig::raResponseWindowSize, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, RemoveUe(), ns3::EpcX2Sap::HandoverRequestAckParams::rrcContext, ns3::EpcX2SapProvider::SendHandoverPreparationFailure(), ns3::EpcX2SapProvider::SendHandoverRequestAck(), ns3::EpcX2Sap::HandoverRequestParams::sourceCellId, ns3::EpcX2Sap::HandoverRequestAckParams::sourceCellId, ns3::EpcX2Sap::HandoverPreparationFailureParams::sourceCellId, ns3::EpcX2Sap::HandoverRequestParams::targetCellId, ns3::EpcX2Sap::HandoverRequestAckParams::targetCellId, ns3::EpcX2Sap::HandoverPreparationFailureParams::targetCellId, ns3::LteRrcSap::MobilityControlInfo::targetPhysCellId, ns3::LteRrcSap::CarrierBandwidthEutra::ulBandwidth, ns3::LteRrcSap::CarrierFreqEutra::ulCarrierFreq, and ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::valid.
|
private |
Definition at line 2029 of file lte-enb-rrc.cc.
References GetUeManager(), ns3::EpcX2Sap::HandoverRequestAckParams::newEnbUeX2apId, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::EpcX2Sap::HandoverRequestAckParams::oldEnbUeX2apId, ns3::EpcX2Sap::HandoverRequestAckParams::sourceCellId, and ns3::EpcX2Sap::HandoverRequestAckParams::targetCellId.
|
private |
Definition at line 2095 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::LoadInformationParams::cellInformationList, m_ffrRrcSapProvider, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::LteFfrRrcSapProvider::RecvLoadInformation().
|
private |
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManager::RecvMeasurementReport.
Definition at line 1918 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Definition at line 2107 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::ResourceStatusUpdateParams::cellMeasurementResultList, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted interface to UeManager::RecvRrcConnectionReconfigurationCompleted.
Definition at line 1897 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.
Definition at line 1911 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.
Definition at line 1904 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.
Definition at line 1883 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.
Definition at line 1890 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Definition at line 2064 of file lte-enb-rrc.cc.
References ns3::EpcX2Sap::SnStatusTransferParams::erabsSubjectToStatusTransferList, GetUeManager(), ns3::EpcX2Sap::SnStatusTransferParams::newEnbUeX2apId, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::EpcX2Sap::SnStatusTransferParams::oldEnbUeX2apId.
|
private |
Definition at line 2080 of file lte-enb-rrc.cc.
References GetUeManager(), ns3::EpcX2Sap::UeContextReleaseParams::newEnbUeX2apId, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::EpcX2Sap::UeContextReleaseParams::oldEnbUeX2apId, and RemoveUe().
|
private |
Definition at line 2119 of file lte-enb-rrc.cc.
References ns3::Packet::GetSize(), GetUeManager(), ns3::EpcX2Sap::UeDataParams::gtpTeid, m_x2uTeidInfoMap, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::EpcX2Sap::UeDataParams::sourceCellId, ns3::EpcX2Sap::UeDataParams::targetCellId, and ns3::EpcX2Sap::UeDataParams::ueData.
|
private |
Definition at line 2151 of file lte-enb-rrc.cc.
References GetUeManager(), and ns3::LteEnbCmacSapUser::UeConfig::m_rnti.
Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::RrcConfigurationUpdateInd().
|
private |
Definition at line 2243 of file lte-enb-rrc.cc.
References m_x2SapProvider, NS_LOG_FUNCTION, 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 483 of file lte-enb-rrc.cc.
References ns3::EpcEnbS1SapProvider::DoSendReleaseIndication(), GetUeManager(), and m_s1SapProvider.
|
private |
Definition at line 2235 of file lte-enb-rrc.cc.
References GetUeManager(), and NS_LOG_FUNCTION.
|
private |
Definition at line 2175 of file lte-enb-rrc.cc.
References ns3::UeManager::CONNECTED_NORMALLY, ns3::LteAnrSapProvider::GetNoHo(), ns3::LteAnrSapProvider::GetNoX2(), GetUeManager(), m_anrSapProvider, m_cellId, 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 1503 of file lte-enb-rrc.cc.
References m_x2SapUser, and NS_LOG_FUNCTION.
|
private |
bearer | the characteristics of the bearer |
Definition at line 2466 of file lte-enb-rrc.cc.
References ns3::EpsBearer::IsGbr().
|
private |
bearer | the characteristics of the bearer |
Definition at line 2479 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 1545 of file lte-enb-rrc.cc.
References m_anrSapUser, and NS_LOG_FUNCTION.
LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser | ( | ) |
Get the CMAC SAP offered by this RRC.
Definition at line 1517 of file lte-enb-rrc.cc.
References m_cmacSapUser, and NS_LOG_FUNCTION.
LteEnbCphySapUser * ns3::LteEnbRrc::GetLteEnbCphySapUser | ( | ) |
Definition at line 1607 of file lte-enb-rrc.cc.
References m_cphySapUser, and NS_LOG_FUNCTION.
LteEnbRrcSapProvider * ns3::LteEnbRrc::GetLteEnbRrcSapProvider | ( | ) |
Definition at line 1573 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 1559 of file lte-enb-rrc.cc.
References m_ffrRrcSapUser, and NS_LOG_FUNCTION.
LteHandoverManagementSapUser * ns3::LteEnbRrc::GetLteHandoverManagementSapUser | ( | ) |
Get the Handover Management SAP offered by this RRC.
Definition at line 1531 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 2403 of file lte-enb-rrc.cc.
References m_lastAllocatedConfigurationIndex, m_srsCurrentPeriodicityId, m_ueSrsConfigurationIndexSet, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
bearer | the specification of an EPS bearer |
Definition at line 2296 of file lte-enb-rrc.cc.
References ns3::EpsBearer::GetPacketErrorLossRate(), ns3::LteRlcUm::GetTypeId(), ns3::LteRlcAm::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 2393 of file lte-enb-rrc.cc.
References m_srsCurrentPeriodicityId, NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
static |
Definition at line 1342 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_connectionRequestTimeoutDuration, m_connectionSetupTimeoutDuration, m_defaultTransmissionMode, m_epsBearerToRlcMapping, m_handoverEndOkTrace, m_handoverJoiningTimeoutDuration, m_handoverLeavingTimeoutDuration, m_handoverStartTrace, m_newUeContextTrace, m_qRxLevMin, m_recvMeasurementReportTrace, m_rsrpFilterCoefficient, m_rsrqFilterCoefficient, m_systemInformationPeriodicity, m_ueMap, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeEnumAccessor(), ns3::MakeEnumChecker(), ns3::MakeIntegerAccessor(), ns3::MakeObjectMapAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MilliSeconds(), NS_LOG_FUNCTION, 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 1622 of file lte-enb-rrc.cc.
References m_cellId, m_ueMap, NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), DoCompleteSetupUe(), DoDataRadioBearerSetupRequest(), DoPathSwitchRequestAcknowledge(), DoRecvHandoverPreparationFailure(), DoRecvHandoverRequest(), DoRecvHandoverRequestAck(), DoRecvMeasurementReport(), DoRecvRrcConnectionReconfigurationCompleted(), DoRecvRrcConnectionReestablishmentComplete(), DoRecvRrcConnectionReestablishmentRequest(), DoRecvRrcConnectionRequest(), DoRecvRrcConnectionSetupCompleted(), DoRecvSnStatusTransfer(), DoRecvUeContextRelease(), DoRecvUeData(), DoRrcConfigurationUpdateInd(), DoSendReleaseDataRadioBearer(), DoSetPdschConfigDedicated(), DoTriggerHandover(), HandoverJoiningTimeout(), HandoverLeavingTimeout(), 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 |
Definition at line 1846 of file lte-enb-rrc.cc.
References GetUeManager(), ns3::UeManager::HANDOVER_JOINING, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), 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 |
Definition at line 1855 of file lte-enb-rrc.cc.
References GetUeManager(), ns3::UeManager::HANDOVER_LEAVING, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveUe(), and ns3::ToString().
Referenced by ns3::UeManager::RecvHandoverRequestAck().
bool ns3::LteEnbRrc::HasUeManager | ( | uint16_t | rnti | ) | const |
rnti | the identifier of an UE |
Definition at line 1614 of file lte-enb-rrc.cc.
References m_ueMap, and NS_LOG_FUNCTION.
|
private |
remove a previously allocated SRS configuration index
srcCi | the indext to be removed |
Definition at line 2457 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 2278 of file lte-enb-rrc.cc.
References m_cmacSapProvider, m_cphySapProvider, m_s1SapProvider, m_ueMap, NS_ASSERT_MSG, NS_LOG_FUNCTION, RemoveSrsConfigurationIndex(), ns3::LteEnbCmacSapProvider::RemoveUe(), ns3::LteEnbCphySapProvider::RemoveUe(), and ns3::EpcEnbS1SapProvider::UeContextRelease().
Referenced by ConnectionRejectedTimeout(), ConnectionRequestTimeout(), ConnectionSetupTimeout(), DoRecvHandoverRequest(), DoRecvUeContextRelease(), HandoverJoiningTimeout(), and HandoverLeavingTimeout().
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 1799 of file lte-enb-rrc.cc.
References ns3::EpsBearerTag::GetBid(), ns3::EpsBearerTag::GetRnti(), GetUeManager(), NS_ASSERT_MSG, NS_LOG_FUNCTION, 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 1864 of file lte-enb-rrc.cc.
References GetUeManager(), m_configured, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
private |
method used to periodically send System Information
Definition at line 2485 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType2::freqInfo, ns3::LteEnbCmacSapProvider::GetRachConfig(), ns3::LteEnbCphySapProvider::GetReferenceSignalPower(), ns3::LteRrcSap::SystemInformation::haveSib2, m_cmacSapProvider, m_cphySapProvider, m_rrcSapUser, m_systemInformationPeriodicity, m_ulBandwidth, m_ulEarfcn, ns3::LteEnbCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteRrcSap::PreambleInfo::numberOfRaPreambles, ns3::LteRrcSap::PdschConfigCommon::pb, ns3::LteRrcSap::RadioResourceConfigCommonSib::pdschConfigCommon, ns3::LteRrcSap::RachConfigCommon::preambleInfo, ns3::LteEnbCmacSapProvider::RachConfig::preambleTransMax, ns3::LteRrcSap::RaSupervisionInfo::preambleTransMax, ns3::LteRrcSap::RadioResourceConfigCommonSib::rachConfigCommon, ns3::LteRrcSap::SystemInformationBlockType2::radioResourceConfigCommon, ns3::LteEnbCmacSapProvider::RachConfig::raResponseWindowSize, ns3::LteRrcSap::RaSupervisionInfo::raResponseWindowSize, ns3::LteRrcSap::RachConfigCommon::raSupervisionInfo, ns3::LteRrcSap::PdschConfigCommon::referenceSignalPower, ns3::Simulator::Schedule(), ns3::LteEnbRrcSapUser::SendSystemInformation(), ns3::LteRrcSap::SystemInformation::sib2, 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 1789 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::cellIdentity, m_cellId, m_cphySapProvider, m_sib1, and ns3::LteEnbCphySapProvider::SetSystemInformationBlockType1().
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 2342 of file lte-enb-rrc.cc.
References ns3::LteRrcSap::SystemInformationBlockType1::cellAccessRelatedInfo, ns3::LteRrcSap::CellAccessRelatedInfo::csgIdentity, ns3::LteRrcSap::CellAccessRelatedInfo::csgIndication, m_cphySapProvider, m_sib1, NS_LOG_FUNCTION, and ns3::LteEnbCphySapProvider::SetSystemInformationBlockType1().
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 1496 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 1813 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 1538 of file lte-enb-rrc.cc.
References m_anrSapProvider, 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 1510 of file lte-enb-rrc.cc.
References m_cmacSapProvider, 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 1600 of file lte-enb-rrc.cc.
References m_cphySapProvider, 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 1566 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 1552 of file lte-enb-rrc.cc.
References m_ffrRrcSapProvider, 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 1524 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 1580 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 1587 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 2372 of file lte-enb-rrc.cc.
References m_srsCurrentPeriodicityId, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::SRS_ENTRIES.
Referenced by GetTypeId().
|
friend |
Definition at line 512 of file lte-enb-rrc.h.
Referenced by LteEnbRrc().
|
friend |
Definition at line 518 of file lte-enb-rrc.h.
|
friend |
Definition at line 517 of file lte-enb-rrc.h.
|
friend |
Definition at line 514 of file lte-enb-rrc.h.
|
friend |
Definition at line 516 of file lte-enb-rrc.h.
|
friend |
Definition at line 515 of file lte-enb-rrc.h.
|
friend |
Definition at line 513 of file lte-enb-rrc.h.
|
friend |
Definition at line 519 of file lte-enb-rrc.h.
|
private |
The AdmitHandoverRequest
attribute.
Whether to admit an X2 handover request from another eNB.
Definition at line 1169 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 1174 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
List of measurement identities which are intended for ANR purpose.
Definition at line 1123 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForAnr().
|
private |
Interface to the ANR instance.
Definition at line 1066 of file lte-enb-rrc.h.
Referenced by AddX2Neighbour(), DoTriggerHandover(), and SetLteAnrSapProvider().
|
private |
Receive API calls from the ANR instance.
Definition at line 1064 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteAnrSapUser(), and LteEnbRrc().
|
private |
Cell identifier. Must be unique across the simulation.
Definition at line 1094 of file lte-enb-rrc.h.
Referenced by AddUe(), ConfigureCell(), DoRecvHandoverRequest(), DoTriggerHandover(), GetUeManager(), and SetCellId().
|
private |
Interface to the eNodeB MAC instance.
Definition at line 1056 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 1054 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteEnbCmacSapUser(), and LteEnbRrc().
|
private |
True if ConfigureCell() has been completed.
Definition at line 1092 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 1231 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 1236 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 1205 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
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 1193 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 1200 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to the eNodeB PHY instance.
Definition at line 1089 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), RemoveUe(), SendSystemInformation(), SetCellId(), SetCsgId(), and SetLteEnbCphySapProvider().
|
private |
Receive API calls from the eNodeB PHY instance.
Definition at line 1087 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteEnbCphySapUser(), and LteEnbRrc().
|
private |
The DefaultTransmissionMode
attribute.
The default UEs' transmission mode (0: SISO).
Definition at line 1140 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Downlink transmission bandwidth configuration in number of Resource Blocks.
Definition at line 1100 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and DoRecvHandoverRequest().
|
private |
Downlink E-UTRA Absolute Radio Frequency Channel Number.
Definition at line 1096 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and DoRecvHandoverRequest().
|
private |
The EpsBearerToRlcMapping
attribute.
Specify which type of RLC will be used for each type of EPS bearer.
Definition at line 1145 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 1125 of file lte-enb-rrc.h.
Referenced by DoAddUeMeasReportConfigForFfr().
|
private |
Interface to the FFR algorithm instance.
Definition at line 1071 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), DoRecvLoadInformation(), and SetLteFfrRrcSapProvider().
|
private |
Receive API calls from the FFR algorithm instance.
Definition at line 1069 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteFfrRrcSapUser(), and LteEnbRrc().
Definition at line 1046 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 1246 of file lte-enb-rrc.h.
Referenced by 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 1214 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 1220 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to the handover algorithm instance.
Definition at line 1061 of file lte-enb-rrc.h.
Referenced by SetLteHandoverManagementSapProvider().
|
private |
Receive API calls from the handover algorithm instance.
Definition at line 1059 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteHandoverManagementSapUser(), and LteEnbRrc().
|
private |
List of measurement identities which are intended for handover purpose.
Definition at line 1121 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 1241 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Definition at line 1156 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex().
|
private |
Definition at line 1104 of file lte-enb-rrc.h.
Referenced by AddUe().
|
private |
Interface to the eNodeB MAC instance, to be used by RLC instances.
Definition at line 1079 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 1226 of file lte-enb-rrc.h.
Referenced by AddUe(), and GetTypeId().
|
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 1164 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), and GetTypeId().
|
private |
Definition at line 1157 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 1251 of file lte-enb-rrc.h.
Referenced by GetTypeId().
|
private |
Interface to receive messages from UE over the RRC protocol.
Definition at line 1076 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetLteEnbRrcSapProvider(), and LteEnbRrc().
|
private |
Interface to send messages to UE over the RRC protocol.
Definition at line 1074 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), SendSystemInformation(), and SetLteEnbRrcSapUser().
|
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 1180 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 1186 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 1082 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 1084 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetS1SapUser(), and LteEnbRrc().
|
private |
The System Information Block Type 1 that is currently broadcasted over BCH.
Definition at line 1107 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), SetCellId(), and SetCsgId().
|
private |
The SrsPeriodicity
attribute.
The SRS periodicity in milliseconds.
Definition at line 1154 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), GetSrsPeriodicity(), and SetSrsPeriodicity().
|
private |
The SystemInformationPeriodicity
attribute.
The interval for sending system information.
Definition at line 1150 of file lte-enb-rrc.h.
Referenced by GetTypeId(), and SendSystemInformation().
The UeMap
attribute.
List of UeManager by C-RNTI.
Definition at line 1112 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 1118 of file lte-enb-rrc.h.
Referenced by AddUeMeasReportConfig(), and ConfigureCell().
|
private |
Definition at line 1155 of file lte-enb-rrc.h.
Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().
|
private |
Uplink transmission bandwidth configuration in number of Resource Blocks.
Definition at line 1102 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), DoRecvHandoverRequest(), and SendSystemInformation().
|
private |
Uplink E-UTRA Absolute Radio Frequency Channel Number.
Definition at line 1098 of file lte-enb-rrc.h.
Referenced by ConfigureCell(), DoRecvHandoverRequest(), and SendSystemInformation().
|
private |
Interface to send messages to neighbour eNodeB over the X2 interface.
Definition at line 1051 of file lte-enb-rrc.h.
Referenced by DoRecvHandoverRequest(), DoSendLoadInformation(), and SetEpcX2SapProvider().
|
private |
Interface to receive messages from neighbour eNodeB over the X2 interface.
Definition at line 1049 of file lte-enb-rrc.h.
Referenced by DoDispose(), GetEpcX2SapUser(), and LteEnbRrc().
|
private |
Definition at line 1134 of file lte-enb-rrc.h.
Referenced by DoRecvUeData().