A Discrete-Event Network Simulator
API
ns3::LteHelper Class Reference

Creation and configuration of LTE entities. More...

#include "lte-helper.h"

+ Inheritance diagram for ns3::LteHelper:
+ Collaboration diagram for ns3::LteHelper:

Public Member Functions

 LteHelper ()
 
 ~LteHelper () override
 
void ActivateDataRadioBearer (NetDeviceContainer ueDevices, EpsBearer bearer)
 Activate a Data Radio Bearer on a given UE devices (for LTE-only simulation). More...
 
void ActivateDataRadioBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer)
 Activate a Data Radio Bearer on a UE device (for LTE-only simulation). More...
 
uint8_t ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr< EpcTft > tft)
 Activate a dedicated EPS bearer on a given set of UE devices. More...
 
uint8_t ActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer, Ptr< EpcTft > tft)
 Activate a dedicated EPS bearer on a given UE device. More...
 
void AddX2Interface (NodeContainer enbNodes)
 Create an X2 interface between all the eNBs in a given set. More...
 
void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2)
 Create an X2 interface between two eNBs. More...
 
int64_t AssignStreams (NetDeviceContainer c, int64_t stream)
 Assign a fixed random variable stream number to the random variables used. More...
 
void Attach (NetDeviceContainer ueDevices)
 Enables automatic attachment of a set of UE devices to a suitable cell using Idle mode initial cell selection procedure. More...
 
void Attach (NetDeviceContainer ueDevices, Ptr< NetDevice > enbDevice)
 Manual attachment of a set of UE devices to the network via a given eNodeB. More...
 
void Attach (Ptr< NetDevice > ueDevice)
 Enables automatic attachment of a UE device to a suitable cell using Idle mode initial cell selection procedure. More...
 
void Attach (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t componentCarrierId=0)
 Manual attachment of a UE device to the network via a given eNodeB. More...
 
void AttachToClosestEnb (NetDeviceContainer ueDevices, NetDeviceContainer enbDevices)
 Manual attachment of a set of UE devices to the network via the closest eNodeB (with respect to distance) among those in the set. More...
 
void AttachToClosestEnb (Ptr< NetDevice > ueDevice, NetDeviceContainer enbDevices)
 Manual attachment of a UE device to the network via the closest eNodeB (with respect to distance) among those in the set. More...
 
void DeActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t bearerId)
 Manually trigger dedicated bearer de-activation at specific simulation time. More...
 
void DoDispose () override
 Destructor implementation. More...
 
void EnableDlMacTraces ()
 Enable trace sinks for DL MAC layer. More...
 
void EnableDlPhyTraces ()
 Enable trace sinks for DL PHY layer. More...
 
void EnableDlRxPhyTraces ()
 Enable trace sinks for DL reception PHY layer. More...
 
void EnableDlTxPhyTraces ()
 Enable trace sinks for DL transmission PHY layer. More...
 
void EnableLogComponents ()
 Enables full-blown logging for major components of the LENA architecture. More...
 
void EnableMacTraces ()
 Enable trace sinks for MAC layer. More...
 
void EnablePdcpTraces ()
 Enable trace sinks for PDCP layer. More...
 
void EnablePhyTraces ()
 Enable trace sinks for PHY layer. More...
 
void EnableRlcTraces ()
 Enable trace sinks for RLC layer. More...
 
void EnableTraces ()
 Enables trace sinks for PHY, MAC, RLC and PDCP. More...
 
void EnableUlMacTraces ()
 Enable trace sinks for UL MAC layer. More...
 
void EnableUlPhyTraces ()
 Enable trace sinks for UL PHY layer. More...
 
void EnableUlRxPhyTraces ()
 Enable trace sinks for UL reception PHY layer. More...
 
void EnableUlTxPhyTraces ()
 Enable trace sinks for UL transmission PHY layer. More...
 
Ptr< SpectrumChannelGetDownlinkSpectrumChannel () const
 
std::string GetEnbComponentCarrierManagerType () const
 
std::string GetFfrAlgorithmType () const
 
std::string GetHandoverAlgorithmType () const
 
Ptr< RadioBearerStatsCalculatorGetPdcpStats ()
 
Ptr< RadioBearerStatsCalculatorGetRlcStats ()
 
std::string GetSchedulerType () const
 
std::string GetUeComponentCarrierManagerType () const
 
Ptr< SpectrumChannelGetUplinkSpectrumChannel () const
 
void HandoverRequest (Time hoTime, Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, Ptr< NetDevice > targetEnbDev)
 Manually trigger an X2-based handover. More...
 
void HandoverRequest (Time hoTime, Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, uint16_t targetCellId)
 Manually trigger an X2-based handover. More...
 
NetDeviceContainer InstallEnbDevice (NodeContainer c)
 Create a set of eNodeB devices. More...
 
NetDeviceContainer InstallUeDevice (NodeContainer c)
 Create a set of UE devices. More...
 
void SetEnbAntennaModelAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the eNodeB antenna model to be created. More...
 
void SetEnbAntennaModelType (std::string type)
 Set the type of antenna model to be used by eNodeB devices. More...
 
void SetEnbComponentCarrierManagerAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the enb component carrier manager to be created. More...
 
void SetEnbComponentCarrierManagerType (std::string type)
 Set the type of carrier component algorithm to be used by eNodeB devices. More...
 
void SetEnbDeviceAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the eNodeB devices (LteEnbNetDevice) to be created. More...
 
void SetEpcHelper (Ptr< EpcHelper > h)
 Set the EpcHelper to be used to setup the EPC network in conjunction with the setup of the LTE radio access network. More...
 
void SetFadingModel (std::string type)
 Set the type of fading model to be used in both DL and UL. More...
 
void SetFadingModelAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the fading model to be created (both DL and UL). More...
 
void SetFfrAlgorithmAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the FFR algorithm to be created. More...
 
void SetFfrAlgorithmType (std::string type)
 Set the type of FFR algorithm to be used by eNodeB devices. More...
 
void SetHandoverAlgorithmAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the handover algorithm to be created. More...
 
void SetHandoverAlgorithmType (std::string type)
 Set the type of handover algorithm to be used by eNodeB devices. More...
 
void SetPathlossModelAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the path loss models to be created. More...
 
void SetPathlossModelType (TypeId type)
 Set the type of path loss model to be used for both DL and UL channels. More...
 
void SetSchedulerAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the scheduler to be created. More...
 
void SetSchedulerType (std::string type)
 Set the type of scheduler to be used by eNodeB devices. More...
 
void SetSpectrumChannelAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the spectrum channel to be created (both DL and UL). More...
 
void SetSpectrumChannelType (std::string type)
 Set the type of spectrum channel to be used in both DL and UL. More...
 
void SetUeAntennaModelAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the UE antenna model to be created. More...
 
void SetUeAntennaModelType (std::string type)
 Set the type of antenna model to be used by UE devices. More...
 
void SetUeComponentCarrierManagerAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the ue component carrier manager to be created. More...
 
void SetUeComponentCarrierManagerType (std::string type)
 Set the type of Component Carrier Manager to be used by Ue devices. More...
 
void SetUeDeviceAttribute (std::string n, const AttributeValue &v)
 Set an attribute for the UE devices (LteUeNetDevice) to be created. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
 ~Object () override
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose ()
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized () const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID. More...
 

Protected Member Functions

void DoInitialize () override
 Initialize() implementation. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed. More...
 

Private Member Functions

void ChannelModelInitialization ()
 Function that performs a channel model initialization of all component carriers. More...
 
void DoComponentCarrierConfigure (uint32_t ulEarfcn, uint32_t dlEarfcn, uint16_t ulbw, uint16_t dlbw)
 Configure the component carriers. More...
 
void DoDeActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t bearerId)
 The actual function to trigger a manual bearer de-activation. More...
 
void DoHandoverRequest (Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, uint16_t targetCellId)
 The actual function to trigger a manual handover. More...
 
