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

#include <lte-helper.h>

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

Public Types

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

Public Member Functions

 LteHelper (void)
virtual ~LteHelper (void)
void ActivateDataRadioBearer (NetDeviceContainer ueDevices, EpsBearer bearer)
void ActivateDataRadioBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer)
void ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr< EpcTft > tft)
void ActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer, Ptr< EpcTft > tft)
void AddX2Interface (NodeContainer enbNodes)
void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2)
int64_t AssignStreams (NetDeviceContainer c, int64_t stream)
void Attach (NetDeviceContainer ueDevices, Ptr< NetDevice > enbDevice)
void Attach (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice)
void AttachToClosestEnb (NetDeviceContainer ueDevices, NetDeviceContainer enbDevices)
void AttachToClosestEnb (Ptr< NetDevice > ueDevice, NetDeviceContainer enbDevices)
virtual void DoDispose (void)
void EnableDlMacTraces (void)
void EnableDlPhyTraces (void)
void EnableDlRxPhyTraces (void)
void EnableDlTxPhyTraces (void)
void EnableLogComponents (void)
void EnableMacTraces (void)
void EnablePdcpTraces (void)
void EnablePhyTraces (void)
void EnableRlcTraces (void)
void EnableTraces (void)
void EnableUlMacTraces (void)
void EnableUlPhyTraces (void)
void EnableUlRxPhyTraces (void)
void EnableUlTxPhyTraces (void)
Ptr< RadioBearerStatsCalculatorGetPdcpStats (void)
Ptr< RadioBearerStatsCalculatorGetRlcStats (void)
void HandoverRequest (Time hoTime, Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, Ptr< NetDevice > targetEnbDev)
NetDeviceContainer InstallEnbDevice (NodeContainer c)
NetDeviceContainer InstallUeDevice (NodeContainer c)
void SetEnbAntennaModelAttribute (std::string n, const AttributeValue &v)
void SetEnbAntennaModelType (std::string type)
void SetEnbDeviceAttribute (std::string n, const AttributeValue &v)
void SetEpcHelper (Ptr< EpcHelper > h)
void SetFadingModel (std::string model)
void SetFadingModelAttribute (std::string n, const AttributeValue &v)
void SetPathlossModelAttribute (std::string n, const AttributeValue &v)
void SetPathlossModelType (std::string type)
void SetSchedulerAttribute (std::string n, const AttributeValue &v)
void SetSchedulerType (std::string type)
void SetSpectrumChannelAttribute (std::string n, const AttributeValue &v)
void SetSpectrumChannelType (std::string type)
void SetUeAntennaModelAttribute (std::string n, const AttributeValue &v)
void SetUeAntennaModelType (std::string type)
- 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 DoInitialize (void)
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void NotifyNewAggregate (void)

Private Member Functions

void DoHandoverRequest (Ptr< NetDevice > ueDev, Ptr< NetDevice > sourceEnbDev, Ptr< NetDevice > targetEnbDev)
Ptr< NetDeviceInstallSingleEnbDevice (Ptr< Node > n)
Ptr< NetDeviceInstallSingleUeDevice (Ptr< Node > n)

Private Attributes

uint16_t m_cellIdCounter
ObjectFactory m_channelFactory
ObjectFactory m_dlPathlossModelFactory
Ptr< SpectrumChannelm_downlinkChannel
Ptr< Objectm_downlinkPathlossModel
ObjectFactory m_enbAntennaModelFactory
ObjectFactory m_enbNetDeviceFactory
Ptr< EpcHelperm_epcHelper
ObjectFactory m_fadingModelFactory
std::string m_fadingModelType
uint64_t m_imsiCounter
Ptr< MacStatsCalculatorm_macStats
Ptr< RadioBearerStatsCalculatorm_pdcpStats
Ptr< PhyRxStatsCalculatorm_phyRxStats
Ptr< PhyStatsCalculatorm_phyStats
Ptr< PhyTxStatsCalculatorm_phyTxStats
ObjectFactory m_propagationModelFactory
RadioBearerStatsConnector m_radioBearerStatsConnector
Ptr< RadioBearerStatsCalculatorm_rlcStats
ObjectFactory m_schedulerFactory
ObjectFactory m_ueAntennaModelFactory
ObjectFactory m_ulPathlossModelFactory
Ptr< SpectrumChannelm_uplinkChannel
Ptr< Objectm_uplinkPathlossModel
bool m_useIdealRrc

