A Discrete-Event Network Simulator
API
lte-simple-helper.cc
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Manuel Requena <manuel.requena@cttc.es> (Based on lte-helper.cc)
19  */
20 
21 
22 #include "ns3/log.h"
23 #include "ns3/callback.h"
24 #include "ns3/config.h"
25 #include "ns3/simple-channel.h"
26 #include "ns3/error-model.h"
27 
28 #include "lte-simple-helper.h"
29 #include "lte-simple-net-device.h"
30 #include "lte-test-entities.h"
31 
32 
33 namespace ns3 {
34 
35 NS_LOG_COMPONENT_DEFINE ("LteSimpleHelper");
36 
37 NS_OBJECT_ENSURE_REGISTERED (LteSimpleHelper);
38 
40 {
41  NS_LOG_FUNCTION (this);
44 }
45 
46 void
48 {
49  NS_LOG_FUNCTION (this);
50 
51  m_phyChannel = CreateObject<SimpleChannel> ();
52 
54 }
55 
57 {
58  NS_LOG_FUNCTION (this);
59 }
60 
62 {
63  static TypeId
64  tid =
65  TypeId ("ns3::LteSimpleHelper")
66  .SetParent<Object> ()
67  .AddConstructor<LteSimpleHelper> ()
68  .AddAttribute ("RlcEntity",
69  "Specify which type of RLC will be used. ",
70  EnumValue (RLC_UM),
72  MakeEnumChecker (RLC_UM, "RlcUm",
73  RLC_AM, "RlcAm"))
74  ;
75  return tid;
76 }
77 
78 void
80 {
81  NS_LOG_FUNCTION (this);
82  m_phyChannel = 0;
83 
84  m_enbMac->Dispose ();
85  m_enbMac = 0;
86  m_ueMac->Dispose ();
87  m_ueMac = 0;
88 
90 }
91 
92 
95 {
96  NS_LOG_FUNCTION (this);
97  Initialize (); // will run DoInitialize () if necessary
99  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
100  {
101  Ptr<Node> node = *i;
102  Ptr<NetDevice> device = InstallSingleEnbDevice (node);
103  devices.Add (device);
104  }
105  return devices;
106 }
107 
110 {
111  NS_LOG_FUNCTION (this);
113  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
114  {
115  Ptr<Node> node = *i;
116  Ptr<NetDevice> device = InstallSingleUeDevice (node);
117  devices.Add (device);
118  }
119  return devices;
120 }
121 
122 
125 {
126  NS_LOG_FUNCTION (this);
127 
128  m_enbRrc = CreateObject<LteTestRrc> ();
129  m_enbPdcp = CreateObject<LtePdcp> ();
130 
131  if (m_lteRlcEntityType == RLC_UM)
132  {
133  m_enbRlc = CreateObject<LteRlcUm> ();
134  }
135  else // m_lteRlcEntityType == RLC_AM
136  {
137  m_enbRlc = CreateObject<LteRlcAm> ();
138  }
139 
140  m_enbRlc->SetRnti (11);
141  m_enbRlc->SetLcId (12);
142 
144  enbDev->SetAddress (Mac48Address::Allocate ());
145  enbDev->SetChannel (m_phyChannel);
146 
147  n->AddDevice (enbDev);
148 
149  m_enbMac = CreateObject<LteTestMac> ();
150  m_enbMac->SetDevice (enbDev);
151 
152  m_enbRrc->SetDevice (enbDev);
153 
154  enbDev->SetReceiveCallback (MakeCallback (&LteTestMac::Receive, m_enbMac));
155 
156  // Connect SAPs: RRC <-> PDCP <-> RLC <-> MAC
157 
158  m_enbRrc->SetLtePdcpSapProvider (m_enbPdcp->GetLtePdcpSapProvider ());
159  m_enbPdcp->SetLtePdcpSapUser (m_enbRrc->GetLtePdcpSapUser ());
160 
161  m_enbPdcp->SetLteRlcSapProvider (m_enbRlc->GetLteRlcSapProvider ());
162  m_enbRlc->SetLteRlcSapUser (m_enbPdcp->GetLteRlcSapUser ());
163 
166 
167  return enbDev;
168 }
169 
172 {
173  NS_LOG_FUNCTION (this);
174 
175  m_ueRrc = CreateObject<LteTestRrc> ();
176  m_uePdcp = CreateObject<LtePdcp> ();
177 
178  if (m_lteRlcEntityType == RLC_UM)
179  {
180  m_ueRlc = CreateObject<LteRlcUm> ();
181  }
182  else // m_lteRlcEntityType == RLC_AM
183  {
184  m_ueRlc = CreateObject<LteRlcAm> ();
185  }
186 
187  m_ueRlc->SetRnti (21);
188  m_ueRlc->SetLcId (22);
189 
191  ueDev->SetAddress (Mac48Address::Allocate ());
192  ueDev->SetChannel (m_phyChannel);
193 
194  n->AddDevice (ueDev);
195 
196  m_ueMac = CreateObject<LteTestMac> ();
197  m_ueMac->SetDevice (ueDev);
198 
199  ueDev->SetReceiveCallback (MakeCallback (&LteTestMac::Receive, m_ueMac));
200 
201  // Connect SAPs: RRC <-> PDCP <-> RLC <-> MAC
202 
203  m_ueRrc->SetLtePdcpSapProvider (m_uePdcp->GetLtePdcpSapProvider ());
204  m_uePdcp->SetLtePdcpSapUser (m_ueRrc->GetLtePdcpSapUser ());
205 
206  m_uePdcp->SetLteRlcSapProvider (m_ueRlc->GetLteRlcSapProvider ());
207  m_ueRlc->SetLteRlcSapUser (m_uePdcp->GetLteRlcSapUser ());
208 
211 
212  return ueDev;
213 }
214 
215 
216 void
218 {
220 
221  LogComponentEnable ("Config", level);
222  LogComponentEnable ("LteSimpleHelper", level);
223  LogComponentEnable ("LteTestEntities", level);
224  LogComponentEnable ("LtePdcp", level);
225  LogComponentEnable ("LteRlc", level);
226  LogComponentEnable ("LteRlcUm", level);
227  LogComponentEnable ("LteRlcAm", level);
228  LogComponentEnable ("LteSimpleNetDevice", level);
229  LogComponentEnable ("SimpleNetDevice", level);
230  LogComponentEnable ("SimpleChannel", level);
231 }
232 
233 void
235 {
236 // EnableMacTraces ();
237  EnableRlcTraces ();
238  EnablePdcpTraces ();
239 }
240 
241 void
243 {
246 }
247 
248 
258 void
260  uint16_t rnti, uint8_t lcid, uint32_t packetSize)
261 {
262  NS_LOG_FUNCTION (rlcStats << path << rnti << (uint16_t)lcid << packetSize);
263  uint64_t imsi = 111;
264  uint16_t cellId = 222;
265  rlcStats->DlTxPdu (cellId, imsi, rnti, lcid, packetSize);
266 }
267 
278 void
280  uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
281 {
282  NS_LOG_FUNCTION (rlcStats << path << rnti << (uint16_t)lcid << packetSize << delay);
283  uint64_t imsi = 333;
284  uint16_t cellId = 555;
285  rlcStats->DlRxPdu (cellId, imsi, rnti, lcid, packetSize, delay);
286 }
287 
288 void
290 {
292 
293  // Config::Connect ("/NodeList/*/DeviceList/*/LteRlc/TxPDU",
294  // MakeBoundCallback (&LteSimpleHelperDlTxPduCallback, m_rlcStats));
295  // Config::Connect ("/NodeList/*/DeviceList/*/LteRlc/RxPDU",
296  // MakeBoundCallback (&LteSimpleHelperDlRxPduCallback, m_rlcStats));
297 }
298 
308 void
310  uint16_t rnti, uint8_t lcid, uint32_t packetSize)
311 {
312  NS_LOG_FUNCTION (rlcStats << path << rnti << (uint16_t)lcid << packetSize);
313  uint64_t imsi = 1111;
314  uint16_t cellId = 555;
315  rlcStats->UlTxPdu (cellId, imsi, rnti, lcid, packetSize);
316 }
317 
328 void
330  uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
331 {
332  NS_LOG_FUNCTION (rlcStats << path << rnti << (uint16_t)lcid << packetSize << delay);
333  uint64_t imsi = 444;
334  uint16_t cellId = 555;
335  rlcStats->UlRxPdu (cellId, imsi, rnti, lcid, packetSize, delay);
336 }
337 
338 
339 void
341 {
343 
344  // Config::Connect ("/NodeList/*/DeviceList/*/LteRlc/TxPDU",
345  // MakeBoundCallback (&LteSimpleHelperUlTxPduCallback, m_rlcStats));
346  // Config::Connect ("/NodeList/*/DeviceList/*/LteRlc/RxPDU",
347  // MakeBoundCallback (&LteSimpleHelperUlRxPduCallback, m_rlcStats));
348 }
349 
350 
351 void
353 {
356 }
357 
358 void
360 {
362 
363  // Config::Connect ("/NodeList/*/DeviceList/*/LtePdcp/TxPDU",
364  // MakeBoundCallback (&LteSimpleHelperDlTxPduCallback, m_pdcpStats));
365  // Config::Connect ("/NodeList/*/DeviceList/*/LtePdcp/RxPDU",
366  // MakeBoundCallback (&LteSimpleHelperDlRxPduCallback, m_pdcpStats));
367 }
368 
369 void
371 {
373 
374  // Config::Connect ("/NodeList/*/DeviceList/*/LtePdcp/TxPDU",
375  // MakeBoundCallback (&LteSimpleHelperUlTxPduCallback, m_pdcpStats));
376  // Config::Connect ("/NodeList/*/DeviceList/*/LtePdcp/RxPDU",
377  // MakeBoundCallback (&LteSimpleHelperUlRxPduCallback, m_pdcpStats));
378 }
379 
380 
381 } // namespace ns3
ns3::NetDeviceContainer
holds a vector of ns3::NetDevice pointers
Definition: net-device-container.h:42
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
NS_LOG_COMPONENT_DEFINE
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:205
ns3::LteSimpleHelperDlTxPduCallback
void LteSimpleHelperDlTxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
DL transmit PDU callback.
Definition: lte-simple-helper.cc:259
ns3::LteTestMac::SetLteMacSapUser
void SetLteMacSapUser(LteMacSapUser *s)
Set the MAC SAP user.
Definition: lte-test-entities.cc:419
ns3::LteSimpleHelper::m_uePdcp
Ptr< LtePdcp > m_uePdcp
UE PDCP.
Definition: lte-simple-helper.h:159
ns3::LteSimpleHelper::m_phyChannel
Ptr< SimpleChannel > m_phyChannel
the physical channel
Definition: lte-simple-helper.h:144
ns3::RadioBearerStatsCalculator::DlRxPdu
void DlRxPdu(uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
Notifies the stats calculator that an downlink reception has occurred.
Definition: radio-bearer-stats-calculator.cc:189
ns3::Object::Dispose
void Dispose(void)
Dispose of this Object.
Definition: object.cc:214
NS_OBJECT_ENSURE_REGISTERED
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:45
ns3::LteSimpleHelper::DoInitialize
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-simple-helper.cc:47
ns3::LteSimpleHelper::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-simple-helper.cc:79
ns3::LteSimpleHelper::m_enbRrc
Ptr< LteTestRrc > m_enbRrc
ENB RRC.
Definition: lte-simple-helper.h:148
ns3::LteTestMac::Receive
bool Receive(Ptr< NetDevice > nd, Ptr< const Packet > p, uint16_t protocol, const Address &addr)
the Receive function
Definition: lte-test-entities.cc:659
ns3::LteSimpleHelper::m_enbPdcp
Ptr< LtePdcp > m_enbPdcp
ENB PDCP.
Definition: lte-simple-helper.h:156
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteSimpleHelper::EnableRlcTraces
void EnableRlcTraces(void)
Enable trace sinks for RLC layer.
Definition: lte-simple-helper.cc:242
ns3::MakeEnumChecker
Ptr< const AttributeChecker > MakeEnumChecker(int v, std::string n, Ts... args)
Make an EnumChecker pre-configured with a set of allowed values by name.
Definition: enum.h:161
ns3::LteSimpleHelper::EnableDlPdcpTraces
void EnableDlPdcpTraces(void)
Enable trace sinks for DL PDCP layer.
Definition: lte-simple-helper.cc:359
ns3::LOG_PREFIX_NODE
@ LOG_PREFIX_NODE
Prefix all trace prints with simulation node.
Definition: log.h:120
ns3::LteSimpleNetDevice
The LteSimpleNetDevice class implements the LTE simple net device.
Definition: lte-simple-net-device.h:41
ns3::LOG_LEVEL_ALL
@ LOG_LEVEL_ALL
Print everything.
Definition: log.h:116
ns3::RadioBearerStatsCalculator::UlTxPdu
void UlTxPdu(uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
Notifies the stats calculator that an uplink transmission has occurred.
Definition: radio-bearer-stats-calculator.cc:134
ns3::LteSimpleHelperUlTxPduCallback
void LteSimpleHelperUlTxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
UL transmit PDU callback.
Definition: lte-simple-helper.cc:309
ns3::LogComponentEnable
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.
Definition: log.cc:361
ns3::LteSimpleHelper::RLC_UM
@ RLC_UM
Definition: lte-simple-helper.h:166
ns3::LteSimpleHelper::InstallSingleUeDevice
Ptr< NetDevice > InstallSingleUeDevice(Ptr< Node > n)
Install single UE device.
Definition: lte-simple-helper.cc:171
ns3::LteSimpleHelper::m_ueRlc
Ptr< LteRlc > m_ueRlc
UE RLC.
Definition: lte-simple-helper.h:160
lte-test-entities.h
lte-simple-net-device.h
ns3::LteSimpleHelper::EnablePdcpTraces
void EnablePdcpTraces(void)
Enable trace sinks for PDCP layer.
Definition: lte-simple-helper.cc:352
first.devices
devices
Definition: first.py:39
ns3::TypeId::SetParent
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:923
ns3::EnumValue
Hold variables of type enum.
Definition: enum.h:55
ns3::LteRlc::SetRnti
void SetRnti(uint16_t rnti)
Definition: lte-rlc.cc:133
ns3::LteSimpleHelper::EnableDlRlcTraces
void EnableDlRlcTraces(void)
Enable trace sinks for DL RLC layer.
Definition: lte-simple-helper.cc:289
ns3::LteRlc::GetLteMacSapUser
LteMacSapUser * GetLteMacSapUser()
Definition: lte-rlc.cc:168
ns3::LteSimpleNetDevice::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-simple-net-device.cc:34
ns3::LteTestMac::SetDevice
void SetDevice(Ptr< NetDevice > device)
Set the device function.
Definition: lte-test-entities.cc:413
ns3::Ptr< Node >
ns3::LteSimpleHelper::RLC_AM
@ RLC_AM
Definition: lte-simple-helper.h:167
ns3::LteSimpleHelper::m_enbMac
Ptr< LteTestMac > m_enbMac
ENB MAC.
Definition: lte-simple-helper.h:151
ns3::LteSimpleHelper::EnableLogComponents
void EnableLogComponents(void)
Enables logging for all components of the LENA architecture.
Definition: lte-simple-helper.cc:217
ns3::Object
A base class which provides memory management and object aggregation.
Definition: object.h:88
ns3::LteSimpleHelper::m_ueDeviceFactory
ObjectFactory m_ueDeviceFactory
UE device factory.
Definition: lte-simple-helper.h:163
ns3::NodeContainer::Begin
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
Definition: node-container.cc:77
ns3::LteTestMac::GetLteMacSapProvider
LteMacSapProvider * GetLteMacSapProvider(void)
Get the MAC SAP provider.
Definition: lte-test-entities.cc:425
ns3::LteSimpleHelper::m_ueRrc
Ptr< LteTestRrc > m_ueRrc
UE RRC.
Definition: lte-simple-helper.h:149
ns3::Mac48Address::Allocate
static Mac48Address Allocate(void)
Allocate a new Mac48Address.
Definition: mac48-address.cc:135
ns3::LteRlc::SetLteMacSapProvider
void SetLteMacSapProvider(LteMacSapProvider *s)
Definition: lte-rlc.cc:161
ns3::LteSimpleHelper::m_enbRlc
Ptr< LteRlc > m_enbRlc
ENB RLC.
Definition: lte-simple-helper.h:157
ns3::LteSimpleHelper::InstallUeDevice
NetDeviceContainer InstallUeDevice(NodeContainer c)
create a set of UE devices
Definition: lte-simple-helper.cc:109
ns3::LteSimpleHelper::EnableUlRlcTraces
void EnableUlRlcTraces(void)
Enable trace sinks for UL RLC layer.
Definition: lte-simple-helper.cc:340
ns3::LteSimpleHelper::InstallSingleEnbDevice
Ptr< NetDevice > InstallSingleEnbDevice(Ptr< Node > n)
Install single ENB device.
Definition: lte-simple-helper.cc:124
ns3::LteSimpleHelperUlRxPduCallback
void LteSimpleHelperUlRxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
UL receive PDU callback.
Definition: lte-simple-helper.cc:329
ns3::RadioBearerStatsCalculator::DlTxPdu
void DlTxPdu(uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
Notifies the stats calculator that an downlink transmission has occurred.
Definition: radio-bearer-stats-calculator.cc:149
ns3::Object::DoInitialize
virtual void DoInitialize(void)
Initialize() implementation.
Definition: object.cc:353
ns3::LteSimpleHelper::EnableUlPdcpTraces
void EnableUlPdcpTraces(void)
Enable trace sinks for UL PDCP layer.
Definition: lte-simple-helper.cc:370
ns3::MakeCallback
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Definition: callback.h:1642
NS_LOG_FUNCTION_NOARGS
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
Definition: log-macros-enabled.h:209
ns3::LteRlc::SetLteRlcSapUser
void SetLteRlcSapUser(LteRlcSapUser *s)
Definition: lte-rlc.cc:147
ns3::NodeContainer::Iterator
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
Definition: node-container.h:42
ns3::LOG_PREFIX_TIME
@ LOG_PREFIX_TIME
Prefix all trace prints with simulation time.
Definition: log.h:119
ns3::LteSimpleHelper::LteSimpleHelper
LteSimpleHelper(void)
Definition: lte-simple-helper.cc:39
ns3::LteSimpleHelper::~LteSimpleHelper
virtual ~LteSimpleHelper(void)
Definition: lte-simple-helper.cc:56
packetSize
static const uint32_t packetSize
Definition: wifi-power-adaptation-distance.cc:113
ns3::LteRlc::SetLcId
void SetLcId(uint8_t lcId)
Definition: lte-rlc.cc:140
ns3::LOG_PREFIX_FUNC
@ LOG_PREFIX_FUNC
Prefix all trace prints with function.
Definition: log.h:118
ns3::LogLevel
LogLevel
Logging severity classes and levels.
Definition: log.h:94
ns3::MakeEnumAccessor
Ptr< const AttributeAccessor > MakeEnumAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Definition: enum.h:203
ns3::LteSimpleHelper::EnableTraces
void EnableTraces(void)
Enables trace sinks for MAC, RLC and PDCP.
Definition: lte-simple-helper.cc:234
ns3::LteSimpleHelperDlRxPduCallback
void LteSimpleHelperDlRxPduCallback(Ptr< RadioBearerStatsCalculator > rlcStats, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
DL receive PDU callback.
Definition: lte-simple-helper.cc:279
ns3::LteRlc::GetLteRlcSapProvider
LteRlcSapProvider * GetLteRlcSapProvider()
Definition: lte-rlc.cc:154
NS_LOG_FUNCTION
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Definition: log-macros-enabled.h:244
lte-simple-helper.h
ns3::NodeContainer
keep track of a set of node pointers.
Definition: node-container.h:39
ns3::NodeContainer::End
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
Definition: node-container.cc:82
ns3::LteSimpleHelper::m_ueMac
Ptr< LteTestMac > m_ueMac
UE MAC.
Definition: lte-simple-helper.h:152
ns3::ObjectFactory::SetTypeId
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Definition: object-factory.cc:40
ns3::ObjectFactory::Create
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
Definition: object-factory.cc:98
ns3::LteSimpleHelper::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-simple-helper.cc:61
ns3::LteSimpleHelper::m_lteRlcEntityType
enum ns3::LteSimpleHelper::LteRlcEntityType_t m_lteRlcEntityType
RLC entity type.
ns3::Object::Initialize
void Initialize(void)
Invoke DoInitialize on all Objects aggregated to this one.
Definition: object.cc:183
ns3::Object::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition: object.cc:346
ns3::LteSimpleHelper::InstallEnbDevice
NetDeviceContainer InstallEnbDevice(NodeContainer c)
create a set of eNB devices
Definition: lte-simple-helper.cc:94
sample-rng-plot.n
n
Definition: sample-rng-plot.py:37
ns3::RadioBearerStatsCalculator::UlRxPdu
void UlRxPdu(uint16_t cellId, uint64_t imsi, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
Notifies the stats calculator that an uplink reception has occurred.
Definition: radio-bearer-stats-calculator.cc:164
ns3::LteSimpleHelper::m_enbDeviceFactory
ObjectFactory m_enbDeviceFactory
ENB device factory.
Definition: lte-simple-helper.h:162