Ptr< NetDeviceInstallSingleEnbDevice (Ptr< Node > n)
 Create an eNodeB device (LteEnbNetDevice) on the given node. More...
 
Ptr< NetDeviceInstallSingleUeDevice (Ptr< Node > n)
 Create a UE device (LteUeNetDevice) on the given node. More...
 

Private Attributes

uint16_t m_cellIdCounter
 Keep track of the number of cell ID allocated. More...
 
ObjectFactory m_channelFactory
 Factory of both the downlink and uplink LTE channels. More...
 
std::map< uint8_t, ComponentCarrierm_componentCarrierPhyParams
 This contains all the information about each component carrier. More...
 
Ptr< SpectrumChannelm_downlinkChannel
 This function create the component carrier based on provided configuration parameters. More...
 
Ptr< Objectm_downlinkPathlossModel
 The path loss model used in the downlink channel. More...
 
ObjectFactory m_enbAntennaModelFactory
 Factory of antenna object for eNodeB. More...
 
ObjectFactory m_enbComponentCarrierManagerFactory
 Factory of enb component carrier manager object. More...
 
ObjectFactory m_enbNetDeviceFactory
 Factory of LteEnbNetDevice objects. More...
 
Ptr< EpcHelperm_epcHelper
 Helper which provides implementation of core network. More...
 
Ptr< SpectrumPropagationLossModelm_fadingModel
 The fading model used in both the downlink and uplink channels. More...
 
ObjectFactory m_fadingModelFactory
 Factory of fading model object for both the downlink and uplink channels. More...
 
std::string m_fadingModelType
 Name of fading model type, e.g., "ns3::TraceFadingLossModel". More...
 
bool m_fadingStreamsAssigned
 True if a random variable stream number has been assigned for the fading model. More...
 
ObjectFactory m_ffrAlgorithmFactory
 Factory of FFR (frequency reuse) algorithm object. More...
 
ObjectFactory m_handoverAlgorithmFactory
 Factory of handover algorithm object. More...
 
uint64_t m_imsiCounter
 Keep track of the number of IMSI allocated. More...
 
bool m_isAnrEnabled
 The AnrEnabled attribute. More...
 
Ptr< MacStatsCalculatorm_macStats
 Container of MAC layer statistics. More...
 
uint16_t m_noOfCcs
 Number of component carriers that will be installed by default at eNodeB and UE devices. More...
 
ObjectFactory m_pathlossModelFactory
 Factory of path loss model object. More...
 
Ptr< RadioBearerStatsCalculatorm_pdcpStats
 Container of PDCP layer statistics. More...
 
Ptr< PhyRxStatsCalculatorm_phyRxStats
 Container of PHY layer statistics related to reception. More...
 
Ptr< PhyStatsCalculatorm_phyStats
 Container of PHY layer statistics. More...
 
Ptr< PhyTxStatsCalculatorm_phyTxStats
 Container of PHY layer statistics related to transmission. More...
 
RadioBearerStatsConnector m_radioBearerStatsConnector
 Connects RLC and PDCP statistics containers to appropriate trace sources. More...
 
Ptr< RadioBearerStatsCalculatorm_rlcStats
 Container of RLC layer statistics. More...
 
ObjectFactory m_schedulerFactory
 Factory of MAC scheduler object. More...
 
ObjectFactory m_ueAntennaModelFactory
 Factory of antenna object for UE. More...
 
ObjectFactory m_ueComponentCarrierManagerFactory
 Factory of ue component carrier manager object. More...
 
ObjectFactory m_ueNetDeviceFactory
 Factory for LteUeNetDevice objects. More...
 
Ptr< SpectrumChannelm_uplinkChannel
 The uplink LTE channel used in the simulation. More...
 
Ptr< Objectm_uplinkPathlossModel
 The path loss model used in the uplink channel. More...
 
bool m_useCa
 The UseCa attribute. More...
 
bool m_useIdealRrc
 The UseIdealRrc attribute. More...
 
bool m_usePdschForCqiGeneration
 The UsePdschForCqiGeneration attribute. More...
 

Additional Inherited Members

Detailed Description

Creation and configuration of LTE entities.

One LteHelper instance is typically enough for an LTE simulation. To create it:

Ptr<LteHelper> lteHelper = CreateObject<LteHelper> ();

The general responsibility of the helper is to create various LTE objects and arrange them together to make the whole LTE system. The overall arrangement would look like the following:

  • Downlink spectrum channel
    • Path loss model
    • Fading model
  • Uplink spectrum channel
    • Path loss model
    • Fading model
  • eNodeB node(s)
    • Mobility model
    • eNodeB device(s)
      • Antenna model
      • eNodeB PHY (includes spectrum PHY, interference model, HARQ model)
      • eNodeB MAC
      • eNodeB RRC (includes RRC protocol)
      • Scheduler
      • Handover algorithm
      • FFR (frequency reuse) algorithm
      • ANR (automatic neighbour relation)
      • CCM (Carrier Component Manager)
    • EPC related models (EPC application, Internet stack, X2 interface)
  • UE node(s)
    • Mobility model
    • UE device(s)
      • Antenna model
      • UE PHY (includes spectrum PHY, interference model, HARQ model)
      • UE MAC
      • UE RRC (includes RRC protocol)
      • NAS
  • EPC helper
  • Various statistics calculator objects

Spetrum channels are created automatically: one for DL, and one for UL. eNodeB devices are created by calling InstallEnbDevice(), while UE devices are created by calling InstallUeDevice(). EPC helper can be set by using SetEpcHelper().

Definition at line 102 of file lte-helper.h.

Constructor & Destructor Documentation

◆ LteHelper()

◆ ~LteHelper()

ns3::LteHelper::~LteHelper ( )
override

Definition at line 105 of file lte-helper.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ ActivateDataRadioBearer() [1/2]

void ns3::LteHelper::ActivateDataRadioBearer ( NetDeviceContainer  ueDevices,
EpsBearer  bearer 
)

Activate a Data Radio Bearer on a given UE devices (for LTE-only simulation).

Parameters
ueDevicesthe set of UE devices
bearerthe characteristics of the bearer to be activated

Definition at line 1436 of file lte-helper.cc.

References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and NS_LOG_FUNCTION.

Referenced by LteRrcConnectionEstablishmentTestCase::Connect(), CarrierAggregationConfigTestCase::DoRun(), CarrierAggregationTestCase::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), LteDownlinkPowerControlTestCase::DoRun(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), LteUplinkOpenLoopPowerControlTestCase::DoRun(), LteUplinkClosedLoopPowerControlAbsoluteModeTestCase::DoRun(), LteUplinkClosedLoopPowerControlAccumulatedModeTestCase::DoRun(), LteEnbAntennaTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ActivateDataRadioBearer() [2/2]

void ns3::LteHelper::ActivateDataRadioBearer ( Ptr< NetDevice ueDevice,
EpsBearer  bearer 
)

Activate a Data Radio Bearer on a UE device (for LTE-only simulation).

This method will schedule the actual activation the bearer so that it happens after the UE got connected.

Parameters
ueDevicethe UE device
bearerthe characteristics of the bearer to be activated

Definition at line 1293 of file lte-helper.cc.

