A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::LteEnbRrc Class Reference

#include <lte-enb-rrc.h>

+ Inheritance diagram for ns3::LteEnbRrc:
+ Collaboration diagram for ns3::LteEnbRrc:

Classes

struct  X2uTeidInfo

Public Types

enum  LteEpsBearerToRlcMapping_t { RLC_SM_ALWAYS = 1, RLC_UM_ALWAYS = 2, RLC_AM_ALWAYS = 3, PER_BASED = 4 }

Public Member Functions

 LteEnbRrc ()
virtual ~LteEnbRrc ()
void ConfigureCell (uint8_t ulBandwidth, uint8_t dlBandwidth, uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId)
void ConnectionTimeout (uint16_t rnti)
EpcX2SapUserGetEpcX2SapUser ()
LteEnbCmacSapUserGetLteEnbCmacSapUser ()
LteEnbCphySapUserGetLteEnbCphySapUser ()
LteEnbRrcSapProviderGetLteEnbRrcSapProvider ()
EpcEnbS1SapUserGetS1SapUser ()
uint32_t GetSrsPeriodicity () const
Ptr< UeManagerGetUeManager (uint16_t rnti)
bool SendData (Ptr< Packet > p)
void SendHandoverRequest (uint16_t rnti, uint16_t cellId)
void SetCellId (uint16_t m_cellId)
void SetEpcX2SapProvider (EpcX2SapProvider *s)
void SetForwardUpCallback (Callback< void, Ptr< Packet > > cb)
void SetLteEnbCmacSapProvider (LteEnbCmacSapProvider *s)
void SetLteEnbCphySapProvider (LteEnbCphySapProvider *s)
void SetLteEnbRrcSapUser (LteEnbRrcSapUser *s)
void SetLteMacSapProvider (LteMacSapProvider *s)
void SetS1SapProvider (EpcEnbS1SapProvider *s)
void SetSrsPeriodicity (uint32_t p)
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~Object ()
void AggregateObject (Ptr< Object > other)
void Dispose (void)
AggregateIterator GetAggregateIterator (void) const
virtual TypeId GetInstanceTypeId (void) const
template<typename T >
Ptr< T > GetObject (void) const
template<typename T >
Ptr< T > GetObject (TypeId tid) const
void Initialize (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
void GetAttribute (std::string name, AttributeValue &value) const
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
void SetAttribute (std::string name, const AttributeValue &value)
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)

Static Public Member Functions

static TypeId GetTypeId (void)

Protected Member Functions

virtual void DoDispose (void)
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoInitialize (void)
virtual void NotifyNewAggregate (void)

Private Member Functions

uint16_t AddUe (UeManager::State state)
uint16_t DoAllocateTemporaryCellRnti ()
void DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params)
void DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params)
void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success)
void DoPathSwitchRequestAcknowledge (EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params)
void DoRecvHandoverPreparationFailure (EpcX2SapUser::HandoverPreparationFailureParams params)
void DoRecvHandoverRequest (EpcX2SapUser::HandoverRequestParams params)
void DoRecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params)
void DoRecvLoadInformation (EpcX2SapUser::LoadInformationParams params)
void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg)
void DoRecvResourceStatusUpdate (EpcX2SapUser::ResourceStatusUpdateParams params)
void DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg)
void DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg)
void DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg)
void DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
void DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg)
void DoRecvSnStatusTransfer (EpcX2SapUser::SnStatusTransferParams params)
void DoRecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params)
void DoRecvUeData (EpcX2SapUser::UeDataParams params)
void DoRrcConfigurationUpdateInd (LteEnbCmacSapUser::UeConfig params)
uint8_t GetLogicalChannelGroup (EpsBearer bearer)
uint8_t GetLogicalChannelPriority (EpsBearer bearer)
uint16_t GetNewSrsConfigurationIndex (void)
TypeId GetRlcType (EpsBearer bearer)
void RemoveSrsConfigurationIndex (uint16_t srcCi)
void RemoveUe (uint16_t rnti)
void SendSystemInformation ()

Private Attributes

