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

Create an EPC network with PointToPoint links between the core network nodes. More...

#include "no-backhaul-epc-helper.h"

+ Inheritance diagram for ns3::NoBackhaulEpcHelper:
+ Collaboration diagram for ns3::NoBackhaulEpcHelper:

Public Member Functions

 NoBackhaulEpcHelper ()
 Constructor. More...
 
virtual ~NoBackhaulEpcHelper ()
 Destructor. More...
 
uint8_t ActivateEpsBearer (Ptr< NetDevice > ueLteDevice, uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer) override
 Activate an EPS bearer, setting up the corresponding S1-U tunnel. More...
 
void AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds) override
 Add an eNB to the EPC. More...
 
void AddS1Interface (Ptr< Node > enb, Ipv4Address enbAddress, Ipv4Address sgwAddress, std::vector< uint16_t > cellIds) override
 Add an S1 interface between an eNB and a SGW. More...
 
void AddUe (Ptr< NetDevice > ueLteDevice, uint64_t imsi) override
 Notify the EPC of the existence of a new UE which might attach at a later time. More...
 
void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2) override
 Add an X2 interface between two eNB. More...
 
int64_t AssignStreams (int64_t stream) override
 Assign a fixed random variable stream number to the random variables used. More...
 
Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices) override
 Assign IPv4 addresses to UE devices. More...
 
Ipv6InterfaceContainer AssignUeIpv6Address (NetDeviceContainer ueDevices) override
 Assign IPv6 addresses to UE devices. More...
 
void DoDispose () override
 Destructor implementation. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
Ptr< NodeGetPgwNode () const override
 Get the PGW node. More...
 
Ptr< NodeGetSgwNode () const override
 Get the SGW node. More...
 
Ipv4Address GetUeDefaultGatewayAddress () override
 
Ipv6Address GetUeDefaultGatewayAddress6 () override
 
- Public Member Functions inherited from ns3::EpcHelper
 EpcHelper ()
 Constructor. More...
 
virtual ~EpcHelper ()
 Destructor. More...
 
virtual uint8_t ActivateEpsBearer (Ptr< NetDevice > ueLteDevice, uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer)=0
 Activate an EPS bearer, setting up the corresponding S1-U tunnel. More...
 
virtual void AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds)=0
 Add an eNB to the EPC. More...
 
virtual void AddS1Interface (Ptr< Node > enb, Ipv4Address enbAddress, Ipv4Address sgwAddress, std::vector< uint16_t > cellIds)=0
 Add an S1 interface between an eNB and a SGW. More...
 
virtual void AddUe (Ptr< NetDevice > ueLteDevice, uint64_t imsi)=0
 Notify the EPC of the existence of a new UE which might attach at a later time. More...
 
virtual void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2)=0
 Add an X2 interface between two eNB. More...
 
virtual int64_t AssignStreams (int64_t stream)=0
 Assign a fixed random variable stream number to the random variables used. More...
 
virtual Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices)=0
 Assign IPv4 addresses to UE devices. More...
 
virtual Ipv6InterfaceContainer AssignUeIpv6Address (NetDeviceContainer ueDevices)=0
 Assign IPv6 addresses to UE devices. More...
 
virtual void DoDispose ()
 Destructor implementation. More...
 
virtual Ptr< NodeGetPgwNode () const =0
 Get the PGW node. More...
 
virtual Ptr< NodeGetSgwNode () const =0
 Get the SGW node. More...
 
virtual Ipv4Address GetUeDefaultGatewayAddress ()=0
 
virtual Ipv6Address GetUeDefaultGatewayAddress6 ()=0
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this 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...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) 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)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) 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 erros. More...
 
virtual TypeId GetInstanceTypeId (void) const =0
 Get the most derived TypeId for this Object. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

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

Protected Member Functions

virtual void DoActivateEpsBearerForUe (const Ptr< NetDevice > &ueDevice, const Ptr< EpcTft > &tft, const EpsBearer &bearer) const
 DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE. More...
 
virtual void DoAddX2Interface (const Ptr< EpcX2 > &enb1X2, const Ptr< NetDevice > &enb1LteDev, const Ipv4Address &enb1X2Address, const Ptr< EpcX2 > &enb2X2, const Ptr< NetDevice > &enb2LteDev, const Ipv4Address &enb2X2Address) const
 DoAddX2Interface: Call AddX2Interface on top of the Enb device pointers. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Private Attributes