References ns3::DrbActivator::ActivateCallback(), ns3::Config::Connect(), ns3::Node::GetId(), ns3::LteNetDevice::GetIfIndex(), ns3::LteNetDevice::GetNode(), m_epcHelper, ns3::MakeBoundCallback(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ ActivateDedicatedEpsBearer() [1/2]

uint8_t ns3::LteHelper::ActivateDedicatedEpsBearer ( NetDeviceContainer  ueDevices,
EpsBearer  bearer,
Ptr< EpcTft tft 
)

Activate a dedicated EPS bearer on a given set of UE devices.

Parameters
ueDevicesthe set of UE devices
bearerthe characteristics of the bearer to be activated
tftthe Traffic Flow Template that identifies the traffic to go on this bearer
Returns
bearer ID

Definition at line 1154 of file lte-helper.cc.

References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and NS_LOG_FUNCTION.

Referenced by LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ActivateDedicatedEpsBearer() [2/2]

uint8_t ns3::LteHelper::ActivateDedicatedEpsBearer ( Ptr< NetDevice ueDevice,
EpsBearer  bearer,
Ptr< EpcTft tft 
)

Activate a dedicated EPS bearer on a given UE device.

Parameters
ueDevicethe UE device
bearerthe characteristics of the bearer to be activated
tftthe Traffic Flow Template that identifies the traffic to go on this bearer.
Returns
bearer ID

Definition at line 1168 of file lte-helper.cc.

References m_epcHelper, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

◆ AddX2Interface() [1/2]

void ns3::LteHelper::AddX2Interface ( NodeContainer  enbNodes)

Create an X2 interface between all the eNBs in a given set.

Parameters
enbNodesthe set of eNB nodes

Definition at line 1313 of file lte-helper.cc.

References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), m_epcHelper, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by LteDistributedFfrAreaTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddX2Interface() [2/2]

void ns3::LteHelper::AddX2Interface ( Ptr< Node enbNode1,
Ptr< Node enbNode2 
)

Create an X2 interface between two eNBs.

Parameters
enbNode1one eNB of the X2 interface
enbNode2the other eNB of the X2 interface

Definition at line 1329 of file lte-helper.cc.

References m_epcHelper, NS_LOG_FUNCTION, and NS_LOG_INFO.

◆ AssignStreams()

int64_t ns3::LteHelper::AssignStreams ( NetDeviceContainer  c,
int64_t  stream 
)

Assign a fixed random variable stream number to the random variables used.

The InstallEnbDevice() or InstallUeDevice method should have previously been called by the user on the given devices.

If TraceFadingLossModel has been set as the fading model type, this method will also assign a stream number to it, if none has been assigned before.

If an EPC has been configured, streams will be assigned on the EPC nodes as well via EpcHelper::AssignStreams ().

Parameters
cNetDeviceContainer of the set of net devices for which the LteNetDevice should be modified to use a fixed stream
streamfirst stream index to use
Returns
the number of stream indices (possibly zero) that have been assigned

Definition at line 1567 of file lte-helper.cc.

References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), ns3::LteEnbNetDevice::GetCcMap(), m_epcHelper, m_fadingModel, and m_fadingStreamsAssigned.

Referenced by CarrierAggregationConfigTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LteRrcConnectionEstablishmentTestCase::DoRun(), LteRrcConnectionEstablishmentErrorTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Attach() [1/4]

void ns3::LteHelper::Attach ( NetDeviceContainer  ueDevices)

Enables automatic attachment of a set of UE devices to a suitable cell using Idle mode initial cell selection procedure.

Parameters
ueDevicesthe set of UE devices to be attached

By calling this, the UE will start the initial cell selection procedure at the beginning of simulation. In addition, the function also instructs each UE to immediately enter CONNECTED mode and activates the default EPS bearer.

If this function is called when the UE is in a situation where entering CONNECTED mode is not possible (e.g. before the simulation begin), then the UE will attempt to connect at the earliest possible time (e.g. after it camps to a suitable cell).

Note that this function can only be used in EPC-enabled simulation.

Definition at line 1039 of file lte-helper.cc.

References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and NS_LOG_FUNCTION.

