A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
point-to-point-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 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Authors:
18 * Jaume Nin <jnin@cttc.es>
19 * Nicola Baldo <nbaldo@cttc.es>
20 * Manuel Requena <manuel.requena@cttc.es>
21 * (most of the code refactored to no-backhaul-epc-helper.h)
22 */
23
24#ifndef POINT_TO_POINT_EPC_HELPER_H
25#define POINT_TO_POINT_EPC_HELPER_H
26
28
29namespace ns3
30{
31
32/**
33 * \ingroup lte
34 * \brief Create an EPC network with PointToPoint links in the backhaul network.
35 *
36 * This Helper extends NoBackhaulEpcHelper creating PointToPoint links in the
37 * backhaul network (i.e. in the S1-U and S1-MME interfaces)
38 */
40{
41 public:
42 /**
43 * Constructor
44 */
46
47 /**
48 * Destructor
49 */
50 ~PointToPointEpcHelper() override;
51
52 // inherited from Object
53 /**
54 * Register this type.
55 * \return The object TypeId.
56 */
57 static TypeId GetTypeId();
58 TypeId GetInstanceTypeId() const override;
59 void DoDispose() override;
60
61 // inherited from EpcHelper
62 void AddEnb(Ptr<Node> enbNode,
63 Ptr<NetDevice> lteEnbNetDevice,
64 std::vector<uint16_t> cellIds) override;
65
66 private:
67 /**
68 * S1-U interfaces
69 */
70
71 /**
72 * Helper to assign addresses to S1-U NetDevices
73 */
75
76 /**
77 * The data rate to be used for the next S1-U link to be created
78 */
80
81 /**
82 * The delay to be used for the next S1-U link to be created
83 */
85
86 /**
87 * The MTU of the next S1-U link to be created. Note that,
88 * because of the additional GTP/UDP/IP tunneling overhead,
89 * you need a MTU larger than the end-to-end MTU that you
90 * want to support.
91 */
92 uint16_t m_s1uLinkMtu;
93
94 /**
95 * Helper to assign addresses to S1-MME NetDevices
96 */
98
99 /**
100 * Enable PCAP generation for S1 link
101 */
103
104 /**
105 * Prefix for the PCAP file for the S1 link
106 */
108};
109
110} // namespace ns3
111
112#endif // POINT_TO_POINT_EPC_HELPER_H
Class for representing data rates.
Definition: data-rate.h:89
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Create an EPC network with PointToPoint links between the core network nodes.
Create an EPC network with PointToPoint links in the backhaul network.
Ipv4AddressHelper m_s1uIpv4AddressHelper
S1-U interfaces.
Ipv4AddressHelper m_s1apIpv4AddressHelper
Helper to assign addresses to S1-MME NetDevices.
bool m_s1uLinkEnablePcap
Enable PCAP generation for S1 link.
DataRate m_s1uLinkDataRate
The data rate to be used for the next S1-U link to be created.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint16_t m_s1uLinkMtu
The MTU of the next S1-U link to be created.
static TypeId GetTypeId()
Register this type.
void AddEnb(Ptr< Node > enbNode, Ptr< NetDevice > lteEnbNetDevice, std::vector< uint16_t > cellIds) override
Add an eNB to the EPC.
std::string m_s1uLinkPcapPrefix
Prefix for the PCAP file for the S1 link.
void DoDispose() override
Destructor implementation.
Time m_s1uLinkDelay
The delay to be used for the next S1-U link to be created.
~PointToPointEpcHelper() override
Destructor.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.