uint16_t m_gtpcUdpPort
 UDP port where the GTPv2-C Socket is bound, fixed by the standard as 2123. More...
 
uint16_t m_gtpuUdpPort
 UDP port where the GTP-U Socket is bound, fixed by the standard as 2152. More...
 
std::map< uint64_t, Ptr< NetDevice > > m_imsiEnbDeviceMap
 Map storing for each IMSI the corresponding eNB NetDevice. More...
 
Ptr< Nodem_mme
 MME network element. More...
 
Ptr< EpcMmeApplicationm_mmeApp
 MME application. More...
 
Ptr< Nodem_pgw
 PGW network element. More...
 
Ptr< EpcPgwApplicationm_pgwApp
 PGW application. More...
 
Ipv4AddressHelper m_s11Ipv4AddressHelper
 Helper to assign addresses to S11 NetDevices. More...
 
DataRate m_s11LinkDataRate
 The data rate to be used for the next S11 link to be created. More...
 
Time m_s11LinkDelay
 The delay to be used for the next S11 link to be created. More...
 
uint16_t m_s11LinkMtu
 The MTU of the next S11 link to be created. More...
 
Ipv4AddressHelper m_s5Ipv4AddressHelper
 S5 interfaces. More...
 
DataRate m_s5LinkDataRate
 The data rate to be used for the next S5 link to be created. More...
 
Time m_s5LinkDelay
 The delay to be used for the next S5 link to be created. More...
 
uint16_t m_s5LinkMtu
 The MTU of the next S5 link to be created. More...
 
Ptr< Nodem_sgw
 SGW network element. More...
 
Ptr< EpcSgwApplicationm_sgwApp
 SGW application. More...
 
Ptr< VirtualNetDevicem_tunDevice
 TUN device implementing tunneling of user data over GTP-U/UDP/IP. More...
 
Ipv4AddressHelper m_uePgwAddressHelper
 helper to assign IPv4 addresses to UE devices as well as to the TUN device of the SGW/PGW More...
 
Ipv6AddressHelper m_uePgwAddressHelper6
 helper to assign IPv6 addresses to UE devices as well as to the TUN device of the SGW/PGW More...
 
Ipv4AddressHelper m_x2Ipv4AddressHelper
 helper to assign addresses to X2 NetDevices More...
 
DataRate m_x2LinkDataRate
 The data rate to be used for the next X2 link to be created. More...
 
Time m_x2LinkDelay
 The delay to be used for the next X2 link to be created. More...
 
bool m_x2LinkEnablePcap
 Enable PCAP generation for X2 link. More...
 
uint16_t m_x2LinkMtu
 The MTU of the next X2 link to be created. More...
 
std::string m_x2LinkPcapPrefix
 Prefix for the PCAP file for the X2 link. More...
 

Additional Inherited Members

Detailed Description

Create an EPC network with PointToPoint links between the core network nodes.

Introspection did not find any typical Config paths.

This Helper will create an EPC network topology comprising of three nodes: SGW, PGW and MME. The X2-U, X2-C, S5 and S11 interfaces are realized over PointToPoint links.

The S1 interface is not created. So, no backhaul network is built. You have to build your own backhaul network in the simulation program. Or you can use PointToPointEpcHelper or CsmaEpcHelper (instead of this NoBackhaulEpcHelper) to use reference backhaul networks.


Attributes

  • S5LinkDataRate: The data rate to be used for the next S5 link to be created
    • Set with class: DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: constructwriteread
  • S5LinkDelay: The delay to be used for the next S5 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time +9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: constructwriteread
  • S5LinkMtu: The MTU of the next S5 link to be created
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 2000
    • Flags: constructwriteread
  • S11LinkDataRate: The data rate to be used for the next S11 link to be created
    • Set with class: DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: constructwriteread
  • S11LinkDelay: The delay to be used for the next S11 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time +9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: constructwriteread
  • S11LinkMtu: The MTU of the next S11 link to be created.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 2000
    • Flags: constructwriteread
  • X2LinkDataRate: The data rate to be used for the next X2 link to be created
    • Set with class: DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: constructwriteread
  • X2LinkDelay: The delay to be used for the next X2 link to be created
    • Set with class: ns3::TimeValue
    • Underlying type: Time +9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: constructwriteread
  • X2LinkMtu: The MTU of the next X2 link to be created. Note that, because of some big X2 messages, you need a big MTU.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 3000
    • Flags: constructwriteread
  • X2LinkPcapPrefix: Prefix for Pcap generated by X2 link
    • Set with class: StringValue
    • Underlying type: std::string
    • Initial value: x2
    • Flags: constructwriteread
  • X2LinkEnablePcap: Enable Pcap for X2 link
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: constructwriteread

