23 #ifndef EMU_EPC_HELPER_H 24 #define EMU_EPC_HELPER_H 26 #include <ns3/object.h> 27 #include <ns3/ipv4-address-helper.h> 28 #include <ns3/ipv6-address-helper.h> 29 #include <ns3/data-rate.h> 30 #include <ns3/epc-tft.h> 31 #include <ns3/eps-bearer.h> 32 #include <ns3/epc-helper.h> 38 class VirtualNetDevice;
39 class EpcSgwPgwApplication;
170 #endif // EMU_EPC_HELPER_H static TypeId GetTypeId(void)
Register this type.
virtual uint8_t ActivateEpsBearer(Ptr< NetDevice > ueLteDevice, uint64_t imsi, Ptr< EpcTft > tft, EpsBearer bearer)
Activate an EPS bearer, setting up the corresponding S1-U tunnel.
Keep track of a set of IPv6 interfaces.
holds a vector of std::pair of Ptr<Ipv4> and interface index.
uint16_t m_gtpuUdpPort
UDP port where the GTP-U Socket is bound, fixed by the standard as 2152.
std::string m_sgwDeviceName
The name of the device used for the S1-U interface of the SGW.
Ipv4InterfaceContainer m_sgwIpIfaces
Container for Ipv4Interfaces of the SGW/PGW.
EmuEpcHelper()
Constructor.
std::map< uint64_t, Ptr< NetDevice > > m_imsiEnbDeviceMap
Map storing for each IMSI the corresponding eNB NetDevice.
Ipv4AddressHelper m_uePgwAddressHelper
helper to assign IPv4 addresses to UE devices as well as to the TUN device of the SGW/PGW ...
virtual void AddUe(Ptr< NetDevice > ueLteDevice, uint64_t imsi)
Notify the EPC of the existence of a new UE which might attach at a later time.
virtual Ipv6Address GetUeDefaultGatewayAddress6()
virtual void DoInitialize()
Initialize() implementation.
This class contains the specification of EPS Bearers.
virtual Ipv6InterfaceContainer AssignUeIpv6Address(NetDeviceContainer ueDevices)
Assign IPv6 addresses to UE devices.
holds a vector of ns3::NetDevice pointers
virtual void AddX2Interface(Ptr< Node > enbNode1, Ptr< Node > enbNode2)
Add an X2 interface between two eNB.
virtual void AddEnb(Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, uint16_t cellId)
Add an eNB to the EPC.
TypeId GetInstanceTypeId() const
Get the most derived TypeId for this Object.
Create an EPC network using EmuFdNetDevice.
std::string m_enbMacAddressBase
First 5 bytes of the Enb MAC address base.
std::string m_sgwMacAddress
MAC address used for the SGW.
Base helper class to handle the creation of the EPC entities.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual Ipv4Address GetUeDefaultGatewayAddress()
virtual Ipv4InterfaceContainer AssignUeIpv4Address(NetDeviceContainer ueDevices)
Assign IPv4 addresses to UE devices.
virtual ~EmuEpcHelper()
Destructor.
Ptr< EpcSgwPgwApplication > m_sgwPgwApp
SGW-PGW application.
Helper class to auto-assign global IPv6 unicast addresses.
Describes an IPv6 address.
Ipv4 addresses are stored in host order in this class.
virtual Ptr< Node > GetPgwNode()
std::string m_enbDeviceName
The name of the device used for the S1-U interface of the eNB.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Ipv6AddressHelper m_uePgwAddressHelper6
helper to assign IPv6 addresses to UE devices as well as to the TUN device of the SGW/PGW ...
Ipv4AddressHelper m_epcIpv4AddressHelper
helper to assign addresses to S1-U NetDevices
virtual void DoDispose()
Destructor implementation.
Ptr< VirtualNetDevice > m_tunDevice
TUN device containing IPv4 address and implementing tunneling of user data over GTP-U/UDP/IP.
a unique identifier for an interface.
Ptr< Node > m_sgwPgw
SGW-PGW network element.
Ptr< EpcMme > m_mme
MME network element.