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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Manuel Requena <manuel.requena@cttc.es>
7 * (Based on lte-helper.h)
8 */
9
10#ifndef LTE_SIMPLE_HELPER_H
11#define LTE_SIMPLE_HELPER_H
12
13#include "ns3/lte-pdcp.h"
14#include "ns3/lte-rlc-am.h"
15#include "ns3/lte-rlc-um.h"
16#include "ns3/lte-rlc.h"
17#include "ns3/net-device-container.h"
18#include "ns3/node-container.h"
19#include "ns3/radio-bearer-stats-calculator.h"
20#include "ns3/simple-channel.h"
21
22namespace ns3
23{
24
25class LteTestRrc;
26class LteTestMac;
27
28/**
29 * \ingroup lte-test
30 *
31 * \brief A simplified version of LteHelper, that
32 * is used for creation and configuration of LTE entities for testing purposes
33 * when just a limited LteHelper functionality is wanted.
34 *
35 */
36class LteSimpleHelper : public Object
37{
38 public:
40 ~LteSimpleHelper() override;
41
42 /**
43 * \brief Get the type ID.
44 * \return the object TypeId
45 */
46 static TypeId GetTypeId();
47 void DoDispose() override;
48
49 /**
50 * create a set of eNB devices
51 *
52 * \param c the node container where the devices are to be installed
53 *
54 * \return the NetDeviceContainer with the newly created devices
55 */
57
58 /**
59 * create a set of UE devices
60 *
61 * \param c the node container where the devices are to be installed
62 *
63 * \return the NetDeviceContainer with the newly created devices
64 */
66
67 /**
68 * Enables logging for all components of the LENA architecture
69 *
70 */
72
73 /**
74 * Enables trace sinks for MAC, RLC and PDCP
75 */
76 void EnableTraces();
77
78 /**
79 * Enable trace sinks for RLC layer
80 */
81 void EnableRlcTraces();
82
83 /**
84 * Enable trace sinks for DL RLC layer
85 */
86 void EnableDlRlcTraces();
87
88 /**
89 * Enable trace sinks for UL RLC layer
90 */
91 void EnableUlRlcTraces();
92
93 /**
94 * Enable trace sinks for PDCP layer
95 */
96 void EnablePdcpTraces();
97
98 /**
99 * Enable trace sinks for DL PDCP layer
100 */
101 void EnableDlPdcpTraces();
102
103 /**
104 * Enable trace sinks for UL PDCP layer
105 */
106 void EnableUlPdcpTraces();
107
108 protected:
109 // inherited from Object
110 void DoInitialize() override;
111
112 private:
113 /**
114 * Install single ENB device
115 *
116 * \param n the node
117 * \returns the device
118 */
120 /**
121 * Install single UE device
122 *
123 * \param n the node
124 * \returns the device
125 */
127
128 Ptr<SimpleChannel> m_phyChannel; ///< the physical channel
129
130 public:
133
136
137 private:
138 Ptr<LtePdcp> m_enbPdcp; ///< ENB PDCP
139 Ptr<LteRlc> m_enbRlc; ///< ENB RLC
140
141 Ptr<LtePdcp> m_uePdcp; ///< UE PDCP
142 Ptr<LteRlc> m_ueRlc; ///< UE RLC
143
144 ObjectFactory m_enbDeviceFactory; ///< ENB device factory
145 ObjectFactory m_ueDeviceFactory; ///< UE device factory
146
147 /// LteRlcEntityType_t enumeration
149 {
151 RLC_AM = 2
152 } m_lteRlcEntityType; ///< RLC entity type
153};
154
155} // namespace ns3
156
157#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:78
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.