Referenced by Attach(), AttachToClosestEnb(), LteRrcConnectionEstablishmentTestCase::Connect(), CarrierAggregationConfigTestCase::DoRun(), CarrierAggregationTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LteDownlinkPowerControlTestCase::DoRun(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteUplinkOpenLoopPowerControlTestCase::DoRun(), LteUplinkClosedLoopPowerControlAbsoluteModeTestCase::DoRun(), LteUplinkClosedLoopPowerControlAccumulatedModeTestCase::DoRun(), LteEnbAntennaTestCase::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Attach() [2/4]

void ns3::LteHelper::Attach ( NetDeviceContainer  ueDevices,
Ptr< NetDevice enbDevice 
)

Manual attachment of a set of UE devices to the network via a given eNodeB.

Parameters
ueDevicesthe set of UE devices to be attached
enbDevicethe destination eNodeB device

In addition, the function also instructs each UE to immediately enter CONNECTED mode and activates the default EPS bearer.

The function can be used in both LTE-only and EPC-enabled simulations. Note that this function will disable Idle mode initial cell selection procedure.

Definition at line 1081 of file lte-helper.cc.

References Attach(), ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ Attach() [3/4]

void ns3::LteHelper::Attach ( Ptr< NetDevice ueDevice)

Enables automatic attachment of a UE device to a suitable cell using Idle mode initial cell selection procedure.

Parameters
ueDevicethe UE device to be attached

By calling this, the UE will start the initial cell selection procedure at the beginning of simulation. In addition, the function also instructs the UE to immediately enter CONNECTED mode and activates the default EPS bearer.

If this function is called when the UE is in a situation where entering CONNECTED mode is not possible (e.g. before the simulation begin), then the UE will attempt to connect at the earliest possible time (e.g. after it camps to a suitable cell).

Note that this function can only be used in EPC-enabled simulation.

Definition at line 1049 of file lte-helper.cc.

References ns3::EpcTft::Default(), m_epcHelper, ns3::EpsBearer::NGBR_VIDEO_TCP_DEFAULT, NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ Attach() [4/4]

void ns3::LteHelper::Attach ( Ptr< NetDevice ueDevice,
Ptr< NetDevice enbDevice,
uint8_t  componentCarrierId = 0 
)

Manual attachment of a UE device to the network via a given eNodeB.

Parameters
ueDevicethe UE device to be attached
enbDevicethe destination eNodeB device
componentCarrierIdthe destination eNodeB component carrier

In addition, the function also instructs the UE to immediately enter CONNECTED mode and activates the default EPS bearer.

The function can be used in both LTE-only and EPC-enabled simulations. Note that this function will disable Idle mode initial cell selection procedure.

Definition at line 1091 of file lte-helper.cc.

References ns3::EpcTft::Default(), m_epcHelper, ns3::EpsBearer::NGBR_VIDEO_TCP_DEFAULT, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ AttachToClosestEnb() [1/2]

void ns3::LteHelper::AttachToClosestEnb ( NetDeviceContainer  ueDevices,
NetDeviceContainer  enbDevices 
)

Manual attachment of a set of UE devices to the network via the closest eNodeB (with respect to distance) among those in the set.

Parameters
ueDevicesthe set of UE devices to be attached
enbDevicesthe set of eNodeB devices to be considered

This function finds among the eNodeB set the closest eNodeB for each UE, and then invokes manual attachment between the pair.

Users are encouraged to use automatic attachment (Idle mode cell selection) instead of this function.

See also
LteHelper::Attach(NetDeviceContainer ueDevices);

Definition at line 1122 of file lte-helper.cc.

References ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ AttachToClosestEnb() [2/2]

void ns3::LteHelper::AttachToClosestEnb ( Ptr< NetDevice ueDevice,
NetDeviceContainer  enbDevices 
)

Manual attachment of a UE device to the network via the closest eNodeB (with respect to distance) among those in the set.

Parameters
ueDevicethe UE device to be attached
enbDevicesthe set of eNodeB devices to be considered

This function finds among the eNodeB set the closest eNodeB for the UE, and then invokes manual attachment between the pair.

Users are encouraged to use automatic attachment (Idle mode cell selection) instead of this function.

See also
LteHelper::Attach(Ptr<NetDevice> ueDevice);

Definition at line 1132 of file lte-helper.cc.

References Attach(), ns3::NetDeviceContainer::Begin(), ns3::CalculateDistance(), ns3::NetDeviceContainer::End(), ns3::NetDeviceContainer::GetN(), NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ ChannelModelInitialization()

void ns3::LteHelper::ChannelModelInitialization ( )
private

Function that performs a channel model initialization of all component carriers.

Definition at line 230 of file lte-helper.cc.

References ns3::ObjectFactory::Create(), ns3::Object::GetObject(), m_channelFactory, m_downlinkChannel, m_downlinkPathlossModel, m_fadingModel, m_fadingModelFactory, m_fadingModelType, m_noOfCcs, m_pathlossModelFactory, m_uplinkChannel, m_uplinkPathlossModel, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by DoInitialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeActivateDedicatedEpsBearer()

void ns3::LteHelper::DeActivateDedicatedEpsBearer ( Ptr< NetDevice ueDevice,
Ptr< NetDevice enbDevice,
uint8_t  bearerId 
)

Manually trigger dedicated bearer de-activation at specific simulation time.

Parameters
ueDevicethe UE on which dedicated bearer to be de-activated must be of the type LteUeNetDevice
enbDeviceeNB, must be of the type LteEnbNetDevice
bearerIdBearer Identity which is to be de-activated
Warning
Requires the use of EPC mode. See SetEpcHelper() method.

Definition at line 1387 of file lte-helper.cc.

References DoDeActivateDedicatedEpsBearer(), m_epcHelper, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

Referenced by ns3::LenaDeactivateBearerTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoComponentCarrierConfigure()

void ns3::LteHelper::DoComponentCarrierConfigure ( uint32_t  ulEarfcn,
uint32_t  dlEarfcn,
uint16_t  ulbw,
uint16_t  dlbw 
)
private

Configure the component carriers.

Parameters
ulEarfcnuplink EARFCN
dlEarfcndownlink EARFCN
ulbwuplink bandwidth for each CC
dlbwdownlink bandwidth for each CC

Definition at line 1417 of file lte-helper.cc.

References m_componentCarrierPhyParams, m_noOfCcs, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by InstallSingleEnbDevice(), and InstallSingleUeDevice().

+ Here is the caller graph for this function:

◆ DoDeActivateDedicatedEpsBearer()

void ns3::LteHelper::DoDeActivateDedicatedEpsBearer ( Ptr< NetDevice ueDevice,
Ptr< NetDevice enbDevice,
uint8_t  bearerId 
)
private

The actual function to trigger a manual bearer de-activation.

Parameters
ueDevicethe UE on which bearer to be de-activated must be of the type LteUeNetDevice
enbDeviceeNB, must be of the type LteEnbNetDevice
bearerIdBearer Identity which is to be de-activated

This method is normally scheduled by DeActivateDedicatedEpsBearer() to run at a specific time when a manual bearer de-activation is desired by the simulation user.

Definition at line 1401 of file lte-helper.cc.

References NS_LOG_FUNCTION.

Referenced by DeActivateDedicatedEpsBearer().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::LteHelper::DoDispose ( void  )
overridevirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 208 of file lte-helper.cc.

References ns3::Object::DoDispose(), m_componentCarrierPhyParams, m_downlinkChannel, m_uplinkChannel, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ DoHandoverRequest()

void ns3::LteHelper::DoHandoverRequest ( Ptr< NetDevice ueDev,
Ptr< NetDevice sourceEnbDev,
uint16_t  targetCellId 
)
private

The actual function to trigger a manual handover.

Parameters
ueDevthe UE that hands off, must be of the type LteUeNetDevice
sourceEnbDevsource eNB, must be of the type LteEnbNetDevice (originally the UE is attached to this eNB)
targetCellIdtarget CellId (the UE primary component carrier will be connected to this cell after the handover)

This method is normally scheduled by HandoverRequest() to run at a specific time where a manual handover is desired by the simulation user.

Definition at line 1375 of file lte-helper.cc.

References NS_LOG_FUNCTION.

Referenced by HandoverRequest().

+ Here is the caller graph for this function:

◆ DoInitialize()

void ns3::LteHelper::DoInitialize ( void  )
overrideprotectedvirtual

Initialize() implementation.

This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.

Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 94 of file lte-helper.cc.

References ChannelModelInitialization(), ns3::Object::DoInitialize(), m_macStats, m_phyRxStats, m_phyStats, m_phyTxStats, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ EnableDlMacTraces()

void ns3::LteHelper::EnableDlMacTraces ( )

Enable trace sinks for DL MAC layer.

Definition at line 1666 of file lte-helper.cc.

References ns3::Config::Connect(), ns3::MacStatsCalculator::DlSchedulingCallback(), m_macStats, ns3::MakeBoundCallback(), and NS_LOG_FUNCTION_NOARGS.

Referenced by EnableMacTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableDlPhyTraces()

void ns3::LteHelper::EnableDlPhyTraces ( )

Enable trace sinks for DL PHY layer.

Definition at line 1682 of file lte-helper.cc.

References ns3::Config::Connect(), m_phyStats, ns3::MakeBoundCallback(), NS_LOG_FUNCTION_NOARGS, and ns3::PhyStatsCalculator::ReportCurrentCellRsrpSinrCallback().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableDlRxPhyTraces()

void ns3::LteHelper::EnableDlRxPhyTraces ( )

Enable trace sinks for DL reception PHY layer.

Definition at line 1643 of file lte-helper.cc.

References ns3::Config::Connect(), ns3::PhyRxStatsCalculator::DlPhyReceptionCallback(), m_phyRxStats, and ns3::MakeBoundCallback().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableDlTxPhyTraces()

void ns3::LteHelper::EnableDlTxPhyTraces ( )

Enable trace sinks for DL transmission PHY layer.

Definition at line 1627 of file lte-helper.cc.

References ns3::Config::Connect(), ns3::PhyTxStatsCalculator::DlPhyTransmissionCallback(), m_phyTxStats, and ns3::MakeBoundCallback().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableLogComponents()

void ns3::LteHelper::EnableLogComponents ( )

Enables full-blown logging for major components of the LENA architecture.

Definition at line 1446 of file lte-helper.cc.

References ns3::LOG_LEVEL_ALL, ns3::LOG_PREFIX_FUNC, ns3::LOG_PREFIX_NODE, ns3::LOG_PREFIX_TIME, ns3::LogComponentEnable(), and ns3::LogComponentEnableAll().

+ Here is the call graph for this function:

◆ EnableMacTraces()

◆ EnablePdcpTraces()

void ns3::LteHelper::EnablePdcpTraces ( )

Enable trace sinks for PDCP layer.

Definition at line 1707 of file lte-helper.cc.

References ns3::RadioBearerStatsConnector::EnablePdcpStats(), m_pdcpStats, m_radioBearerStatsConnector, and NS_ASSERT_MSG.

Referenced by LteEpcE2eDataTestCase::DoRun(), and EnableTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnablePhyTraces()

void ns3::LteHelper::EnablePhyTraces ( )

Enable trace sinks for PHY layer.

Definition at line 1616 of file lte-helper.cc.

References EnableDlPhyTraces(), EnableDlRxPhyTraces(), EnableDlTxPhyTraces(), EnableUlPhyTraces(), EnableUlRxPhyTraces(), and EnableUlTxPhyTraces().

Referenced by EnableTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableRlcTraces()

◆ EnableTraces()

void ns3::LteHelper::EnableTraces ( )

Enables trace sinks for PHY, MAC, RLC and PDCP.

To make sure all nodes are traced, traces should be enabled once all UEs and eNodeBs are in place and connected, just before starting the simulation.

Definition at line 1549 of file lte-helper.cc.

References EnableMacTraces(), EnablePdcpTraces(), EnablePhyTraces(), and EnableRlcTraces().

Referenced by CarrierAggregationTestCase::DoRun(), and LteRadioLinkFailureTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableUlMacTraces()

void ns3::LteHelper::EnableUlMacTraces ( )

Enable trace sinks for UL MAC layer.

Definition at line 1674 of file lte-helper.cc.

References ns3::Config::Connect(), m_macStats, ns3::MakeBoundCallback(), NS_LOG_FUNCTION_NOARGS, and ns3::MacStatsCalculator::UlSchedulingCallback().

Referenced by EnableMacTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableUlPhyTraces()

void ns3::LteHelper::EnableUlPhyTraces ( )

Enable trace sinks for UL PHY layer.

Definition at line 1691 of file lte-helper.cc.

References ns3::Config::Connect(), m_phyStats, ns3::MakeBoundCallback(), NS_LOG_FUNCTION_NOARGS, ns3::PhyStatsCalculator::ReportInterference(), and ns3::PhyStatsCalculator::ReportUeSinr().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableUlRxPhyTraces()

void ns3::LteHelper::EnableUlRxPhyTraces ( )

Enable trace sinks for UL reception PHY layer.

Definition at line 1651 of file lte-helper.cc.

References ns3::Config::Connect(), m_phyRxStats, ns3::MakeBoundCallback(), and ns3::PhyRxStatsCalculator::UlPhyReceptionCallback().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnableUlTxPhyTraces()

void ns3::LteHelper::EnableUlTxPhyTraces ( )

Enable trace sinks for UL transmission PHY layer.

Definition at line 1635 of file lte-helper.cc.

References ns3::Config::Connect(), m_phyTxStats, ns3::MakeBoundCallback(), and ns3::PhyTxStatsCalculator::UlPhyTransmissionCallback().

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDownlinkSpectrumChannel()

Ptr< SpectrumChannel > ns3::LteHelper::GetDownlinkSpectrumChannel ( ) const
Returns
a pointer to the SpectrumChannel instance used for the downlink

Definition at line 224 of file lte-helper.cc.

References m_downlinkChannel.

◆ GetEnbComponentCarrierManagerType()

std::string ns3::LteHelper::GetEnbComponentCarrierManagerType ( ) const
Returns
the carrier enb component carrier manager type

Definition at line 355 of file lte-helper.cc.

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), and m_enbComponentCarrierManagerFactory.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFfrAlgorithmType()

