Create an EPC network with PointToPoint links. More...
#include <point-to-point-epc-helper.h>
Public Member Functions | |
PointToPointEpcHelper () | |
Constructor. More... | |
virtual | ~PointToPointEpcHelper () |
Destructor. More... | |
virtual void | ActivateEpsBearer (Ptr< NetDevice > ueLteDevice, uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer) |
Activate an EPS bearer, setting up the corresponding S1-U tunnel. More... | |
virtual void | AddEnb (Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, uint16_t cellId) |
Add an eNB to the EPC. More... | |
virtual void | AddUe (Ptr< NetDevice > ueLteDevice, uint64_t imsi) |
Notify the EPC of the existance of a new UE which might attach at a later time. More... | |
virtual void | AddX2Interface (Ptr< Node > enbNode1, Ptr< Node > enbNode2) |
Add an X2 interface between two eNB. More... | |
virtual Ipv4InterfaceContainer | AssignUeIpv4Address (NetDeviceContainer ueDevices) |
Assign IPv4 addresses to UE devices. More... | |
virtual void | DoDispose () |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual Ptr< Node > | GetPgwNode () |
virtual Ipv4Address | GetUeDefaultGatewayAddress () |
Public Member Functions inherited from ns3::EpcHelper | |
EpcHelper () | |
Constructor. More... | |
virtual | ~EpcHelper () |
Destructor. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
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) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. 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 |
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::EpcHelper | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Attributes | |
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< EpcMme > | m_mme |
Ipv4AddressHelper | m_s1uIpv4AddressHelper |
S1-U interfaces. More... | |
DataRate | m_s1uLinkDataRate |
Time | m_s1uLinkDelay |
uint16_t | m_s1uLinkMtu |
Ptr< Node > | m_sgwPgw |
Ptr< EpcSgwPgwApplication > | m_sgwPgwApp |
Ptr< VirtualNetDevice > | m_tunDevice |
Ipv4AddressHelper | m_ueAddressHelper |
SGW-PGW network element. More... | |
Ipv4AddressHelper | m_x2Ipv4AddressHelper |
helper to assign addresses to X2 NetDevices More... | |
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) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
Create an EPC network with PointToPoint links.
Doxygen introspection did not find any typical Config paths.
This Helper will create an EPC network topology comprising of a single node that implements both the SGW and PGW functionality, and an MME node. The S1-U, X2-U and X2-C interfaces are realized over PointToPoint links.
No TraceSources are defined for this type.
Definition at line 50 of file point-to-point-epc-helper.h.
ns3::PointToPointEpcHelper::PointToPointEpcHelper | ( | ) |
Constructor.
Definition at line 52 of file point-to-point-epc-helper.cc.
References ns3::NetDeviceContainer::Add(), ns3::Node::AddApplication(), ns3::Node::AddDevice(), ns3::Mac48Address::Allocate(), ns3::Ipv4AddressHelper::Assign(), ns3::Socket::Bind(), ns3::Socket::CreateSocket(), ns3::Ipv4Address::GetAny(), ns3::InternetStackHelper::Install(), ns3::TypeId::LookupByName(), m_gtpuUdpPort, m_mme, m_s1uIpv4AddressHelper, m_sgwPgw, m_sgwPgwApp, m_tunDevice, m_ueAddressHelper, m_x2Ipv4AddressHelper, ns3::MakeCallback(), NS_ASSERT, NS_LOG_FUNCTION, ns3::EpcSgwPgwApplication::RecvFromTunDevice(), ns3::VirtualNetDevice::SetAddress(), ns3::ObjectBase::SetAttribute(), and ns3::Ipv4AddressHelper::SetBase().
|
virtual |
Destructor.
Definition at line 107 of file point-to-point-epc-helper.cc.
References NS_LOG_FUNCTION.
|
virtual |
Activate an EPS bearer, setting up the corresponding S1-U tunnel.
ueLteDevice | the Ipv4-enabled device of the UE, normally connected via the LTE radio interface |
imsi | the unique identifier of the UE |
tft | the Traffic Flow Template of the new bearer |
bearer | struct describing the characteristics of the EPS bearer to be activated |
Implements ns3::EpcHelper.
Definition at line 298 of file point-to-point-epc-helper.cc.
References ns3::Object::GetObject(), m_mme, m_sgwPgwApp, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
|
virtual |
Add an eNB to the EPC.
enbNode | the previosuly created eNB node which is to be added to the EPC |
lteEnbNetDevice | the LteEnbNetDevice of the eNB node |
cellId | ID of the eNB |
Implements ns3::EpcHelper.
Definition at line 164 of file point-to-point-epc-helper.cc.
References ns3::NodeContainer::Add(), ns3::Node::AddApplication(), ns3::Object::AggregateObject(), ns3::Ipv4AddressHelper::Assign(), ns3::Socket::Bind(), ns3::Socket::Connect(), ns3::Socket::CreateSocket(), ns3::NetDeviceContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::Node::GetApplication(), ns3::Mac48Address::GetBroadcast(), ns3::Node::GetNApplications(), ns3::Ipv4::GetNInterfaces(), ns3::Object::GetObject(), ns3::PointToPointHelper::Install(), ns3::InternetStackHelper::Install(), ns3::TypeId::LookupByName(), m_gtpuUdpPort, m_mme, m_s1uIpv4AddressHelper, m_s1uLinkDataRate, m_s1uLinkDelay, m_s1uLinkMtu, m_sgwPgw, m_sgwPgwApp, ns3::Ipv4AddressHelper::NewNetwork(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, ns3::Ipv4L3Protocol::PROT_NUMBER, ns3::PointToPointHelper::SetChannelAttribute(), ns3::PointToPointHelper::SetDeviceAttribute(), ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::PacketSocketAddress::SetProtocol(), and ns3::PacketSocketAddress::SetSingleDevice().
Notify the EPC of the existance of a new UE which might attach at a later time.
ueLteDevice | the UE device to be attached |
imsi | the unique identifier of the UE |
Implements ns3::EpcHelper.
Definition at line 287 of file point-to-point-epc-helper.cc.
References m_mme, m_sgwPgwApp, and NS_LOG_FUNCTION.
|
virtual |
Add an X2 interface between two eNB.
enbNode1 | one eNB peer of the X2 interface |
enbNode2 | the other eNB peer of the X2 interface |
Implements ns3::EpcHelper.
Definition at line 240 of file point-to-point-epc-helper.cc.
References ns3::NodeContainer::Add(), ns3::Ipv4AddressHelper::Assign(), ns3::NetDeviceContainer::Get(), ns3::Ipv4InterfaceContainer::GetAddress(), ns3::LteEnbNetDevice::GetCellId(), ns3::Node::GetDevice(), ns3::Ipv4::GetNInterfaces(), ns3::Object::GetObject(), ns3::PointToPointHelper::Install(), m_x2Ipv4AddressHelper, m_x2LinkDataRate, m_x2LinkDelay, m_x2LinkMtu, ns3::Ipv4AddressHelper::NewNetwork(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::PointToPointHelper::SetChannelAttribute(), and ns3::PointToPointHelper::SetDeviceAttribute().
|
virtual |
Assign IPv4 addresses to UE devices.
ueDevices | the set of UE devices |
Implements ns3::EpcHelper.
Definition at line 331 of file point-to-point-epc-helper.cc.
References ns3::Ipv4AddressHelper::Assign(), and m_ueAddressHelper.
Referenced by main().
|
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::EpcHelper.
Definition at line 153 of file point-to-point-epc-helper.cc.
References ns3::Object::Dispose(), m_sgwPgw, m_sgwPgwApp, m_tunDevice, ns3::MakeNullCallback(), NS_LOG_FUNCTION, and ns3::VirtualNetDevice::SetSendCallback().
Implements ns3::EpcHelper.
Definition at line 324 of file point-to-point-epc-helper.cc.
References m_sgwPgw.
Referenced by main().
|
static |
Definition at line 113 of file point-to-point-epc-helper.cc.
References m_s1uLinkDataRate, m_s1uLinkDelay, m_s1uLinkMtu, m_x2LinkDataRate, m_x2LinkDelay, m_x2LinkMtu, ns3::MakeTimeChecker(), and ns3::TypeId::SetParent().
|
virtual |
Implements ns3::EpcHelper.
Definition at line 339 of file point-to-point-epc-helper.cc.
References ns3::Object::GetObject(), and m_sgwPgw.
Referenced by main().
|
private |
UDP port where the GTP-U Socket is bound, fixed by the standard as 2152.
Definition at line 111 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), and PointToPointEpcHelper().
Map storing for each IMSI the corresponding eNB NetDevice.
Definition at line 117 of file point-to-point-epc-helper.h.
Definition at line 93 of file point-to-point-epc-helper.h.
Referenced by ActivateEpsBearer(), AddEnb(), AddUe(), and PointToPointEpcHelper().
|
private |
S1-U interfaces.
helper to assign addresses to S1-U NetDevices
Definition at line 102 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), and PointToPointEpcHelper().
|
private |
Definition at line 104 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), and GetTypeId().
|
private |
Definition at line 105 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), and GetTypeId().
|
private |
Definition at line 106 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), and GetTypeId().
Definition at line 90 of file point-to-point-epc-helper.h.
Referenced by AddEnb(), DoDispose(), GetPgwNode(), GetUeDefaultGatewayAddress(), and PointToPointEpcHelper().
|
private |
Definition at line 91 of file point-to-point-epc-helper.h.
Referenced by ActivateEpsBearer(), AddEnb(), AddUe(), DoDispose(), and PointToPointEpcHelper().
|
private |
Definition at line 92 of file point-to-point-epc-helper.h.
Referenced by DoDispose(), and PointToPointEpcHelper().
|
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 88 of file point-to-point-epc-helper.h.
Referenced by AssignUeIpv4Address(), and PointToPointEpcHelper().
|
private |
helper to assign addresses to X2 NetDevices
Definition at line 122 of file point-to-point-epc-helper.h.
Referenced by AddX2Interface(), and PointToPointEpcHelper().
|
private |
Definition at line 124 of file point-to-point-epc-helper.h.
Referenced by AddX2Interface(), and GetTypeId().
|
private |
Definition at line 125 of file point-to-point-epc-helper.h.
Referenced by AddX2Interface(), and GetTypeId().
|
private |
Definition at line 126 of file point-to-point-epc-helper.h.
Referenced by AddX2Interface(), and GetTypeId().