No TraceSources are defined for this type.
Size of this type is 384 bytes (on a 64-bit architecture).

Definition at line 46 of file no-backhaul-epc-helper.h.

Constructor & Destructor Documentation

◆ NoBackhaulEpcHelper()

ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper ( )

Constructor.

Definition at line 49 of file no-backhaul-epc-helper.cc.

References ns3::NetDeviceContainer::Add(), ns3::Node::AddApplication(), ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), ns3::Ipv4AddressHelper::Assign(), AssignUeIpv4Address(), AssignUeIpv6Address(), ns3::Socket::Bind(), ns3::ObjectBase::ConstructSelf(), ns3::Socket::CreateSocket(), ns3::NetDeviceContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::Ipv4Address::GetAny(), ns3::Ipv4::GetNInterfaces(), ns3::Object::GetObject(), ns3::Ipv6StaticRoutingHelper::GetStaticRouting(), ns3::PointToPointHelper::Install(), ns3::InternetStackHelper::Install(), ns3::TypeId::LookupByName(), m_gtpcUdpPort, m_gtpuUdpPort, m_mme, m_mmeApp, m_pgw, m_pgwApp, m_s11Ipv4AddressHelper, m_s11LinkDataRate, m_s11LinkDelay, m_s11LinkMtu, m_s5Ipv4AddressHelper, m_s5LinkDataRate, m_s5LinkDelay, m_s5LinkMtu, m_sgw, m_sgwApp, m_tunDevice, m_uePgwAddressHelper, m_uePgwAddressHelper6, m_x2Ipv4AddressHelper, ns3::MakeCallback(), ns3::Ipv4AddressHelper::NewNetwork(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::EpcPgwApplication::RecvFromTunDevice(), ns3::VirtualNetDevice::SetAddress(), ns3::ObjectBase::SetAttribute(), ns3::Ipv4AddressHelper::SetBase(), ns3::Ipv6AddressHelper::SetBase(), ns3::PointToPointHelper::SetChannelAttribute(), ns3::Ipv6InterfaceContainer::SetDefaultRouteInAllNodes(), ns3::PointToPointHelper::SetDeviceAttribute(), ns3::Ipv6InterfaceContainer::SetForwarding(), and ns3::VirtualNetDevice::SetSendCallback().

+ Here is the call graph for this function:

◆ ~NoBackhaulEpcHelper()

ns3::NoBackhaulEpcHelper::~NoBackhaulEpcHelper ( )
virtual

Destructor.

Definition at line 216 of file no-backhaul-epc-helper.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

◆ ActivateEpsBearer()

uint8_t ns3::NoBackhaulEpcHelper::ActivateEpsBearer ( Ptr< NetDevice ueLteDevice,
uint64_t  imsi,
Ptr< EpcTft tft,
EpsBearer  bearer 
)
overridevirtual

Activate an EPS bearer, setting up the corresponding S1-U tunnel.

Parameters
ueLteDevicethe Ipv4-enabled device of the UE, normally connected via the LTE radio interface
imsithe unique identifier of the UE
tftthe Traffic Flow Template of the new bearer
bearerstruct describing the characteristics of the EPS bearer to be activated
Returns
bearer ID

Implements ns3::EpcHelper.

Definition at line 442 of file no-backhaul-epc-helper.cc.

References DoActivateEpsBearerForUe(), ns3::Object::GetObject(), m_mmeApp, m_pgwApp, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by EpcS1uDlTestCase::DoRun(), and EpcS1uUlTestCase::DoRun().

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

◆ AddEnb()

void ns3::NoBackhaulEpcHelper::AddEnb ( Ptr< Node enbNode,
Ptr< NetDevice lteEnbNetDevice,
std::vector< uint16_t >  cellIds 
)
overridevirtual

◆ AddS1Interface()

void ns3::NoBackhaulEpcHelper::AddS1Interface ( Ptr< Node enb,
Ipv4Address  enbAddress,
Ipv4Address  sgwAddress,
std::vector< uint16_t >  cellIds 
)
overridevirtual

Add an S1 interface between an eNB and a SGW.

Parameters
enbeNB peer of the S1 interface
enbAddresseNB IPv4 address of the S1 interface
sgwAddressSGW IPv4 address of the S1 interface
cellIdscellIds of the eNB

Implements ns3::EpcHelper.

Definition at line 548 of file no-backhaul-epc-helper.cc.

References ns3::Socket::Bind(), ns3::Socket::CreateSocket(), ns3::Node::GetApplication(), ns3::Object::GetObject(), ns3::TypeId::LookupByName(), m_gtpuUdpPort, m_mmeApp, m_sgwApp, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_INFO.

Referenced by ns3::EmuEpcHelper::AddEnb(), and ns3::PointToPointEpcHelper::AddEnb().

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

◆ AddUe()

void ns3::NoBackhaulEpcHelper::AddUe ( Ptr< NetDevice ueLteDevice,
uint64_t  imsi 
)
overridevirtual

Notify the EPC of the existence of a new UE which might attach at a later time.

Parameters
ueLteDevicethe UE device to be attached
imsithe unique identifier of the UE

Implements ns3::EpcHelper.

Definition at line 433 of file no-backhaul-epc-helper.cc.

References m_mmeApp, m_pgwApp, and NS_LOG_FUNCTION.

Referenced by EpcS1uDlTestCase::DoRun(), and EpcS1uUlTestCase::DoRun().

+ Here is the caller graph for this function:

◆ AddX2Interface()

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

◆ AssignStreams()

int64_t ns3::NoBackhaulEpcHelper::AssignStreams ( int64_t  stream)
overridevirtual

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

Parameters
streamfirst stream index to use
Returns
the number of stream indices (possibly zero) that have been assigned

Implements ns3::EpcHelper.

Definition at line 572 of file no-backhaul-epc-helper.cc.

References ns3::NodeContainer::Add(), ns3::InternetStackHelper::AssignStreams(), m_mme, m_pgw, m_sgw, and NS_ABORT_MSG_UNLESS.

+ Here is the call graph for this function:

◆ AssignUeIpv4Address()

◆ AssignUeIpv6Address()

Ipv6InterfaceContainer ns3::NoBackhaulEpcHelper::AssignUeIpv6Address ( NetDeviceContainer  ueDevices)
overridevirtual

Assign IPv6 addresses to UE devices.

Parameters
ueDevicesthe set of UE devices
Returns
the interface container,
See also
Ipv6AddressHelper::Assign() which has similar semantics

Implements ns3::EpcHelper.

Definition at line 513 of file no-backhaul-epc-helper.cc.

References ns3::Ipv6AddressHelper::Assign(), ns3::NetDeviceContainer::Begin(), ns3::NetDeviceContainer::End(), and m_uePgwAddressHelper6.

Referenced by NoBackhaulEpcHelper(), and LteIpv6RoutingTestCase::DoRun().

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

◆ DoActivateEpsBearerForUe()

void ns3::NoBackhaulEpcHelper::DoActivateEpsBearerForUe ( const Ptr< NetDevice > &  ueDevice,
const Ptr< EpcTft > &  tft,
const EpsBearer bearer 
) const
protectedvirtual

DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE.

Parameters
ueDeviceLTE device for the UE
tftTFT
bearerBearer

Definition at line 482 of file no-backhaul-epc-helper.cc.

References ns3::EpcUeNas::ActivateEpsBearer(), NS_LOG_FUNCTION, NS_LOG_WARN, and ns3::Simulator::ScheduleNow().

Referenced by ActivateEpsBearer().

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

◆ DoAddX2Interface()

void ns3::NoBackhaulEpcHelper::DoAddX2Interface ( const Ptr< EpcX2 > &  enb1X2,
const Ptr< NetDevice > &  enb1LteDev,
const Ipv4Address enb1X2Address,
const Ptr< EpcX2 > &  enb2X2,
const Ptr< NetDevice > &  enb2LteDev,
const Ipv4Address enb2X2Address 
) const
protectedvirtual

DoAddX2Interface: Call AddX2Interface on top of the Enb device pointers.

Parameters
enb1X2EPCX2 of ENB1
enb1LteDevLTE device of ENB1
enb1X2AddressAddress for ENB1
enb2X2EPCX2 of ENB2
enb2LteDevLTE device of ENB2
enb2X2AddressAddress for ENB2

Definition at line 402 of file no-backhaul-epc-helper.cc.

References ns3::LteEnbNetDevice::GetCellIds(), ns3::LteEnbNetDevice::GetRrc(), NS_ABORT_MSG_IF, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by AddX2Interface().

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

◆ DoDispose()

void ns3::NoBackhaulEpcHelper::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::EpcHelper.

Reimplemented in ns3::PointToPointEpcHelper.

Definition at line 295 of file no-backhaul-epc-helper.cc.

References ns3::Object::Dispose(), m_mme, m_mmeApp, m_pgw, m_pgwApp, m_sgw, m_sgwApp, m_tunDevice, ns3::MakeNullCallback(), NS_LOG_FUNCTION, and ns3::VirtualNetDevice::SetSendCallback().

Referenced by ns3::EmuEpcHelper::DoDispose(), and ns3::PointToPointEpcHelper::DoDispose().

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

◆ GetInstanceTypeId()

TypeId ns3::NoBackhaulEpcHelper::GetInstanceTypeId ( ) const
overridevirtual

Get the most derived TypeId for this Object.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Returns
The TypeId associated to the most-derived type of this instance.

Reimplemented from ns3::Object.

Reimplemented in ns3::PointToPointEpcHelper.

Definition at line 289 of file no-backhaul-epc-helper.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetPgwNode()

◆ GetSgwNode()

Ptr< Node > ns3::NoBackhaulEpcHelper::GetSgwNode ( ) const
overridevirtual

Get the SGW node.

Returns
a pointer to the SGW

Implements ns3::EpcHelper.

Definition at line 541 of file no-backhaul-epc-helper.cc.

References m_sgw.

Referenced by ns3::EmuEpcHelper::EmuEpcHelper(), and ns3::PointToPointEpcHelper::AddEnb().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetUeDefaultGatewayAddress()

◆ GetUeDefaultGatewayAddress6()

Ipv6Address ns3::NoBackhaulEpcHelper::GetUeDefaultGatewayAddress6 ( )
overridevirtual
Returns
the IPv6 address of the Default Gateway to be used by UEs to reach the internet

Implements ns3::EpcHelper.

Definition at line 533 of file no-backhaul-epc-helper.cc.

References ns3::Ipv6::GetAddress(), ns3::Object::GetObject(), and m_pgw.

Referenced by LteIpv6RoutingTestCase::DoRun().

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

Member Data Documentation

◆ m_gtpcUdpPort

uint16_t ns3::NoBackhaulEpcHelper::m_gtpcUdpPort
private

UDP port where the GTPv2-C Socket is bound, fixed by the standard as 2123.

Definition at line 182 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper().

◆ m_gtpuUdpPort

uint16_t ns3::NoBackhaulEpcHelper::m_gtpuUdpPort
private

UDP port where the GTP-U Socket is bound, fixed by the standard as 2152.

Definition at line 157 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and AddS1Interface().

◆ m_imsiEnbDeviceMap

std::map<uint64_t, Ptr<NetDevice> > ns3::NoBackhaulEpcHelper::m_imsiEnbDeviceMap
private

Map storing for each IMSI the corresponding eNB NetDevice.

Definition at line 211 of file no-backhaul-epc-helper.h.

◆ m_mme

Ptr<Node> ns3::NoBackhaulEpcHelper::m_mme
private

MME network element.

Definition at line 132 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), AssignStreams(), and DoDispose().

