A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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.
 
 ~NoBackhaulEpcHelper () override
 Destructor.
 
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.
 
void AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds) override
 Add an eNB to the EPC.
 
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.
 
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.
 
void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2) override
 Add an X2 interface between two eNB.
 
int64_t AssignStreams (int64_t stream) override
 Assign a fixed random variable stream number to the random variables used.
 
Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices) override
 Assign IPv4 addresses to UE devices.
 
Ipv6InterfaceContainer AssignUeIpv6Address (NetDeviceContainer ueDevices) override
 Assign IPv6 addresses to UE devices.
 
void DoDispose () override
 Destructor implementation.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
Ptr< NodeGetPgwNode () const override
 Get the PGW node.
 
Ptr< NodeGetSgwNode () const override
 Get the SGW node.
 
Ipv4Address GetUeDefaultGatewayAddress () override
 
Ipv6Address GetUeDefaultGatewayAddress6 () override
 
- Public Member Functions inherited from ns3::EpcHelper
 EpcHelper ()
 Constructor.
 
 ~EpcHelper () override
 Destructor.
 
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.
 
virtual void AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds)=0
 Add an eNB to the EPC.
 
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.
 
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.
 
virtual void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2)=0
 Add an X2 interface between two eNB.
 
virtual int64_t AssignStreams (int64_t stream)=0
 Assign a fixed random variable stream number to the random variables used.
 
virtual Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices)=0
 Assign IPv4 addresses to UE devices.
 
virtual Ipv6InterfaceContainer AssignUeIpv6Address (NetDeviceContainer ueDevices)=0
 Assign IPv6 addresses to UE devices.
 
void DoDispose () override
 Destructor implementation.
 
virtual Ptr< NodeGetPgwNode () const =0
 Get the PGW node.
 
virtual Ptr< NodeGetSgwNode () const =0
 Get the SGW node.
 
virtual Ipv4Address GetUeDefaultGatewayAddress ()=0
 
virtual Ipv6Address GetUeDefaultGatewayAddress6 ()=0
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

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

Protected Member Functions

virtual void DoActivateEpsBearerForUe (const Ptr< NetDevice > &ueDevice, const Ptr< EpcTft > &tft, const EpsBearer &bearer) const
 DoActivateEpsBearerForUe: Schedule ActivateEpsBearer on the UE.
 
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.
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Private Attributes

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

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

  • S11LinkDataRate: The data rate to be used for the next S11 link to be created
  • 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
  • S5LinkDataRate: The data rate to be used for the next S5 link to be created
  • 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
  • X2LinkDataRate: The data rate to be used for the next X2 link to be created
  • 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
  • X2LinkEnablePcap: Enable Pcap for X2 link
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • 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: ns3::StringValue
    • Underlying type: std::string
    • Initial value: x2
    • Flags: constructwriteread

No TraceSources are defined for this type.
Size of this type is 408 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 48 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::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::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 ( )
override

Destructor.

Definition at line 229 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 467 of file no-backhaul-epc-helper.cc.

References DoActivateEpsBearerForUe(), m_mmeApp, m_pgwApp, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

+ Here is the call graph for this function:

◆ AddEnb()

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

Add an eNB to the EPC.

Parameters
enbNodethe previously created eNB node which is to be added to the EPC
lteEnbNetDevicethe LteEnbNetDevice of the eNB node
cellIdsIDs of cells served by this eNB

Implements ns3::EpcHelper.

Reimplemented in ns3::PointToPointEpcHelper.

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