Detailed Description

Creation and configuration of LTE entities

Doxygen introspection did not find any typical Config paths.

Attributes

  • Scheduler: The type of scheduler to be used for eNBs
  • PathlossModel: The type of pathloss model to be used
  • FadingModel: The type of fading model to be used. If the type is set to an empty string, no fading model is used.
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value:
    • Flags: construct write
  • UseIdealRrc: If true, LteRrcProtocolIdeal will be used for RRC signaling. If false, LteRrcProtocolReal will be used.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

No TraceSources are defined for this type.

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

Member Enumeration Documentation

Enumerator:
RLC_SM_ALWAYS 
RLC_UM_ALWAYS 
RLC_AM_ALWAYS 
PER_BASED 

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

Constructor & Destructor Documentation

ns3::LteHelper::~LteHelper ( void  )
virtual

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

References NS_LOG_FUNCTION.

Member Function Documentation

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

Activate a Data Radio Bearer for a simplified LTE-only simulation without EPC. This method will schedule the actual activation of the bearer so that it happens after the UE got connected.

Parameters
ueDevicethe device of the UE for which the radio bearer is to be activated
bearerthe characteristics of the bearer to be activated

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

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

+ Here is the call graph for this function:

void 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

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

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

Referenced by ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Activate a dedicated EPS bearer on a given UE device

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

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

References ns3::EpcHelper::ActivateEpsBearer(), ns3::Object::GetObject(), m_epcHelper, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

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 727 of file lte-helper.cc.

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

Referenced by ns3::LteX2HandoverTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 741 of file lte-helper.cc.

References ns3::EpcHelper::AddX2Interface(), m_epcHelper, NS_LOG_FUNCTION, and NS_LOG_INFO.

+ Here is the call graph for this function:

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

Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned. The Install() method should have previously been called by the user.

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 assigned by this helper

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

References ns3::LteUeMac::AssignStreams(), ns3::LteSpectrumPhy::AssignStreams(), ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), ns3::LtePhy::GetDownlinkSpectrumPhy(), ns3::LteEnbNetDevice::GetPhy(), and ns3::LtePhy::GetUplinkSpectrumPhy().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Attach a set of UE devices to a single eNB device

Parameters
ueDevices
enbDevice

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

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