std::string ns3::LteHelper::GetFfrAlgorithmType ( ) const
Returns
the FFR algorithm type

Definition at line 313 of file lte-helper.cc.

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), and m_ffrAlgorithmFactory.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHandoverAlgorithmType()

std::string ns3::LteHelper::GetHandoverAlgorithmType ( ) const
Returns
the handover algorithm type

Definition at line 334 of file lte-helper.cc.

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), and m_handoverAlgorithmFactory.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPdcpStats()

Ptr< RadioBearerStatsCalculator > ns3::LteHelper::GetPdcpStats ( )
Returns
the PDCP stats calculator object

Definition at line 1716 of file lte-helper.cc.

References m_pdcpStats.

Referenced by LteEpcE2eDataTestCase::DoRun().

+ Here is the caller graph for this function:

◆ GetRlcStats()

◆ GetSchedulerType()

std::string ns3::LteHelper::GetSchedulerType ( ) const
Returns
the scheduler type

Definition at line 300 of file lte-helper.cc.

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), and m_schedulerFactory.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetUeComponentCarrierManagerType()

std::string ns3::LteHelper::GetUeComponentCarrierManagerType ( ) const
Returns
the carrier ue component carrier manager type

Definition at line 376 of file lte-helper.cc.

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), and m_ueComponentCarrierManagerFactory.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetUplinkSpectrumChannel()

Ptr< SpectrumChannel > ns3::LteHelper::GetUplinkSpectrumChannel ( ) const
Returns
a pointer to the SpectrumChannel instance used for the uplink

Definition at line 218 of file lte-helper.cc.

References m_uplinkChannel.

◆ HandoverRequest() [1/2]

void ns3::LteHelper::HandoverRequest ( Time  hoTime,
Ptr< NetDevice ueDev,
Ptr< NetDevice sourceEnbDev,
Ptr< NetDevice targetEnbDev 
)

Manually trigger an X2-based handover.

Parameters
hoTimewhen the handover shall be initiated
ueDevthe UE that hands off, must be of the type LteUeNetDevice
sourceEnbDevsource eNB, must be of the type LteEnbNetDevice (originally the UE is attached to this eNB)
targetEnbDevtarget eNB, must be of the type LteEnbNetDevice (the UE would be connected to this eNB after the handover)
Warning
Requires the use of EPC mode. See SetEpcHelper() method

Definition at line 1338 of file lte-helper.cc.

References DoHandoverRequest(), m_epcHelper, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().

Referenced by LteUeMeasurementsHandoverTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandoverRequest() [2/2]

void ns3::LteHelper::HandoverRequest ( Time  hoTime,
Ptr< NetDevice ueDev,
Ptr< NetDevice sourceEnbDev,
uint16_t  targetCellId 
)

Manually trigger an X2-based handover.

Parameters
hoTimewhen the handover shall be initiated
ueDevthe UE that hands off, must be of the type LteUeNetDevice
sourceEnbDevsource eNB, must be of the type LteEnbNetDevice (originally the UE is attached to this eNB)
targetCellIdtarget CellId (the UE primary component carrier will be connected to this cell after the handover)
Warning
Requires the use of EPC mode. See SetEpcHelper() method

Definition at line 1357 of file lte-helper.cc.

References DoHandoverRequest(), m_epcHelper, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().

+ Here is the call graph for this function:

◆ InstallEnbDevice()

NetDeviceContainer ns3::LteHelper::InstallEnbDevice ( NodeContainer  c)

Create a set of eNodeB devices.

Parameters
cthe node container where the devices are to be installed
Returns
the NetDeviceContainer with the newly created devices

Definition at line 485 of file lte-helper.cc.

References ns3::NodeContainer::Begin(), first::devices, ns3::NodeContainer::End(), ns3::Object::Initialize(), InstallSingleEnbDevice(), and NS_LOG_FUNCTION.

Referenced by CarrierAggregationConfigTestCase::DoRun(), CarrierAggregationTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LteDownlinkPowerControlTestCase::DoRun(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteUplinkOpenLoopPowerControlTestCase::DoRun(), LteUplinkClosedLoopPowerControlAbsoluteModeTestCase::DoRun(), LteUplinkClosedLoopPowerControlAccumulatedModeTestCase::DoRun(), LteEnbAntennaTestCase::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteRrcConnectionEstablishmentTestCase::DoRun(), LteRrcConnectionEstablishmentErrorTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), and ns3::LteHexGridEnbTopologyHelper::SetPositionAndInstallEnbDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InstallSingleEnbDevice()

Ptr< NetDevice > ns3::LteHelper::InstallSingleEnbDevice ( Ptr< Node n)
private

Create an eNodeB device (LteEnbNetDevice) on the given node.

Parameters
nthe node where the device is to be installed
Returns
pointer to the created device

Definition at line 514 of file lte-helper.cc.

References ns3::Node::AddDevice(), ns3::ObjectFactory::Create(), DoComponentCarrierConfigure(), ns3::LteEnbPhy::GenerateCtrlCqiReport(), ns3::LteEnbPhy::GenerateDataCqiReport(), ns3::EnumValue< T >::Get(), ns3::Node::GetApplication(), ns3::LteSpectrumValueHelper::GetCarrierFrequency(), ns3::LteEnbNetDevice::GetCellIds(), ns3::LteEnbNetDevice::GetDlBandwidth(), ns3::LteEnbNetDevice::GetDlEarfcn(), ns3::Object::GetObject(), ns3::LteEnbNetDevice::GetUlBandwidth(), ns3::LteEnbNetDevice::GetUlEarfcn(), ns3::Object::Initialize(), m_cellIdCounter, m_componentCarrierPhyParams, m_downlinkChannel, m_downlinkPathlossModel, m_enbAntennaModelFactory, m_enbComponentCarrierManagerFactory, m_enbNetDeviceFactory, m_epcHelper, m_ffrAlgorithmFactory, m_handoverAlgorithmFactory, m_isAnrEnabled, m_noOfCcs, m_schedulerFactory, m_uplinkChannel, m_uplinkPathlossModel, m_useCa, m_useIdealRrc, third::mac, ns3::MakeCallback(), NS_ABORT_MSG_IF, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, NS_LOG_WARN, third::phy, ns3::LteEnbPhy::PhyPduReceived(), ns3::LteNetDevice::Receive(), ns3::LteEnbPhy::ReceiveLteControlMessageList(), ns3::LteEnbPhy::ReportInterference(), ns3::LteEnbPhy::ReportUlHarqFeedback(), ns3::LteEnbRrc::RLC_SM_ALWAYS, ns3::LteEnbRrc::RLC_UM_ALWAYS, ns3::ObjectBase::SetAttribute(), ns3::ObjectBase::SetAttributeFailSafe(), ns3::LteEnbNetDevice::SetCcMap(), ns3::LteNetDevice::SetNode(), and ns3::LteSpectrumPhy::UpdateSinrPerceived().

