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 () |
![]() | |
EpcHelper () | |
Constructor. More... | |
virtual | ~EpcHelper () |
Destructor. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
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 50 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 105 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 296 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.
Referenced by EpcS1uDlTestCase::DoRun(), and EpcS1uUlTestCase::DoRun().
|
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 162 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().
Referenced by EpcS1uDlTestCase::DoRun(), and EpcS1uUlTestCase::DoRun().
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 285 of file point-to-point-epc-helper.cc.
References m_mme, m_sgwPgwApp, and NS_LOG_FUNCTION.
Referenced by EpcS1uDlTestCase::DoRun(), and EpcS1uUlTestCase::DoRun().
|
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 238 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 329 of file point-to-point-epc-helper.cc.
References ns3::Ipv4AddressHelper::Assign(), and m_ueAddressHelper.
Referenced by LteX2HandoverTestCase::DoRun(), EpcS1uDlTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), and 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 151 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 322 of file point-to-point-epc-helper.cc.
References m_sgwPgw.
Referenced by LteX2HandoverTestCase::DoRun(), EpcS1uDlTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), and main().
|
static |
Definition at line 111 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 337 of file point-to-point-epc-helper.cc.
References ns3::Object::GetObject(), and m_sgwPgw.
Referenced by LteX2HandoverTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), and 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().