bool m_admitHandoverRequest
bool m_admitRrcConnectionRequest
uint16_t m_cellId
LteEnbCmacSapProviderm_cmacSapProvider
LteEnbCmacSapUserm_cmacSapUser
bool m_configured
TracedCallback< uint64_t,
uint16_t, uint16_t > 
m_connectionEstablishedTrace
TracedCallback< uint64_t,
uint16_t, uint16_t > 
m_connectionReconfigurationTrace
LteEnbCphySapProviderm_cphySapProvider
LteEnbCphySapUserm_cphySapUser
uint8_t m_defaultTransmissionMode
uint16_t m_dlBandwidth
uint16_t m_dlEarfcn
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
Callback< void, Ptr< Packet > > m_forwardUpCallback
TracedCallback< uint64_t,
uint16_t, uint16_t > 
m_handoverEndOkTrace
TracedCallback< uint64_t,
uint16_t, uint16_t, uint16_t > 
m_handoverStartTrace
uint16_t m_lastAllocatedConfigurationIndex
uint16_t m_lastAllocatedRnti
LteMacSapProviderm_macSapProvider
TracedCallback< uint16_t,
uint16_t > 
m_newUeContextTrace
bool m_reconfigureUes
LteEnbRrcSapProviderm_rrcSapProvider
LteEnbRrcSapUserm_rrcSapUser
EpcEnbS1SapProviderm_s1SapProvider
EpcEnbS1SapUserm_s1SapUser
uint16_t m_srsCurrentPeriodicityId
Time m_systemInformationPeriodicity
std::map< uint16_t, Ptr
< UeManager > > 
m_ueMap
std::set< uint16_t > m_ueSrsConfigurationIndexSet
uint16_t m_ulBandwidth
uint16_t m_ulEarfcn
EpcX2SapProviderm_x2SapProvider
EpcX2SapUserm_x2SapUser
std::map< uint32_t, X2uTeidInfom_x2uTeidInfoMap

Friends

class EnbRrcMemberLteEnbCmacSapUser
class EpcX2SpecificEpcX2SapUser< LteEnbRrc >
class MemberEpcEnbS1SapUser< LteEnbRrc >
class MemberLteEnbRrcSapProvider< LteEnbRrc >
class UeManager

Detailed Description

The LTE Radio Resource Control entity at the eNB

Config Paths

ns3::LteEnbRrc is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/LteEnbRrc
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/LteEnbRrc

Attributes

  • UeMap: List of UeManager by C-RNTI.
  • DefaultTransmissionMode: The default UEs' transmission mode (0: SISO)
  • EpsBearerToRlcMapping: Specify which type of RLC will be used for each type of EPS bearer.
    • Set with class: ns3::EnumValue
    • Underlying type: RlcSmAlways|RlcUmAlways|RlcAmAlways|PacketErrorRateBased
    • Initial value: RlcSmAlways
    • Flags: construct write read
  • SystemInformationPeriodicity: The interval for sending system information (Time value)
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +80000000.0ns
    • Flags: construct write read
  • SrsPeriodicity: The SRS periodicity in milliseconds
  • AdmitHandoverRequest: Whether to admit an X2 handover request from another eNB
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read
  • AdmitRrcConnectionRequest: Whether to admit a connection request from a Ue
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

TraceSources

  • NewUeContext: trace fired upon creation of a new UE context
  • ConnectionEstablished: trace fired upon successful RRC connection establishment
  • ConnectionReconfiguration: trace fired upon RRC connection reconfiguration
  • HandoverStart: trace fired upon start of a handover procedure
  • HandoverEndOk: trace fired upon successful termination of a handover procedure

Definition at line 403 of file lte-enb-rrc.h.

Member Enumeration Documentation

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 585 of file lte-enb-rrc.h.

Constructor & Destructor Documentation

ns3::LteEnbRrc::LteEnbRrc ( )

create an RRC instance for use within an eNB

Definition at line 1160 of file lte-enb-rrc.cc.