Referenced by InstallEnbDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InstallSingleUeDevice()

◆ InstallUeDevice()

NetDeviceContainer ns3::LteHelper::InstallUeDevice ( NodeContainer  c)

Create a set of UE devices.

Parameters
cthe node container where the devices are to be installed
Returns
the NetDeviceContainer with the newly created devices

Definition at line 500 of file lte-helper.cc.

References ns3::NodeContainer::Begin(), first::devices, ns3::NodeContainer::End(), InstallSingleUeDevice(), and NS_LOG_FUNCTION.

Referenced by CarrierAggregationConfigTestCase::DoRun(), CarrierAggregationTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LteDownlinkPowerControlTestCase::DoRun(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteUplinkOpenLoopPowerControlTestCase::DoRun(), LteUplinkClosedLoopPowerControlAbsoluteModeTestCase::DoRun(), LteUplinkClosedLoopPowerControlAccumulatedModeTestCase::DoRun(), LteEnbAntennaTestCase::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteRrcConnectionEstablishmentTestCase::DoRun(), LteRrcConnectionEstablishmentErrorTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetEnbAntennaModelAttribute()

void ns3::LteHelper::SetEnbAntennaModelAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the eNodeB antenna model to be created.

Parameters
nthe name of the attribute.
vthe value of the attribute

Definition at line 426 of file lte-helper.cc.

References m_enbAntennaModelFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

Referenced by LteEnbAntennaTestCase::DoRun(), and ns3::LteHexGridEnbTopologyHelper::SetPositionAndInstallEnbDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetEnbAntennaModelType()

void ns3::LteHelper::SetEnbAntennaModelType ( std::string  type)

Set the type of antenna model to be used by eNodeB devices.

Parameters
typetype of antenna model, must be a type name of any class inheriting from ns3::AntennaModel, for example: "ns3::IsotropicAntennaModel"

Definition at line 419 of file lte-helper.cc.

References m_enbAntennaModelFactory, NS_LOG_FUNCTION, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by LteEnbAntennaTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetEnbComponentCarrierManagerAttribute()

void ns3::LteHelper::SetEnbComponentCarrierManagerAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the enb component carrier manager to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 369 of file lte-helper.cc.

References m_enbComponentCarrierManagerFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

+ Here is the call graph for this function:

◆ SetEnbComponentCarrierManagerType()

void ns3::LteHelper::SetEnbComponentCarrierManagerType ( std::string  type)

Set the type of carrier component algorithm to be used by eNodeB devices.

Parameters
typetype of carrier component manager

Definition at line 361 of file lte-helper.cc.

References m_enbComponentCarrierManagerFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetEnbDeviceAttribute()

void ns3::LteHelper::SetEnbDeviceAttribute ( std::string  n,
const AttributeValue v 
)

◆ SetEpcHelper()

void ns3::LteHelper::SetEpcHelper ( Ptr< EpcHelper h)

Set the EpcHelper to be used to setup the EPC network in conjunction with the setup of the LTE radio access network.

Note
if no EpcHelper is ever set, then LteHelper will default to creating an LTE-only simulation with no EPC, using LteRlcSm as the RLC model, and without supporting any IP networking. In other words, it will be a radio-level simulation involving only LTE PHY and MAC and the FF Scheduler, with a saturation traffic model for the RLC.
Parameters
ha pointer to the EpcHelper to be used

Definition at line 285 of file lte-helper.cc.

References m_epcHelper, and NS_LOG_FUNCTION.

Referenced by LteCellSelectionTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LteIpv6RoutingTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

+ Here is the caller graph for this function:

◆ SetFadingModel()

void ns3::LteHelper::SetFadingModel ( std::string  type)

Set the type of fading model to be used in both DL and UL.

Parameters
typetype of fading model, must be a type name of any class inheriting from ns3::SpectrumPropagationLossModel, for example: "ns3::TraceFadingLossModel"

Definition at line 454 of file lte-helper.cc.

References m_fadingModelFactory, m_fadingModelType, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetFadingModelAttribute()

void ns3::LteHelper::SetFadingModelAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the fading model to be created (both DL and UL).

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 466 of file lte-helper.cc.

References m_fadingModelFactory, and ns3::ObjectFactory::Set().

+ Here is the call graph for this function:

◆ SetFfrAlgorithmAttribute()

void ns3::LteHelper::SetFfrAlgorithmAttribute ( std::string  n,
const AttributeValue v 
)

◆ SetFfrAlgorithmType()

◆ SetHandoverAlgorithmAttribute()

void ns3::LteHelper::SetHandoverAlgorithmAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the handover algorithm to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 348 of file lte-helper.cc.

References m_handoverAlgorithmFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

Referenced by LteHandoverTargetTestCase::DoRun(), and LteX2HandoverMeasuresTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetHandoverAlgorithmType()

void ns3::LteHelper::SetHandoverAlgorithmType ( std::string  type)

Set the type of handover algorithm to be used by eNodeB devices.

Parameters
typetype of handover algorithm, must be a type name of any class inheriting from ns3::LteHandoverAlgorithm, for example: "ns3::NoOpHandoverAlgorithm"

Equivalent with setting the HandoverAlgorithm attribute.

Definition at line 340 of file lte-helper.cc.

References m_handoverAlgorithmFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by LteDistributedFfrAreaTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), and GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetPathlossModelAttribute()

void ns3::LteHelper::SetPathlossModelAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the path loss models to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 405 of file lte-helper.cc.

References m_pathlossModelFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

Referenced by LenaHarqTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LteRadioLinkFailureTestCase::DoRun(), and LteEnbAntennaTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetPathlossModelType()

void ns3::LteHelper::SetPathlossModelType ( TypeId  type)

Set the type of path loss model to be used for both DL and UL channels.

Parameters
typetype of path loss model, must be a type name of any class inheriting from ns3::PropagationLossModel, for example: "ns3::FriisPropagationLossModel"

Definition at line 397 of file lte-helper.cc.

References m_pathlossModelFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by LteRadioLinkFailureTestCase::DoRun(), and GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetSchedulerAttribute()

void ns3::LteHelper::SetSchedulerAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the scheduler to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 306 of file lte-helper.cc.

References m_schedulerFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

Referenced by CarrierAggregationTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), and LteEnbAntennaTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetSchedulerType()

void ns3::LteHelper::SetSchedulerType ( std::string  type)

Set the type of scheduler to be used by eNodeB devices.

Parameters
typetype of scheduler, must be a type name of any class inheriting from ns3::FfMacScheduler, for example: "ns3::PfFfMacScheduler"

Equivalent with setting the Scheduler attribute.

Definition at line 292 of file lte-helper.cc.

References m_schedulerFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by CarrierAggregationTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), LteCqiGenerationTestCase::DoRun(), LteCqiGenerationDlPowerControlTestCase::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LteDownlinkPowerControlTestCase::DoRun(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::DoRun(), LenaFdBetFfMacSchedulerTestCase1::DoRun(), LenaFdBetFfMacSchedulerTestCase2::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteHardFrTestCase::DoRun(), LteStrictFrTestCase::DoRun(), LteStrictFrAreaTestCase::DoRun(), LteSoftFrAreaTestCase::DoRun(), LteSoftFfrAreaTestCase::DoRun(), LteEnhancedFfrAreaTestCase::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaHarqTestCase::DoRun(), LteInterferenceHardFrTestCase::DoRun(), LteInterferenceStrictFrTestCase::DoRun(), LteInterferenceTestCase::DoRun(), LteLinkAdaptationTestCase::DoRun(), LenaMimoTestCase::DoRun(), LtePathlossModelSystemTestCase::DoRun(), LenaPfFfMacSchedulerTestCase1::DoRun(), LenaPfFfMacSchedulerTestCase2::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaRrFfMacSchedulerTestCase::DoRun(), LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdBetFfMacSchedulerTestCase2::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), LteUeMeasurementsTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), LteUeMeasurementsPiecewiseTestCase3::DoRun(), LteUplinkOpenLoopPowerControlTestCase::DoRun(), LteUplinkClosedLoopPowerControlAbsoluteModeTestCase::DoRun(), LteUplinkClosedLoopPowerControlAccumulatedModeTestCase::DoRun(), LteEnbAntennaTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), and GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetSpectrumChannelAttribute()

void ns3::LteHelper::SetSpectrumChannelAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the spectrum channel to be created (both DL and UL).

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 479 of file lte-helper.cc.

References m_channelFactory, and ns3::ObjectFactory::Set().

+ Here is the call graph for this function:

◆ SetSpectrumChannelType()

void ns3::LteHelper::SetSpectrumChannelType ( std::string  type)

Set the type of spectrum channel to be used in both DL and UL.

Parameters
typetype of spectrum channel model, must be a type name of any class inheriting from ns3::SpectrumChannel, for example: "ns3::MultiModelSpectrumChannel"

Definition at line 472 of file lte-helper.cc.

References m_channelFactory, NS_LOG_FUNCTION, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

+ Here is the call graph for this function:

◆ SetUeAntennaModelAttribute()

void ns3::LteHelper::SetUeAntennaModelAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the UE antenna model to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 447 of file lte-helper.cc.

References m_ueAntennaModelFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

+ Here is the call graph for this function:

◆ SetUeAntennaModelType()

void ns3::LteHelper::SetUeAntennaModelType ( std::string  type)

Set the type of antenna model to be used by UE devices.

Parameters
typetype of antenna model, must be a type name of any class inheriting from ns3::AntennaModel, for example: "ns3::IsotropicAntennaModel"

Definition at line 440 of file lte-helper.cc.

References m_ueAntennaModelFactory, NS_LOG_FUNCTION, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

+ Here is the call graph for this function:

◆ SetUeComponentCarrierManagerAttribute()

void ns3::LteHelper::SetUeComponentCarrierManagerAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the ue component carrier manager to be created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 390 of file lte-helper.cc.

References m_ueComponentCarrierManagerFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

+ Here is the call graph for this function:

◆ SetUeComponentCarrierManagerType()

void ns3::LteHelper::SetUeComponentCarrierManagerType ( std::string  type)

Set the type of Component Carrier Manager to be used by Ue devices.

Parameters
typetype of UE Component Carrier Manager

Definition at line 382 of file lte-helper.cc.

References m_ueComponentCarrierManagerFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, ns3::ObjectFactory::SetTypeId(), and check-style-clang-format::type.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetUeDeviceAttribute()

void ns3::LteHelper::SetUeDeviceAttribute ( std::string  n,
const AttributeValue v 
)

Set an attribute for the UE devices (LteUeNetDevice) to be created.

Parameters
nthe name of the attribute.
vthe value of the attribute

Definition at line 433 of file lte-helper.cc.

References m_ueNetDeviceFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

Referenced by CarrierAggregationConfigTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), and LtePathlossModelSystemTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_cellIdCounter

uint16_t ns3::LteHelper::m_cellIdCounter
private

Keep track of the number of cell ID allocated.

Increases by one every time a new eNodeB is installed (by InstallSingleEnbDevice()). The first eNodeB will have a cell ID of 1. The maximum number of eNodeB is 65535.

Definition at line 825 of file lte-helper.h.

Referenced by InstallSingleEnbDevice().

◆ m_channelFactory

ObjectFactory ns3::LteHelper::m_channelFactory
private

Factory of both the downlink and uplink LTE channels.

Definition at line 778 of file lte-helper.h.

Referenced by LteHelper(), ChannelModelInitialization(), SetSpectrumChannelAttribute(), and SetSpectrumChannelType().

◆ m_componentCarrierPhyParams

std::map<uint8_t, ComponentCarrier> ns3::LteHelper::m_componentCarrierPhyParams
private

This contains all the information about each component carrier.

Definition at line 855 of file lte-helper.h.

Referenced by DoComponentCarrierConfigure(), DoDispose(), InstallSingleEnbDevice(), and InstallSingleUeDevice().

◆ m_downlinkChannel

Ptr<SpectrumChannel> ns3::LteHelper::m_downlinkChannel
private

This function create the component carrier based on provided configuration parameters.

The downlink LTE channel used in the simulation.

Definition at line 749 of file lte-helper.h.

Referenced by ChannelModelInitialization(), DoDispose(), GetDownlinkSpectrumChannel(), InstallSingleEnbDevice(), and InstallSingleUeDevice().

◆ m_downlinkPathlossModel

Ptr<Object> ns3::LteHelper::m_downlinkPathlossModel
private

The path loss model used in the downlink channel.

Definition at line 753 of file lte-helper.h.

Referenced by ChannelModelInitialization(), and InstallSingleEnbDevice().

◆ m_enbAntennaModelFactory

ObjectFactory ns3::LteHelper::m_enbAntennaModelFactory
private

Factory of antenna object for eNodeB.

Definition at line 770 of file lte-helper.h.

Referenced by LteHelper(), InstallSingleEnbDevice(), SetEnbAntennaModelAttribute(), and SetEnbAntennaModelType().

◆ m_enbComponentCarrierManagerFactory

ObjectFactory ns3::LteHelper::m_enbComponentCarrierManagerFactory
private

Factory of enb component carrier manager object.

Definition at line 764 of file lte-helper.h.

Referenced by GetEnbComponentCarrierManagerType(), InstallSingleEnbDevice(), SetEnbComponentCarrierManagerAttribute(), and SetEnbComponentCarrierManagerType().

◆ m_enbNetDeviceFactory

ObjectFactory ns3::LteHelper::m_enbNetDeviceFactory
private

Factory of LteEnbNetDevice objects.

Definition at line 768 of file lte-helper.h.

Referenced by LteHelper(), InstallSingleEnbDevice(), and SetEnbDeviceAttribute().

◆ m_epcHelper

Ptr<EpcHelper> ns3::LteHelper::m_epcHelper
private

Helper which provides implementation of core network.

Initially empty (i.e., LTE-only simulation without any core network) and then might be set using SetEpcHelper().

Definition at line 812 of file lte-helper.h.

Referenced by ActivateDataRadioBearer(), ActivateDedicatedEpsBearer(), AddX2Interface(), AssignStreams(), Attach(), DeActivateDedicatedEpsBearer(), HandoverRequest(), InstallSingleEnbDevice(), InstallSingleUeDevice(), and SetEpcHelper().

◆ m_fadingModel

Ptr<SpectrumPropagationLossModel> ns3::LteHelper::m_fadingModel
private

The fading model used in both the downlink and uplink channels.

Definition at line 785 of file lte-helper.h.

Referenced by AssignStreams(), and ChannelModelInitialization().

◆ m_fadingModelFactory

ObjectFactory ns3::LteHelper::m_fadingModelFactory
private

Factory of fading model object for both the downlink and uplink channels.

Definition at line 783 of file lte-helper.h.

Referenced by ChannelModelInitialization(), SetFadingModel(), and SetFadingModelAttribute().

◆ m_fadingModelType

std::string ns3::LteHelper::m_fadingModelType
private

Name of fading model type, e.g., "ns3::TraceFadingLossModel".