◆ m_mmeApp

Ptr<EpcMmeApplication> ns3::NoBackhaulEpcHelper::m_mmeApp
private

MME application.

Definition at line 147 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), ActivateEpsBearer(), AddS1Interface(), AddUe(), and DoDispose().

◆ m_pgw

Ptr<Node> ns3::NoBackhaulEpcHelper::m_pgw
private

◆ m_pgwApp

Ptr<EpcPgwApplication> ns3::NoBackhaulEpcHelper::m_pgwApp
private

PGW application.

Definition at line 142 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), ActivateEpsBearer(), AddUe(), and DoDispose().

◆ m_s11Ipv4AddressHelper

Ipv4AddressHelper ns3::NoBackhaulEpcHelper::m_s11Ipv4AddressHelper
private

Helper to assign addresses to S11 NetDevices.

Definition at line 162 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper().

◆ m_s11LinkDataRate

DataRate ns3::NoBackhaulEpcHelper::m_s11LinkDataRate
private

The data rate to be used for the next S11 link to be created.

Definition at line 167 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_s11LinkDelay

Time ns3::NoBackhaulEpcHelper::m_s11LinkDelay
private

The delay to be used for the next S11 link to be created.

Definition at line 172 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_s11LinkMtu

uint16_t ns3::NoBackhaulEpcHelper::m_s11LinkMtu
private