References EnbRrcMemberLteEnbCmacSapUser, m_cmacSapUser, m_cphySapUser, m_rrcSapProvider, m_s1SapUser, m_x2SapUser, and NS_LOG_FUNCTION.

ns3::LteEnbRrc::~LteEnbRrc ( )
virtual

Destructor

Definition at line 1184 of file lte-enb-rrc.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

uint16_t ns3::LteEnbRrc::AddUe ( UeManager::State  state)
private

Allocate a new RNTI for a new UE. This is done in the following cases:

  • T-C-RNTI allocation upon contention-based MAC Random Access procedure
  • target cell RNTI allocation upon handover
Parameters
statethe initial state of the UeManager
Returns
the newly allocated RNTI

Definition at line 1714 of file lte-enb-rrc.cc.

References ns3::UeManager::GetSrsConfigurationIndex(), ns3::Object::Initialize(), m_cellId, m_lastAllocatedRnti, m_newUeContextTrace, m_ueMap, NS_ASSERT_MSG, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by DoAllocateTemporaryCellRnti(), and DoRecvHandoverRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::ConfigureCell ( uint8_t  ulBandwidth,
uint8_t  dlBandwidth,
uint16_t  ulEarfcn,
uint16_t  dlEarfcn,
uint16_t  cellId 
)

configure cell-specific parameters

Parameters
ulBandwidththe uplink bandwidth in number of RB
dlBandwidththe downlink bandwidth in number of RB
ulEarfcnthe UL EARFCN
dlEarfcnthe DL EARFCN
cellIdthe ID of the cell

Definition at line 1353 of file lte-enb-rrc.cc.

References ns3::LteEnbCmacSapProvider::ConfigureMac(), ns3::LteRrcSap::MasterInformationBlock::dlBandwidth, m_cellId, m_cmacSapProvider, m_configured, m_cphySapProvider, m_dlBandwidth, m_dlEarfcn, m_ulBandwidth, m_ulEarfcn, ns3::MilliSeconds(), NS_ASSERT, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), SendSystemInformation(), ns3::LteEnbCphySapProvider::SetBandwidth(), ns3::LteEnbCphySapProvider::SetCellId(), ns3::LteEnbCphySapProvider::SetEarfcn(), and ns3::LteEnbCphySapProvider::SetMasterInformationBlock().

Referenced by ns3::LteEnbNetDevice::UpdateConfig().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::ConnectionTimeout ( uint16_t  rnti)

Method triggered when a UE is expected to get connected but does not do so in a reasonable time

Parameters
rntithe T-C-RNTI whose timeout expired

Definition at line 1403 of file lte-enb-rrc.cc.

References NS_LOG_FUNCTION, and RemoveUe().

Referenced by ns3::UeManager::DoInitialize(), and ns3::UeManager::RecvRrcConnectionRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::LteEnbRrc::DoAllocateTemporaryCellRnti ( )
private

Definition at line 1691 of file lte-enb-rrc.cc.

References AddUe(), ns3::UeManager::INITIAL_RANDOM_ACCESS, and NS_LOG_FUNCTION.

Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::AllocateTemporaryCellRnti().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::DoCompleteSetupUe ( uint16_t  rnti,
LteEnbRrcSapProvider::CompleteSetupUeParameters  params 
)
private

Definition at line 1423 of file lte-enb-rrc.cc.

