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

Helper class to handle the creation of the EPC entities and protocols. More...

#include <epc-helper.h>

+ Inheritance diagram for ns3::EpcHelper:

Public Member Functions

 EpcHelper ()
 
virtual ~EpcHelper ()
 
void ActivateEpsBearer (Ptr< NetDevice > ueLteDevice, uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer)
 
void AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, uint16_t cellId)
 
void AddUe (Ptr< NetDevice > ueLteDevice, uint64_t imsi)
 
void AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2)
 
Ipv4InterfaceContainer AssignUeIpv4Address (NetDeviceContainer ueDevices)
 
virtual void DoDispose ()
 
Ptr< NodeGetPgwNode ()
 
Ipv4Address GetUeDefaultGatewayAddress ()
 
- Public Member Functions inherited from ns3::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 (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
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)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Attributes

uint16_t m_gtpuUdpPort
 
std::map< uint64_t, Ptr
< NetDevice > > 
m_imsiEnbDeviceMap
 
Ptr< EpcMmem_mme
 
Ipv4AddressHelper m_s1uIpv4AddressHelper
 
DataRate m_s1uLinkDataRate
 
Time m_s1uLinkDelay
 
uint16_t m_s1uLinkMtu
 
Ptr< Nodem_sgwPgw
 
Ptr< EpcSgwPgwApplicationm_sgwPgwApp
 
Ptr< VirtualNetDevicem_tunDevice
 
Ipv4AddressHelper m_ueAddressHelper
 
Ipv4AddressHelper m_x2Ipv4AddressHelper
 
DataRate m_x2LinkDataRate
 
Time m_x2LinkDelay
 
uint16_t m_x2LinkMtu
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

Helper class to handle the creation of the EPC entities and protocols.

This Helper will create an EPC network topology comprising of a single node that implements both the SGW and PGW functionality, and is connected to all the eNBs in the simulation by means of the S1-U interface.

Doxygen introspection did not find any typical Config paths.

Attributes

  • S1uLinkDataRate: The data rate to be used for the next S1-U link to be created
    • Set with class: DataRateValue
    • Underlying type: DataRate
    • Initial value: 10000000000bps
    • Flags: construct write read
  • S1uLinkDelay: The delay to be used for the next S1-U link to be created
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read
  • S1uLinkMtu: The MTU of the next S1-U link to be created. Note that, because of the additional GTP/UDP/IP tunneling overhead, you need a MTU larger than the end-to-end MTU that you want to support.
  • 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: construct write read
  • X2LinkDelay: The delay to be used for the next X2 link to be created
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +0.0ns
    • Flags: construct write read
  • X2LinkMtu: The MTU of the next X2 link to be created. Note that, because of some big X2 messages, you need a big MTU.

No TraceSources are defined for this type.

Definition at line 49 of file epc-helper.h.

Constructor & Destructor Documentation

ns3::EpcHelper::~EpcHelper ( )
virtual

Destructor

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

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::EpcHelper::ActivateEpsBearer ( Ptr< NetDevice ueLteDevice,
uint64_t  imsi,
Ptr< EpcTft tft,
EpsBearer  bearer 
)

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

Definition at line 293 of file epc-helper.cc.

References ns3::Object::GetObject(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

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

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

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

Definition at line 282 of file epc-helper.cc.

References NS_LOG_FUNCTION.

Ipv4InterfaceContainer ns3::EpcHelper::AssignUeIpv4Address ( NetDeviceContainer  ueDevices)

Assign IPv4 addresses to UE devices

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

Definition at line 326 of file epc-helper.cc.

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

void ns3::EpcHelper::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 151 of file epc-helper.cc.

References ns3::Object::Dispose(), ns3::MakeNullCallback(), NS_LOG_FUNCTION, and ns3::VirtualNetDevice::SetSendCallback().

Ptr< Node > ns3::EpcHelper::GetPgwNode ( )
Returns
a pointer to the node implementing PGW functionality. Note that in this particular implementation this node will also hold the SGW functionality. The primary use intended for this method is to allow the user to configure the Gi interface of the PGW, i.e., to connect the PGW to the internet.

Definition at line 319 of file epc-helper.cc.

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

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

References ns3::Object::GetObject().

Member Data Documentation

uint16_t ns3::EpcHelper::m_gtpuUdpPort
private

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

Definition at line 168 of file epc-helper.h.

Referenced by AddEnb(), and EpcHelper().

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

Map storing for each IMSI the corresponding eNB NetDevice

Definition at line 174 of file epc-helper.h.

Ipv4AddressHelper ns3::EpcHelper::m_s1uIpv4AddressHelper
private

S1-U interfaces helper to assign addresses to S1-U NetDevices

Definition at line 159 of file epc-helper.h.

Referenced by AddEnb(), and EpcHelper().

Ipv4AddressHelper ns3::EpcHelper::m_ueAddressHelper
private

SGW-PGW network element helper to assign addresses to UE devices as well as to the TUN device of the SGW/PGW

Definition at line 145 of file epc-helper.h.

Referenced by AssignUeIpv4Address(), and EpcHelper().

Ipv4AddressHelper ns3::EpcHelper::m_x2Ipv4AddressHelper
private

helper to assign addresses to X2 NetDevices

Definition at line 179 of file epc-helper.h.

Referenced by AddX2Interface(), and EpcHelper().


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