The MTU of the next S11 link to be created.

Definition at line 177 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_s5Ipv4AddressHelper

Ipv4AddressHelper ns3::NoBackhaulEpcHelper::m_s5Ipv4AddressHelper
private

S5 interfaces.

Helper to assign addresses to S5 NetDevices

Definition at line 191 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper().

◆ m_s5LinkDataRate

DataRate ns3::NoBackhaulEpcHelper::m_s5LinkDataRate
private

The data rate to be used for the next S5 link to be created.

Definition at line 196 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_s5LinkDelay

Time ns3::NoBackhaulEpcHelper::m_s5LinkDelay
private

The delay to be used for the next S5 link to be created.

Definition at line 201 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_s5LinkMtu

uint16_t ns3::NoBackhaulEpcHelper::m_s5LinkMtu
private

The MTU of the next S5 link to be created.

Definition at line 206 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and GetTypeId().

◆ m_sgw

Ptr<Node> ns3::NoBackhaulEpcHelper::m_sgw
private

SGW network element.

Definition at line 127 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), AssignStreams(), DoDispose(), and GetSgwNode().

◆ m_sgwApp

Ptr<EpcSgwApplication> ns3::NoBackhaulEpcHelper::m_sgwApp
private

SGW application.

Definition at line 137 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), AddS1Interface(), and DoDispose().