References ns3::UeManager::CompleteSetupUe(), GetUeManager(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoDispose ( void  )
protectedvirtual

This method is called by Object::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 1191 of file lte-enb-rrc.cc.

References m_cmacSapUser, m_cphySapUser, m_rrcSapProvider, m_s1SapUser, m_ueMap, m_x2SapUser, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::DoNotifyLcConfigResult ( uint16_t  rnti,
uint8_t  lcid,
bool  success 
)
private

Definition at line 1705 of file lte-enb-rrc.cc.

References NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::DoPathSwitchRequestAcknowledge ( EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters  params)
private

Definition at line 1480 of file lte-enb-rrc.cc.

References GetUeManager(), ns3::EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters::rnti, and ns3::UeManager::SendUeContextRelease().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvHandoverRequest ( EpcX2SapUser::HandoverRequestParams  params)
private

Definition at line 1487 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(), ns3::UeManager::GetRrcConnectionReconfigurationForHandover(), 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::UeManager::SetImsi(), ns3::UeManager::SetSource(), ns3::UeManager::SetupDataRadioBearer(), 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.

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvLoadInformation ( EpcX2SapUser::LoadInformationParams  params)
private
void ns3::LteEnbRrc::DoRecvMeasurementReport ( uint16_t  rnti,
LteRrcSap::MeasurementReport  msg 
)
private

Definition at line 1466 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvMeasurementReport().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvResourceStatusUpdate ( EpcX2SapUser::ResourceStatusUpdateParams  params)
private
void ns3::LteEnbRrc::DoRecvRrcConnectionReconfigurationCompleted ( uint16_t  rnti,
LteRrcSap::RrcConnectionReconfigurationCompleted  msg 
)
private

Definition at line 1445 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvRrcConnectionReconfigurationCompleted().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvRrcConnectionReestablishmentComplete ( uint16_t  rnti,
LteRrcSap::RrcConnectionReestablishmentComplete  msg 
)
private

Definition at line 1459 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvRrcConnectionReestablishmentComplete().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvRrcConnectionReestablishmentRequest ( uint16_t  rnti,
LteRrcSap::RrcConnectionReestablishmentRequest  msg 
)
private

Definition at line 1452 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvRrcConnectionReestablishmentRequest().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvRrcConnectionRequest ( uint16_t  rnti,
LteRrcSap::RrcConnectionRequest  msg 
)
private

Definition at line 1430 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvRrcConnectionRequest().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvRrcConnectionSetupCompleted ( uint16_t  rnti,
LteRrcSap::RrcConnectionSetupCompleted  msg 
)
private

Definition at line 1438 of file lte-enb-rrc.cc.

References GetUeManager(), NS_LOG_FUNCTION, and ns3::UeManager::RecvRrcConnectionSetupCompleted().

+ Here is the call graph for this function:

void ns3::LteEnbRrc::DoRecvUeContextRelease ( EpcX2SapUser::UeContextReleaseParams  params)
private
void ns3::LteEnbRrc::DoRrcConfigurationUpdateInd ( LteEnbCmacSapUser::UeConfig  params)
private

Definition at line 1698 of file lte-enb-rrc.cc.

References ns3::UeManager::CmacUeConfigUpdateInd(), GetUeManager(), and ns3::LteEnbCmacSapUser::UeConfig::m_rnti.

Referenced by ns3::EnbRrcMemberLteEnbCmacSapUser::RrcConfigurationUpdateInd().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EpcX2SapUser * ns3::LteEnbRrc::GetEpcX2SapUser ( )

Get the X2 SAP offered by this RRC

Returns
s the X2 SAP User interface offered to the X2 entity by this RRC entity

Definition at line 1274 of file lte-enb-rrc.cc.

References m_x2SapUser, and NS_LOG_FUNCTION.

uint8_t ns3::LteEnbRrc::GetLogicalChannelGroup ( EpsBearer  bearer)
private
Parameters
bearerthe characteristics of the bearer
Returns
the Logical Channel Group in a bearer with these characteristics is put. Used for MAC Buffer Status Reporting purposes.

Definition at line 1896 of file lte-enb-rrc.cc.

References ns3::EpsBearer::IsGbr().

Referenced by ns3::UeManager::SetupDataRadioBearer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint8_t ns3::LteEnbRrc::GetLogicalChannelPriority ( EpsBearer  bearer)
private
Parameters
bearerthe characteristics of the bearer
Returns
the priority level of a bearer with these characteristics is put. Used for the part of UL MAC Scheduling carried out by the UE

Definition at line 1909 of file lte-enb-rrc.cc.

References ns3::EpsBearer::qci.

Referenced by ns3::UeManager::SetupDataRadioBearer().

+ Here is the caller graph for this function:

LteEnbCmacSapUser * ns3::LteEnbRrc::GetLteEnbCmacSapUser ( )

Get the CMAC SAP offered by this RRC

Returns
s the CMAC SAP User interface offered to the MAC by this RRC

Definition at line 1288 of file lte-enb-rrc.cc.

References m_cmacSapUser, and NS_LOG_FUNCTION.

LteEnbCphySapUser * ns3::LteEnbRrc::GetLteEnbCphySapUser ( )
Returns
s the CPHY SAP User interface offered to the PHY by this RRC

Definition at line 1336 of file lte-enb-rrc.cc.

References m_cphySapUser, and NS_LOG_FUNCTION.

LteEnbRrcSapProvider * ns3::LteEnbRrc::GetLteEnbRrcSapProvider ( )
Returns
s the RRC SAP Provider interface offered to the MAC by this RRC

Definition at line 1302 of file lte-enb-rrc.cc.

References m_rrcSapProvider, and NS_LOG_FUNCTION.

Referenced by ns3::LteUeRrcProtocolIdeal::SetEnbRrcSapProvider(), and ns3::LteUeRrcProtocolReal::SetEnbRrcSapProvider().

+ Here is the caller graph for this function:

uint16_t ns3::LteEnbRrc::GetNewSrsConfigurationIndex ( void  )
private

Allocate a new SRS configuration index for a new UE.

Note
this method can have the side effect of updating the SRS configuration index of all UEs
Returns
the newly allocated SRS configuration index

Definition at line 1833 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.

Referenced by ns3::UeManager::DoInitialize().

+ Here is the caller graph for this function:

TypeId ns3::LteEnbRrc::GetRlcType ( EpsBearer  bearer)
private
Parameters
bearerthe specification of an EPS bearer
Returns
the type of RLC that is to be created for the given EPS bearer

Definition at line 1759 of file lte-enb-rrc.cc.

References ns3::EpsBearer::GetPacketErrorLossRate(), GetTypeId(), m_epsBearerToRlcMapping, PER_BASED, RLC_AM_ALWAYS, RLC_SM_ALWAYS, and RLC_UM_ALWAYS.

Referenced by ns3::UeManager::SetupDataRadioBearer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EpcEnbS1SapUser * ns3::LteEnbRrc::GetS1SapUser ( )
Returns
the S1 SAP user

Definition at line 1323 of file lte-enb-rrc.cc.

References m_s1SapUser.

Referenced by ns3::DrbActivator::ActivateDrb().

+ Here is the caller graph for this function:

uint32_t ns3::LteEnbRrc::GetSrsPeriodicity ( ) const
Returns
the current SRS periodicity

Definition at line 1823 of file lte-enb-rrc.cc.

References ns3::g_srsPeriodicity, m_srsCurrentPeriodicityId, NS_ASSERT, NS_LOG_FUNCTION, and ns3::SRS_ENTRIES.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::RemoveSrsConfigurationIndex ( uint16_t  srcCi)
private

remove a previously allocated SRS configuration index

Note
this method can have the side effect of updating the SRS configuration index of all UEs
Parameters
srcCithe indext to be removed

Definition at line 1887 of file lte-enb-rrc.cc.

References m_ueSrsConfigurationIndexSet, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by RemoveUe().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::RemoveUe ( uint16_t  rnti)
private

remove a UE from the cell

Parameters
rntithe C-RNTI identiftying the user

Definition at line 1741 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 ConnectionTimeout(), DoRecvHandoverRequest(), and DoRecvUeContextRelease().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::LteEnbRrc::SendData ( Ptr< Packet p)

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

Parameters
pthe packet
Returns
true if successful, false if an error occurred

Definition at line 1383 of file lte-enb-rrc.cc.

References ns3::EpsBearerTag::GetBid(), ns3::EpsBearerTag::GetRnti(), GetUeManager(), NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), and ns3::UeManager::SendData().