Definition at line 781 of file lte-helper.h.

Referenced by ChannelModelInitialization(), and SetFadingModel().

◆ m_fadingStreamsAssigned

bool ns3::LteHelper::m_fadingStreamsAssigned
private

True if a random variable stream number has been assigned for the fading model.

Used to prevent such assignment to be done more than once.

Definition at line 790 of file lte-helper.h.

Referenced by AssignStreams().

◆ m_ffrAlgorithmFactory

ObjectFactory ns3::LteHelper::m_ffrAlgorithmFactory
private

Factory of FFR (frequency reuse) algorithm object.

Definition at line 760 of file lte-helper.h.

Referenced by GetFfrAlgorithmType(), InstallSingleEnbDevice(), SetFfrAlgorithmAttribute(), and SetFfrAlgorithmType().

◆ m_handoverAlgorithmFactory

ObjectFactory ns3::LteHelper::m_handoverAlgorithmFactory
private

Factory of handover algorithm object.

Definition at line 762 of file lte-helper.h.

Referenced by GetHandoverAlgorithmType(), InstallSingleEnbDevice(), SetHandoverAlgorithmAttribute(), and SetHandoverAlgorithmType().

◆ m_imsiCounter

uint64_t ns3::LteHelper::m_imsiCounter
private

Keep track of the number of IMSI allocated.

Increases by one every time a new UE is installed (by InstallSingleUeDevice()). The first UE will have an IMSI of 1. The maximum number of UE is 2^64 (~4.2e9).

Definition at line 819 of file lte-helper.h.

Referenced by InstallSingleUeDevice().

◆ m_isAnrEnabled

bool ns3::LteHelper::m_isAnrEnabled
private

The AnrEnabled attribute.

Activate or deactivate Automatic Neighbour Relation function.

Definition at line 836 of file lte-helper.h.

Referenced by GetTypeId(), and InstallSingleEnbDevice().

◆ m_macStats

Ptr<MacStatsCalculator> ns3::LteHelper::m_macStats
private

Container of MAC layer statistics.

Definition at line 799 of file lte-helper.h.

Referenced by DoInitialize(), EnableDlMacTraces(), and EnableUlMacTraces().

◆ m_noOfCcs

uint16_t ns3::LteHelper::m_noOfCcs
private

Number of component carriers that will be installed by default at eNodeB and UE devices.

Definition at line 860 of file lte-helper.h.

Referenced by ChannelModelInitialization(), DoComponentCarrierConfigure(), GetTypeId(), InstallSingleEnbDevice(), and InstallSingleUeDevice().

◆ m_pathlossModelFactory

ObjectFactory ns3::LteHelper::m_pathlossModelFactory
private

Factory of path loss model object.

Definition at line 776 of file lte-helper.h.

Referenced by ChannelModelInitialization(), SetPathlossModelAttribute(), and SetPathlossModelType().

◆ m_pdcpStats

Ptr<RadioBearerStatsCalculator> ns3::LteHelper::m_pdcpStats
private

Container of PDCP layer statistics.

Definition at line 803 of file lte-helper.h.

Referenced by EnablePdcpTraces(), and GetPdcpStats().

◆ m_phyRxStats

Ptr<PhyRxStatsCalculator> ns3::LteHelper::m_phyRxStats
private

Container of PHY layer statistics related to reception.

Definition at line 797 of file lte-helper.h.

Referenced by DoInitialize(), EnableDlRxPhyTraces(), and EnableUlRxPhyTraces().

◆ m_phyStats

Ptr<PhyStatsCalculator> ns3::LteHelper::m_phyStats
private

Container of PHY layer statistics.

Definition at line 793 of file lte-helper.h.

Referenced by DoInitialize(), EnableDlPhyTraces(), and EnableUlPhyTraces().

◆ m_phyTxStats

Ptr<PhyTxStatsCalculator> ns3::LteHelper::m_phyTxStats
private

Container of PHY layer statistics related to transmission.

Definition at line 795 of file lte-helper.h.

Referenced by DoInitialize(), EnableDlTxPhyTraces(), and EnableUlTxPhyTraces().

◆ m_radioBearerStatsConnector

RadioBearerStatsConnector ns3::LteHelper::m_radioBearerStatsConnector
private

Connects RLC and PDCP statistics containers to appropriate trace sources.

Definition at line 805 of file lte-helper.h.

Referenced by EnablePdcpTraces(), and EnableRlcTraces().

◆ m_rlcStats

Ptr<RadioBearerStatsCalculator> ns3::LteHelper::m_rlcStats
private

Container of RLC layer statistics.

Definition at line 801 of file lte-helper.h.

Referenced by EnableRlcTraces(), and GetRlcStats().

◆ m_schedulerFactory

ObjectFactory ns3::LteHelper::m_schedulerFactory
private

Factory of MAC scheduler object.

Definition at line 758 of file lte-helper.h.

Referenced by GetSchedulerType(), InstallSingleEnbDevice(), SetSchedulerAttribute(), and SetSchedulerType().

◆ m_ueAntennaModelFactory

ObjectFactory ns3::LteHelper::m_ueAntennaModelFactory
private

Factory of antenna object for UE.

Definition at line 774 of file lte-helper.h.

Referenced by LteHelper(), InstallSingleUeDevice(), SetUeAntennaModelAttribute(), and SetUeAntennaModelType().

◆ m_ueComponentCarrierManagerFactory

ObjectFactory ns3::LteHelper::m_ueComponentCarrierManagerFactory
private

Factory of ue component carrier manager object.

Definition at line 766 of file lte-helper.h.

Referenced by GetUeComponentCarrierManagerType(), InstallSingleUeDevice(), SetUeComponentCarrierManagerAttribute(), and SetUeComponentCarrierManagerType().

◆ m_ueNetDeviceFactory

ObjectFactory ns3::LteHelper::m_ueNetDeviceFactory
private

Factory for LteUeNetDevice objects.

Definition at line 772 of file lte-helper.h.

Referenced by LteHelper(), InstallSingleUeDevice(), and SetUeDeviceAttribute().

◆ m_uplinkChannel

Ptr<SpectrumChannel> ns3::LteHelper::m_uplinkChannel
private

The uplink LTE channel used in the simulation.

Definition at line 751 of file lte-helper.h.

Referenced by ChannelModelInitialization(), DoDispose(), GetUplinkSpectrumChannel(), InstallSingleEnbDevice(), and InstallSingleUeDevice().

◆ m_uplinkPathlossModel

Ptr<Object> ns3::LteHelper::m_uplinkPathlossModel
private

The path loss model used in the uplink channel.

Definition at line 755 of file lte-helper.h.

Referenced by ChannelModelInitialization(), and InstallSingleEnbDevice().

◆ m_useCa

bool ns3::LteHelper::m_useCa
private

The UseCa attribute.

If true, Carrier Aggregation is enabled. Hence, the helper will expect a valid component carrier map If it is false, the component carrier will be created within the LteHelper this is to maintain the backwards compatibility with user script

Definition at line 850 of file lte-helper.h.

Referenced by GetTypeId(), and InstallSingleEnbDevice().

◆ m_useIdealRrc

bool ns3::LteHelper::m_useIdealRrc
private

The UseIdealRrc attribute.

If true, LteRrcProtocolIdeal will be used for RRC signaling. If false, LteRrcProtocolReal will be used.

Definition at line 831 of file lte-helper.h.

Referenced by GetTypeId(), InstallSingleEnbDevice(), and InstallSingleUeDevice().

◆ m_usePdschForCqiGeneration

bool ns3::LteHelper::m_usePdschForCqiGeneration
private

The UsePdschForCqiGeneration attribute.

If true, DL-CQI will be calculated from PDCCH as signal and PDSCH as interference. If false, DL-CQI will be calculated from PDCCH as signal and PDCCH as interference.

Definition at line 842 of file lte-helper.h.

Referenced by GetTypeId(), and InstallSingleUeDevice().


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