A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-simple-helper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2012 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 * Author: Manuel Requena <manuel.requena@cttc.es>
18 * (Based on lte-helper.h)
19 */
20
21#ifndef LTE_SIMPLE_HELPER_H
22#define LTE_SIMPLE_HELPER_H
23
24#include "ns3/lte-pdcp.h"
25#include "ns3/lte-rlc-am.h"
26#include "ns3/lte-rlc-um.h"
27#include "ns3/lte-rlc.h"
28#include "ns3/net-device-container.h"
29#include "ns3/node-container.h"
30#include "ns3/radio-bearer-stats-calculator.h"
31#include "ns3/simple-channel.h"
32
33namespace ns3
34{
35
36class LteTestRrc;
37class LteTestMac;
38
39/**
40 * \ingroup lte-test
41 *
42 * \brief A simplified version of LteHelper, that
43 * is used for creation and configuration of LTE entities for testing purposes
44 * when just a limited LteHelper functionality is wanted.
45 *
46 */
47class LteSimpleHelper : public Object
48{
49 public:
51 ~LteSimpleHelper() override;
52
53 /**
54 * \brief Get the type ID.
55 * \return the object TypeId
56 */
57 static TypeId GetTypeId();
58 void DoDispose() override;
59
60 /**
61 * create a set of eNB devices
62 *
63 * \param c the node container where the devices are to be installed
64 *
65 * \return the NetDeviceContainer with the newly created devices
66 */
68
69 /**
70 * create a set of UE devices
71 *
72 * \param c the node container where the devices are to be installed
73 *
74 * \return the NetDeviceContainer with the newly created devices
75 */
77
78 /**
79 * Enables logging for all components of the LENA architecture
80 *
81 */
83
84 /**
85 * Enables trace sinks for MAC, RLC and PDCP
86 */
87 void EnableTraces();
88
89 /**
90 * Enable trace sinks for RLC layer
91 */
92 void EnableRlcTraces();
93
94 /**
95 * Enable trace sinks for DL RLC layer
96 */
97 void EnableDlRlcTraces();
98
99 /**
100 * Enable trace sinks for UL RLC layer
101 */
102 void EnableUlRlcTraces();
103
104 /**
105 * Enable trace sinks for PDCP layer
106 */
107 void EnablePdcpTraces();
108
109 /**
110 * Enable trace sinks for DL PDCP layer
111 */
112 void EnableDlPdcpTraces();
113
114 /**
115 * Enable trace sinks for UL PDCP layer
116 */
117 void EnableUlPdcpTraces();
118
119 protected:
120 // inherited from Object
121 void DoInitialize() override;
122
123 private:
124 /**
125 * Install single ENB device
126 *
127 * \param n the node
128 * \returns the device
129 */
131 /**
132 * Install single UE device
133 *
134 * \param n the node
135 * \returns the device
136 */
138
139 Ptr<SimpleChannel> m_phyChannel; ///< the physical channel
140
141 public:
144
147
148 private:
149 Ptr<LtePdcp> m_enbPdcp; ///< ENB PDCP
150 Ptr<LteRlc> m_enbRlc; ///< ENB RLC
151
152 Ptr<LtePdcp> m_uePdcp; ///< UE PDCP
153 Ptr<LteRlc> m_ueRlc; ///< UE RLC
154
155 ObjectFactory m_enbDeviceFactory; ///< ENB device factory
156 ObjectFactory m_ueDeviceFactory; ///< UE device factory
157
158 /// LteRlcEntityType_t enumeration
160 {
162 RLC_AM = 2
163 } m_lteRlcEntityType; ///< RLC entity type
164};
165
166} // namespace ns3
167
168#endif // LTE_SIMPLE_HELPER_H
A simplified version of LteHelper, that is used for creation and configuration of LTE entities for te...
ObjectFactory m_ueDeviceFactory
UE device factory.
Ptr< NetDevice > InstallSingleEnbDevice(Ptr< Node > n)
Install single ENB device.
Ptr< LteTestRrc > m_ueRrc
UE RRC.
static TypeId GetTypeId()
Get the type ID.
Ptr< LtePdcp > m_enbPdcp
ENB PDCP.
NetDeviceContainer InstallEnbDevice(NodeContainer c)
create a set of eNB devices
Ptr< NetDevice > InstallSingleUeDevice(Ptr< Node > n)
Install single UE device.
void EnableDlPdcpTraces()
Enable trace sinks for DL PDCP layer.
ObjectFactory m_enbDeviceFactory
ENB device factory.
Ptr< SimpleChannel > m_phyChannel
the physical channel
void EnableRlcTraces()
Enable trace sinks for RLC layer.
void DoDispose() override
Destructor implementation.
void EnableUlRlcTraces()
Enable trace sinks for UL RLC layer.
Ptr< LteTestRrc > m_enbRrc
ENB RRC.
void EnableDlRlcTraces()
Enable trace sinks for DL RLC layer.
Ptr< LteTestMac > m_enbMac
ENB MAC.
Ptr< LteTestMac > m_ueMac
UE MAC.
LteRlcEntityType_t
LteRlcEntityType_t enumeration.
void EnableTraces()
Enables trace sinks for MAC, RLC and PDCP.
Ptr< LteRlc > m_ueRlc
UE RLC.
NetDeviceContainer InstallUeDevice(NodeContainer c)
create a set of UE devices
void DoInitialize() override
Initialize() implementation.
Ptr< LtePdcp > m_uePdcp
UE PDCP.
Ptr< LteRlc > m_enbRlc
ENB RLC.
enum ns3::LteSimpleHelper::LteRlcEntityType_t m_lteRlcEntityType
RLC entity type.
void EnableLogComponents()
Enables logging for all components of the LENA architecture.
void EnablePdcpTraces()
Enable trace sinks for PDCP layer.
void EnableUlPdcpTraces()
Enable trace sinks for UL PDCP layer.
holds a vector of ns3::NetDevice pointers
keep track of a set of node pointers.
Instantiate subclasses of ns3::Object.
A base class which provides memory management and object aggregation.
Definition: object.h:89
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.