Referenced by ns3::LteEnbNetDevice::Send().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Parameters
imsithe id of the UE to be handed over
cellIdthe id of the target eNB

Definition at line 1411 of file lte-enb-rrc.cc.

References GetUeManager(), m_configured, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::UeManager::PrepareHandover().

Referenced by ns3::LteHelper::DoHandoverRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::SetCellId ( uint16_t  m_cellId)

set the cell id of this eNB

Parameters
m_cellId

Definition at line 1377 of file lte-enb-rrc.cc.

References m_cellId.

Referenced by ns3::LteEnbNetDevice::UpdateConfig().

+ Here is the caller graph for this function:

void ns3::LteEnbRrc::SetEpcX2SapProvider ( EpcX2SapProvider s)

Set the X2 SAP this RRC should interact with

Parameters
sthe X2 SAP Provider to be used by this RRC entity

Definition at line 1267 of file lte-enb-rrc.cc.

References m_x2SapProvider, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::SetForwardUpCallback ( Callback< void, Ptr< Packet > >  cb)

set the callback used to forward data packets up the stack

Parameters
void
cb

Definition at line 1397 of file lte-enb-rrc.cc.

References m_forwardUpCallback.

void ns3::LteEnbRrc::SetLteEnbCmacSapProvider ( LteEnbCmacSapProvider s)

