A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
emu-epc-helper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011-2019 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors:
7 * Jaume Nin <jnin@cttc.es>
8 * Nicola Baldo <nbaldo@cttc.es>
9 * Manuel Requena <manuel.requena@cttc.es>
10 */
11
12#ifndef EMU_EPC_HELPER_H
13#define EMU_EPC_HELPER_H
14
16
17namespace ns3
18{
19
20/**
21 * \ingroup lte
22 *
23 * \brief Create an EPC network using EmuFdNetDevice
24 *
25 * This Helper will create an EPC network topology comprising of a
26 * single node that implements both the SGW and PGW functionality, and
27 * an MME node. The S1-U, X2-U and X2-C interfaces are realized using
28 * EmuFdNetDevice; in particular, one device is used to send all the
29 * traffic related to these interfaces.
30 */
32{
33 public:
34 /**
35 * Constructor
36 */
38
39 /**
40 * Destructor
41 */
42 ~EmuEpcHelper() override;
43
44 // inherited from Object
45 /**
46 * Register this type.
47 * \return The object TypeId.
48 */
49 static TypeId GetTypeId();
50 TypeId GetInstanceTypeId() const override;
51 void DoDispose() override;
52
53 // inherited from EpcHelper
54 void AddEnb(Ptr<Node> enbNode,
55 Ptr<NetDevice> lteEnbNetDevice,
56 std::vector<uint16_t> cellIds) override;
57 void AddX2Interface(Ptr<Node> enbNode1, Ptr<Node> enbNode2) override;
58
59 private:
60 /**
61 * helper to assign addresses to S1-U NetDevices
62 */
64
65 /**
66 * Container for Ipv4Interfaces of the SGW
67 */
69
70 /**
71 * The name of the device used for the S1-U interface of the SGW
72 */
73 std::string m_sgwDeviceName;
74
75 /**
76 * The name of the device used for the S1-U interface of the eNB
77 */
78 std::string m_enbDeviceName;
79
80 /**
81 * MAC address used for the SGW
82 */
83 std::string m_sgwMacAddress;
84
85 /**
86 * First 5 bytes of the Enb MAC address base
87 */
89};
90
91} // namespace ns3
92
93#endif // EMU_EPC_HELPER_H
Create an EPC network using EmuFdNetDevice.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
EmuEpcHelper()
Constructor.
static TypeId GetTypeId()
Register this type.
~EmuEpcHelper() override
Destructor.
Ipv4AddressHelper m_epcIpv4AddressHelper
helper to assign addresses to S1-U NetDevices
std::string m_enbMacAddressBase
First 5 bytes of the Enb MAC address base.
void DoDispose() override
Destructor implementation.
std::string m_enbDeviceName
The name of the device used for the S1-U interface of the eNB.
std::string m_sgwDeviceName
The name of the device used for the S1-U interface of the SGW.
std::string m_sgwMacAddress
MAC address used for the SGW.
void AddX2Interface(Ptr< Node > enbNode1, Ptr< Node > enbNode2) override
Add an X2 interface between two eNB.
Ipv4InterfaceContainer m_sgwIpIfaces
Container for Ipv4Interfaces of the SGW.
void AddEnb(Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds) override
Add an eNB to the EPC.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Create an EPC network with PointToPoint links between the core network nodes.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
Definition type-id.h:48
Every class exported by the ns3 library is enclosed in the ns3 namespace.