References ns3::Socket::CreateSocket(), ns3::Mac48Address::GetBroadcast(), ns3::Ipv4::GetNInterfaces(), ns3::TypeId::LookupByName(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Ipv4L3Protocol::PROT_NUMBER, ns3::Ipv6L3Protocol::PROT_NUMBER, ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::PacketSocketAddress::SetProtocol(), and ns3::PacketSocketAddress::SetSingleDevice().

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:

◆ 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 572 of file no-backhaul-epc-helper.cc.

References ns3::Socket::CreateSocket(), 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 458 of file no-backhaul-epc-helper.cc.

References m_mmeApp, m_pgwApp, and NS_LOG_FUNCTION.

◆ AddX2Interface()

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

Add an X2 interface between two eNB.

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

Implements ns3::EpcHelper.

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

References ns3::Ipv4AddressHelper::Assign(), DoAddX2Interface(), ns3::PcapHelperForDevice::EnablePcapAll(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::Ipv4::GetNInterfaces(), ns3::PointToPointHelper::Install(), m_x2Ipv4AddressHelper, m_x2LinkDataRate, m_x2LinkDelay, m_x2LinkEnablePcap, m_x2LinkMtu, m_x2LinkPcapPrefix, ns3::Ipv4AddressHelper::NewNetwork(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::PointToPointHelper::SetChannelAttribute(), and ns3::PointToPointHelper::SetDeviceAttribute().

+ Here is the call graph for this function:

◆ 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 600 of file no-backhaul-epc-helper.cc.

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

+ Here is the call graph for this function:

◆ AssignUeIpv4Address()

Ipv4InterfaceContainer ns3::NoBackhaulEpcHelper::AssignUeIpv4Address ( NetDeviceContainer  ueDevices)
overridevirtual

Assign IPv4 addresses to UE devices.

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

Implements ns3::EpcHelper.

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

References ns3::Ipv4AddressHelper::Assign(), and m_uePgwAddressHelper.

Referenced by NoBackhaulEpcHelper(), LteX2HandoverMeasuresTestCase::DoRun(), and LteX2HandoverTestCase::DoRun().

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

◆ 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 541 of file no-backhaul-epc-helper.cc.

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

Referenced by NoBackhaulEpcHelper().

+ 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 510 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 426 of file no-backhaul-epc-helper.cc.

References NS_ABORT_MSG_IF, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by AddX2Interface().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::NoBackhaulEpcHelper::DoDispose ( )
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 309 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 303 of file no-backhaul-epc-helper.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetPgwNode()

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

Get the PGW node.

Returns
a pointer to the PGW node The primary use intended for this method is to allow the user to configure the SGi interface of the PGW, i.e., to connect the PGW to the internet.

Implements ns3::EpcHelper.

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

References m_pgw.

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

+ Here is the caller graph for this function:

◆ GetSgwNode()

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

Get the SGW node.

Returns
a pointer to the SGW

Implements ns3::EpcHelper.

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

TypeId ns3::NoBackhaulEpcHelper::GetTypeId ( )
static

Register this type.

Returns
The object TypeId.

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

References m_s11LinkDataRate, m_s11LinkDelay, m_s11LinkMtu, m_s5LinkDataRate, m_s5LinkDelay, m_s5LinkMtu, m_x2LinkDataRate, m_x2LinkDelay, m_x2LinkEnablePcap, m_x2LinkMtu, m_x2LinkPcapPrefix, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeDataRateAccessor(), ns3::MakeDataRateChecker(), ns3::MakeStringAccessor(), ns3::MakeStringChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeUintegerAccessor(), NS_LOG_FUNCTION_NOARGS, ns3::Seconds(), and ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

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

◆ GetUeDefaultGatewayAddress()

Ipv4Address ns3::NoBackhaulEpcHelper::GetUeDefaultGatewayAddress ( )
overridevirtual
Returns
the IPv4 address of the Default Gateway to be used by UEs to reach the internet

Implements ns3::EpcHelper.

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

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

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

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

◆ 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 559 of file no-backhaul-epc-helper.cc.

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

+ Here is the call 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 191 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 166 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 220 of file no-backhaul-epc-helper.h.

◆ m_mme

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

MME network element.

Definition at line 141 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 156 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 151 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 171 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 176 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 181 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 186 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 200 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 205 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 210 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 215 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 136 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 146 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 161 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 122 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 126 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 225 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 230 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 235 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 246 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 241 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 251 of file no-backhaul-epc-helper.h.

Referenced by AddX2Interface(), and GetTypeId().


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