set the CMAC SAP this RRC should interact with

Parameters
sthe CMAC SAP Provider to be used by this RRC

Definition at line 1281 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

Parameters
sthe CPHY SAP Provider

Definition at line 1329 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

Parameters
sthe RRC SAP User to be used by this RRC

Definition at line 1295 of file lte-enb-rrc.cc.

References m_rrcSapUser, 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.

Parameters
sthe MAC SAP provider that will be used by all newly created RLC instances

Definition at line 1309 of file lte-enb-rrc.cc.

References m_macSapProvider, and NS_LOG_FUNCTION.

void ns3::LteEnbRrc::SetS1SapProvider ( EpcEnbS1SapProvider s)

Set the S1 SAP Provider

Parameters
sthe S1 SAP Provider

Definition at line 1316 of file lte-enb-rrc.cc.

References m_s1SapProvider.

void ns3::LteEnbRrc::SetSrsPeriodicity ( uint32_t  p)
Parameters
pthe SRS periodicity in num TTIs

Definition at line 1802 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().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class EnbRrcMemberLteEnbCmacSapUser
friend

Definition at line 406 of file lte-enb-rrc.h.

Referenced by LteEnbRrc().

friend class EpcX2SpecificEpcX2SapUser< LteEnbRrc >
friend

Definition at line 409 of file lte-enb-rrc.h.

friend class MemberEpcEnbS1SapUser< LteEnbRrc >
friend

Definition at line 408 of file lte-enb-rrc.h.

friend class MemberLteEnbRrcSapProvider< LteEnbRrc >
friend

Definition at line 407 of file lte-enb-rrc.h.

friend class UeManager
friend

Definition at line 410 of file lte-enb-rrc.h.

Member Data Documentation

bool ns3::LteEnbRrc::m_admitHandoverRequest
private

Definition at line 768 of file lte-enb-rrc.h.

Referenced by DoRecvHandoverRequest(), and GetTypeId().

bool ns3::LteEnbRrc::m_admitRrcConnectionRequest
private

Definition at line 769 of file lte-enb-rrc.h.

Referenced by GetTypeId(), and ns3::UeManager::RecvRrcConnectionRequest().

LteEnbCmacSapUser* ns3::LteEnbRrc::m_cmacSapUser
private

Definition at line 723 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetLteEnbCmacSapUser(), and LteEnbRrc().

bool ns3::LteEnbRrc::m_configured
private

Definition at line 737 of file lte-enb-rrc.h.

Referenced by ConfigureCell(), and SendHandoverRequest().

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteEnbRrc::m_connectionEstablishedTrace
private

Definition at line 774 of file lte-enb-rrc.h.

Referenced by GetTypeId(), and ns3::UeManager::RecvRrcConnectionSetupCompleted().

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteEnbRrc::m_connectionReconfigurationTrace
private
LteEnbCphySapUser* ns3::LteEnbRrc::m_cphySapUser
private