Referenced by AttachToClosestEnb(), ns3::LteRrcConnectionEstablishmentTestCase::Connect(), ns3::LenaMimoTestCase::DoRun(), ns3::LenaHarqTestCase::DoRun(), ns3::LenaDataPhyErrorModelTestCase::DoRun(), ns3::LenaRrFfMacSchedulerTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase1::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LteLinkAdaptationTestCase::DoRun(), ns3::LteInterferenceTestCase::DoRun(), ns3::LtePathlossModelSystemTestCase::DoRun(), ns3::LteEnbAntennaTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaDlCtrlPhyErrorModelTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), ns3::LteFadingTestSuite::LteFadingTestSuite(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Attach a UE to the network

Attach a UE device to the network via a given eNB, and activate the default EPS bearer.

Parameters
ueDevice
enbDevice

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

References ns3::EpcHelper::ActivateEpsBearer(), ns3::EpcTft::Default(), ns3::Object::GetObject(), m_epcHelper, ns3::EpsBearer::NGBR_VIDEO_TCP_DEFAULT, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

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

Attach each UE in a set to the closest (w.r.t. distance) eNB among those in a set.

Parameters
ueDevicesthe set of UEs
enbDevicesthe set of eNBs

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

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

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Attach an UE ito the closest (w.r.t. distance) eNB among those in a set Will call LteHelper::Attach () passing to it the single eNB instance which resulted to be the closest to the UE

Parameters
ueDevicethe UE
enbDevicesthe set of eNBs

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

References Attach(), ns3::NetDeviceContainer::Begin(), ns3::CalculateDistance(), ns3::NetDeviceContainer::End(), ns3::NetDeviceContainer::GetN(), ns3::NetDevice::GetNode(), ns3::Object::GetObject(), GetPosition(), NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

void ns3::LteHelper::DoDispose ( void  )
virtual

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 166 of file lte-helper.cc.

References m_downlinkChannel, m_uplinkChannel, and NS_LOG_FUNCTION.

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

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

References ns3::Object::GetObject(), NS_LOG_FUNCTION, and ns3::LteEnbRrc::SendHandoverRequest().

Referenced by HandoverRequest().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::DoInitialize ( void  )
protectedvirtual

This method is called only once by Object::Initialize. If the user calls Object::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 76 of file lte-helper.cc.

References ns3::SpectrumChannel::AddPropagationLossModel(), ns3::SpectrumChannel::AddSpectrumPropagationLossModel(), ns3::ObjectFactory::Create(), ns3::Object::GetObject(), ns3::Object::Initialize(), m_channelFactory, m_dlPathlossModelFactory, m_downlinkChannel, m_downlinkPathlossModel, m_fadingModelFactory, m_fadingModelType, m_macStats, m_phyRxStats, m_phyStats, m_phyTxStats, m_ulPathlossModelFactory, m_uplinkChannel, m_uplinkPathlossModel, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

+ Here is the call graph for this function:

void ns3::LteHelper::EnableDlMacTraces ( void  )

Enable trace sinks for DL MAC layer

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

References ns3::Config::Connect(), ns3::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:

void ns3::LteHelper::EnableDlPhyTraces ( void  )

Enable trace sinks for DL PHY layer

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

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

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableDlRxPhyTraces ( void  )

Enable trace sinks for DL reception PHY layer

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

References ns3::Config::Connect(), ns3::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:

void ns3::LteHelper::EnableDlTxPhyTraces ( void  )

Enable trace sinks for DL transmission PHY layer

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

References ns3::Config::Connect(), ns3::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:

void ns3::LteHelper::EnableLogComponents ( void  )

Enables logging for all components of the LENA architecture

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

References ns3::TypeId::GetName(), ns3::ObjectFactory::GetTypeId(), ns3::LOG_LEVEL_ALL, ns3::LogComponentEnable(), and m_dlPathlossModelFactory.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnablePdcpTraces ( void  )

Enable trace sinks for PDCP layer

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

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

Referenced by ns3::LteX2HandoverTestCase::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), EnableTraces(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnablePhyTraces ( void  )

Enable trace sinks for PHY layer

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

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

Referenced by EnableTraces(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableTraces ( void  )

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 820 of file lte-helper.cc.

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

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableUlMacTraces ( void  )

Enable trace sinks for UL MAC layer

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

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

Referenced by EnableMacTraces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableUlPhyTraces ( void  )

Enable trace sinks for UL PHY layer

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

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

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableUlRxPhyTraces ( void  )

Enable trace sinks for UL reception PHY layer

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

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

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::EnableUlTxPhyTraces ( void  )

Enable trace sinks for UL transmission PHY layer

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

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

Referenced by EnablePhyTraces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References m_pdcpStats.

Referenced by ns3::LteEpcE2eDataTestCase::DoRun(), and main().

+ Here is the caller graph for this function:

TypeId ns3::LteHelper::GetTypeId ( void  )
static

Reimplemented from ns3::Object.

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

References m_useIdealRrc, SetFadingModel(), ns3::TypeId::SetParent(), SetPathlossModelType(), and SetSchedulerType().

+ Here is the call graph for this function:

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

Trigger an X2-based handover of a UE between two eNBs

Parameters
hoTimewhen the Handover is initiated
ueDevthe UE that hands off
enbDev1source eNB, originally the UE is attached to this eNB
enbDev2target eNB, the UE is finally connected to this eNB

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

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

Referenced by ns3::LteX2HandoverTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

create a set of eNB devices

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

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

References ns3::NetDeviceContainer::Add(), ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Object::Initialize(), InstallSingleEnbDevice(), and NS_LOG_FUNCTION.

Referenced by ns3::LenaMimoTestCase::DoRun(), ns3::LenaDataPhyErrorModelTestCase::DoRun(), ns3::LenaHarqTestCase::DoRun(), ns3::LenaRrFfMacSchedulerTestCase::DoRun(), ns3::LteRrcConnectionEstablishmentTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase1::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LteLinkAdaptationTestCase::DoRun(), ns3::LteInterferenceTestCase::DoRun(), ns3::LtePathlossModelSystemTestCase::DoRun(), ns3::LteEnbAntennaTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaDlCtrlPhyErrorModelTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), ns3::LteFadingTestSuite::LteFadingTestSuite(), main(), and ns3::LteHexGridEnbTopologyHelper::SetPositionAndInstallEnbDevice().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References ns3::Node::AddDevice(), ns3::EpcHelper::AddEnb(), ns3::SpectrumChannel::AddRx(), ns3::ObjectFactory::Create(), ns3::EnumValue::Get(), ns3::Node::GetApplication(), ns3::LteSpectrumValueHelper::GetCarrierFrequency(), ns3::LteEnbNetDevice::GetCellId(), ns3::LteEnbNetDevice::GetDlEarfcn(), ns3::LteEnbMac::GetFfMacCschedSapUser(), ns3::LteEnbMac::GetFfMacSchedSapUser(), ns3::LteEnbMac::GetLteEnbCmacSapProvider(), ns3::LteEnbMac::GetLteEnbPhySapUser(), ns3::LteEnbMac::GetLteMacSapProvider(), ns3::Object::GetObject(), ns3::LteEnbNetDevice::GetUlEarfcn(), ns3::Object::Initialize(), m_cellIdCounter, m_downlinkChannel, m_downlinkPathlossModel, m_enbAntennaModelFactory, m_enbNetDeviceFactory, m_epcHelper, m_schedulerFactory, m_uplinkChannel, m_uplinkPathlossModel, m_useIdealRrc, ns3::MakeCallback(), NS_ABORT_MSG_IF, NS_ASSERT_MSG, NS_LOG_INFO, NS_LOG_LOGIC, NS_LOG_WARN, ns3::LteEnbPhy::PhyPduReceived(), ns3::LteNetDevice::Receive(), ns3::LteEnbPhy::ReceiveLteControlMessageList(), ns3::LteEnbPhy::ReceiveLteUlHarqFeedback(), RLC_SM_ALWAYS, ns3::LteEnbRrc::RLC_UM_ALWAYS, ns3::ObjectBase::SetAttribute(), ns3::ObjectBase::SetAttributeFailSafe(), ns3::LteEnbMac::SetFfMacCschedSapProvider(), ns3::LteEnbMac::SetFfMacSchedSapProvider(), ns3::LteEnbMac::SetLteEnbCmacSapUser(), ns3::LteEnbMac::SetLteEnbPhySapProvider(), and ns3::LteNetDevice::SetNode().

Referenced by InstallEnbDevice().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 300 of file lte-helper.cc.

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

Referenced by ns3::LenaMimoTestCase::DoRun(), ns3::LenaHarqTestCase::DoRun(), ns3::LenaDataPhyErrorModelTestCase::DoRun(), ns3::LenaRrFfMacSchedulerTestCase::DoRun(), ns3::LteRrcConnectionEstablishmentTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdMtFfMacSchedulerTestCase::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase1::DoRun(), LenaTdMtFfMacSchedulerTestCase::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTtaFfMacSchedulerTestCase::DoRun(), ns3::LteLinkAdaptationTestCase::DoRun(), ns3::LteInterferenceTestCase::DoRun(), ns3::LtePathlossModelSystemTestCase::DoRun(), ns3::LteEnbAntennaTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaDlCtrlPhyErrorModelTestCase::DoRun(), ns3::LenaPfFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdBetFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), ns3::LteFadingTestSuite::LteFadingTestSuite(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute for the AntennaModel to be used for the eNBs

Parameters
nthe name of the attribute
vthe value of the attribute

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

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

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::SetEnbAntennaModelType ( std::string  type)
Parameters
typethe type of AntennaModel to be used for the eNBs

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

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

Referenced by ns3::LteEnbAntennaTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute for the LteEnbNetDevice to be created

Parameters
nthe name of the attribute
vthe value of the attribute

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

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

Referenced by ns3::LtePathlossModelSystemTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 176 of file lte-helper.cc.

References m_epcHelper, and NS_LOG_FUNCTION.

Referenced by ns3::LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LenaPssFfMacSchedulerTestCase1::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), ns3::LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LenaPssFfMacSchedulerTestCase2::DoRun(), ns3::LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), ns3::LteEpcE2eDataTestCase::DoRun(), and main().

+ Here is the caller graph for this function:

void ns3::LteHelper::SetFadingModel ( std::string  model)
Parameters
typethe fading model to be used

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

References m_fadingModelFactory, m_fadingModelType, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, and ns3::ObjectFactory::SetTypeId().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute of the fading model

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

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

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute for the pathloss model to be created

Parameters
nthe name of the attribute
vthe value of the attribute

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

References m_dlPathlossModelFactory, m_ulPathlossModelFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::Set().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteHelper::SetPathlossModelType ( std::string  type)
Parameters
typethe type of pathloss model to be used for the eNBs

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

References m_dlPathlossModelFactory, m_ulPathlossModelFactory, NS_LOG_FUNCTION, ns3::Object::ObjectFactory, and ns3::ObjectFactory::SetTypeId().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 191 of file lte-helper.cc.

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

Referenced by ns3::LenaHarqTestCase::DoRun(), ns3::LenaDataPhyErrorModelTestCase::DoRun(), ns3::LteInterferenceTestCase::DoRun(), ns3::LteEnbAntennaTestCase::DoRun(), ns3::LenaDlCtrlPhyErrorModelTestCase::DoRun(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute for the SpectrumChannel to be used for the UEs

Parameters
nthe name of the attribute
vthe value of the attribute

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

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

+ Here is the call graph for this function:

void ns3::LteHelper::SetSpectrumChannelType ( std::string  type)
Parameters
typethe type of SpectrumChannel to be used for the UEs

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

References m_channelFactory, NS_LOG_FUNCTION, and ns3::ObjectFactory::SetTypeId().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

set an attribute for the AntennaModel to be used for the UEs

Parameters
nthe name of the attribute
vthe value of the attribute

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

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

+ Here is the call graph for this function:

void ns3::LteHelper::SetUeAntennaModelType ( std::string  type)
Parameters
typethe type of AntennaModel to be used for the UEs

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

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

+ Here is the call graph for this function:

Member Data Documentation

uint16_t ns3::LteHelper::m_cellIdCounter
private

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

Referenced by InstallSingleEnbDevice().

ObjectFactory ns3::LteHelper::m_channelFactory
private
ObjectFactory ns3::LteHelper::m_dlPathlossModelFactory
private
Ptr<SpectrumChannel> ns3::LteHelper::m_downlinkChannel
private
Ptr<Object> ns3::LteHelper::m_downlinkPathlossModel
private

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

Referenced by DoInitialize(), and InstallSingleEnbDevice().

ObjectFactory ns3::LteHelper::m_enbAntennaModelFactory
private
ObjectFactory ns3::LteHelper::m_enbNetDeviceFactory
private

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

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

ObjectFactory ns3::LteHelper::m_fadingModelFactory
private

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

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

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

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

Referenced by DoInitialize(), and SetFadingModel().

uint64_t ns3::LteHelper::m_imsiCounter
private

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

Referenced by InstallSingleUeDevice().

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

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

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

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

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

Referenced by EnablePdcpTraces(), and GetPdcpStats().

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

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

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

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

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

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

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

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

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

ObjectFactory ns3::LteHelper::m_propagationModelFactory
private

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

RadioBearerStatsConnector ns3::LteHelper::m_radioBearerStatsConnector
private

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

Referenced by EnablePdcpTraces(), and EnableRlcTraces().

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

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

Referenced by EnableRlcTraces(), and GetRlcStats().

ObjectFactory ns3::LteHelper::m_schedulerFactory
private

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

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

ObjectFactory ns3::LteHelper::m_ueAntennaModelFactory
private
ObjectFactory ns3::LteHelper::m_ulPathlossModelFactory
private

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

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

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

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

Referenced by DoInitialize(), and InstallSingleEnbDevice().

bool ns3::LteHelper::m_useIdealRrc
private

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

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


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