◆ m_tunDevice

Ptr<VirtualNetDevice> ns3::NoBackhaulEpcHelper::m_tunDevice
private

TUN device implementing tunneling of user data over GTP-U/UDP/IP.

Definition at line 152 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and DoDispose().

◆ m_uePgwAddressHelper

Ipv4AddressHelper ns3::NoBackhaulEpcHelper::m_uePgwAddressHelper
private

helper to assign IPv4 addresses to UE devices as well as to the TUN device of the SGW/PGW

Definition at line 113 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and AssignUeIpv4Address().

◆ m_uePgwAddressHelper6

Ipv6AddressHelper ns3::NoBackhaulEpcHelper::m_uePgwAddressHelper6
private

helper to assign IPv6 addresses to UE devices as well as to the TUN device of the SGW/PGW

Definition at line 117 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and AssignUeIpv6Address().

◆ m_x2Ipv4AddressHelper

Ipv4AddressHelper ns3::NoBackhaulEpcHelper::m_x2Ipv4AddressHelper
private

helper to assign addresses to X2 NetDevices

Definition at line 216 of file no-backhaul-epc-helper.h.

Referenced by NoBackhaulEpcHelper(), and AddX2Interface().

◆ m_x2LinkDataRate

DataRate ns3::NoBackhaulEpcHelper::m_x2LinkDataRate
private

The data rate to be used for the next X2 link to be created.

Definition at line 221 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().

◆ m_x2LinkDelay

Time ns3::NoBackhaulEpcHelper::m_x2LinkDelay
private

The delay to be used for the next X2 link to be created.

Definition at line 226 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().

◆ m_x2LinkEnablePcap

bool ns3::NoBackhaulEpcHelper::m_x2LinkEnablePcap
private

Enable PCAP generation for X2 link.

Definition at line 237 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().

◆ m_x2LinkMtu

uint16_t ns3::NoBackhaulEpcHelper::m_x2LinkMtu
private

The MTU of the next X2 link to be created.

Note that, because of some big X2 messages, you need a big MTU.

Definition at line 232 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().

◆ m_x2LinkPcapPrefix

std::string ns3::NoBackhaulEpcHelper::m_x2LinkPcapPrefix
private

Prefix for the PCAP file for the X2 link.

Definition at line 242 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().


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