Definition at line 734 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetLteEnbCphySapUser(), and LteEnbRrc().

uint8_t ns3::LteEnbRrc::m_defaultTransmissionMode
private

Definition at line 756 of file lte-enb-rrc.h.

Referenced by ns3::UeManager::DoInitialize(), and GetTypeId().

uint16_t ns3::LteEnbRrc::m_dlBandwidth
private
uint16_t ns3::LteEnbRrc::m_dlEarfcn
private
enum LteEpsBearerToRlcMapping_t ns3::LteEnbRrc::m_epsBearerToRlcMapping
private

Definition at line 758 of file lte-enb-rrc.h.

Referenced by GetRlcType(), and GetTypeId().

Callback<void, Ptr<Packet> > ns3::LteEnbRrc::m_forwardUpCallback
private

Definition at line 718 of file lte-enb-rrc.h.

Referenced by ns3::UeManager::DoReceivePdcpSdu(), and SetForwardUpCallback().

TracedCallback<uint64_t, uint16_t, uint16_t> ns3::LteEnbRrc::m_handoverEndOkTrace
private

Definition at line 780 of file lte-enb-rrc.h.

Referenced by GetTypeId(), and ns3::UeManager::SendUeContextRelease().

TracedCallback<uint64_t, uint16_t, uint16_t, uint16_t> ns3::LteEnbRrc::m_handoverStartTrace
private

Definition at line 778 of file lte-enb-rrc.h.

Referenced by GetTypeId(), and ns3::UeManager::RecvHandoverRequestAck().

uint16_t ns3::LteEnbRrc::m_lastAllocatedConfigurationIndex
private

Definition at line 765 of file lte-enb-rrc.h.

Referenced by GetNewSrsConfigurationIndex().

uint16_t ns3::LteEnbRrc::m_lastAllocatedRnti
private

Definition at line 743 of file lte-enb-rrc.h.

Referenced by AddUe().

LteMacSapProvider* ns3::LteEnbRrc::m_macSapProvider
private
TracedCallback<uint16_t, uint16_t> ns3::LteEnbRrc::m_newUeContextTrace
private

Definition at line 772 of file lte-enb-rrc.h.

Referenced by AddUe(), and GetTypeId().

bool ns3::LteEnbRrc::m_reconfigureUes
private

Definition at line 766 of file lte-enb-rrc.h.

LteEnbRrcSapProvider* ns3::LteEnbRrc::m_rrcSapProvider
private

Definition at line 727 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetLteEnbRrcSapProvider(), and LteEnbRrc().

EpcEnbS1SapUser* ns3::LteEnbRrc::m_s1SapUser
private

Definition at line 732 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetS1SapUser(), and LteEnbRrc().

uint16_t ns3::LteEnbRrc::m_srsCurrentPeriodicityId
private
Time ns3::LteEnbRrc::m_systemInformationPeriodicity
private

Definition at line 760 of file lte-enb-rrc.h.

Referenced by GetTypeId(), and SendSystemInformation().

std::map<uint16_t, Ptr<UeManager> > ns3::LteEnbRrc::m_ueMap
private

Definition at line 745 of file lte-enb-rrc.h.

Referenced by AddUe(), DoDispose(), GetTypeId(), GetUeManager(), and RemoveUe().

std::set<uint16_t> ns3::LteEnbRrc::m_ueSrsConfigurationIndexSet
private

Definition at line 764 of file lte-enb-rrc.h.

Referenced by GetNewSrsConfigurationIndex(), and RemoveSrsConfigurationIndex().

uint16_t ns3::LteEnbRrc::m_ulBandwidth
private
uint16_t ns3::LteEnbRrc::m_ulEarfcn
private
EpcX2SapUser* ns3::LteEnbRrc::m_x2SapUser
private

Definition at line 720 of file lte-enb-rrc.h.

Referenced by DoDispose(), GetEpcX2SapUser(), and LteEnbRrc().

std::map<uint32_t, X2uTeidInfo> ns3::LteEnbRrc::m_x2uTeidInfoMap
private

The documentation for this class was generated from the following files: