A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
lte-helper.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 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: Nicola Baldo <nbaldo@cttc.es>
19
*/
20
21
#ifndef LTE_HELPER_H
22
#define LTE_HELPER_H
23
24
#include <ns3/config.h>
25
#include <ns3/simulator.h>
26
#include <ns3/names.h>
27
#include <ns3/net-device.h>
28
#include <ns3/net-device-container.h>
29
#include <ns3/node.h>
30
#include <ns3/node-container.h>
31
#include <ns3/eps-bearer.h>
32
#include <ns3/phy-stats-calculator.h>
33
#include <ns3/phy-tx-stats-calculator.h>
34
#include <ns3/phy-rx-stats-calculator.h>
35
#include <ns3/mac-stats-calculator.h>
36
#include <ns3/radio-bearer-stats-calculator.h>
37
#include <ns3/radio-bearer-stats-connector.h>
38
#include <ns3/epc-tft.h>
39
#include <ns3/mobility-model.h>
40
41
namespace
ns3 {
42
43
44
class
LteUePhy;
45
class
LteEnbPhy;
46
class
SpectrumChannel;
47
class
EpcHelper;
48
class
PropagationLossModel;
49
50
55
class
LteHelper
:
public
Object
56
{
57
public
:
58
LteHelper
(
void
);
59
virtual
~LteHelper
(
void
);
60
61
static
TypeId
GetTypeId
(
void
);
62
virtual
void
DoDispose
(
void
);
63
64
78
void
SetEpcHelper
(
Ptr<EpcHelper>
h);
79
85
void
SetPathlossModelType
(std::string type);
86
93
void
SetPathlossModelAttribute
(std::string n,
const
AttributeValue
&v);
94
99
void
SetSchedulerType
(std::string type);
100
107
void
SetSchedulerAttribute
(std::string n,
const
AttributeValue
&v);
108
115
void
SetEnbDeviceAttribute
(std::string n,
const
AttributeValue
&v);
116
121
void
SetEnbAntennaModelType
(std::string type);
122
129
void
SetEnbAntennaModelAttribute
(std::string n,
const
AttributeValue
&v);
130
135
void
SetUeAntennaModelType
(std::string type);
136
143
void
SetUeAntennaModelAttribute
(std::string n,
const
AttributeValue
&v);
144
149
void
SetSpectrumChannelType
(std::string type);
150
157
void
SetSpectrumChannelAttribute
(std::string n,
const
AttributeValue
&v);
165
NetDeviceContainer
InstallEnbDevice
(
NodeContainer
c);
166
174
NetDeviceContainer
InstallUeDevice
(
NodeContainer
c);
175
182
void
Attach
(
NetDeviceContainer
ueDevices,
Ptr<NetDevice>
enbDevice);
183
192
void
Attach
(
Ptr<NetDevice>
ueDevice,
Ptr<NetDevice>
enbDevice);
193
202
void
AttachToClosestEnb
(
NetDeviceContainer
ueDevices,
NetDeviceContainer
enbDevices);
203
212
void
AttachToClosestEnb
(
Ptr<NetDevice>
ueDevice,
NetDeviceContainer
enbDevices);
213
221
void
ActivateDedicatedEpsBearer
(
NetDeviceContainer
ueDevices,
EpsBearer
bearer,
Ptr<EpcTft>
tft);
222
230
void
ActivateDedicatedEpsBearer
(
Ptr<NetDevice>
ueDevice,
EpsBearer
bearer,
Ptr<EpcTft>
tft);
231
232
238
void
AddX2Interface
(
NodeContainer
enbNodes);
239
246
void
AddX2Interface
(
Ptr<Node>
enbNode1,
Ptr<Node>
enbNode2);
247
256
void
HandoverRequest
(
Time
hoTime,
Ptr<NetDevice>
ueDev,
Ptr<NetDevice>
sourceEnbDev,
Ptr<NetDevice>
targetEnbDev);
257
258
266
void
ActivateDataRadioBearer
(
NetDeviceContainer
ueDevices,
EpsBearer
bearer);
267
277
void
ActivateDataRadioBearer
(
Ptr<NetDevice>
ueDevice,
EpsBearer
bearer);
278
284
void
SetFadingModel
(std::string model);
285
289
void
SetFadingModelAttribute
(std::string n,
const
AttributeValue
&v);
290
295
void
EnableLogComponents
(
void
);
296
302
void
EnableTraces
(
void
);
303
307
void
EnablePhyTraces
(
void
);
308
309
310
314
void
EnableDlPhyTraces
(
void
);
315
319
void
EnableUlPhyTraces
(
void
);
320
324
void
EnableDlTxPhyTraces
(
void
);
325
329
void
EnableUlTxPhyTraces
(
void
);
330
334
void
EnableDlRxPhyTraces
(
void
);
335
339
void
EnableUlRxPhyTraces
(
void
);
340
344
void
EnableMacTraces
(
void
);
345
349
void
EnableDlMacTraces
(
void
);
350
354
void
EnableUlMacTraces
(
void
);
355
359
void
EnableRlcTraces
(
void
);
360
365
Ptr<RadioBearerStatsCalculator>
GetRlcStats
(
void
);
366
370
void
EnablePdcpTraces
(
void
);
371
376
Ptr<RadioBearerStatsCalculator>
GetPdcpStats
(
void
);
377
378
enum
LteEpsBearerToRlcMapping_t
{
RLC_SM_ALWAYS
= 1,
379
RLC_UM_ALWAYS
= 2,
380
RLC_AM_ALWAYS
= 3,
381
PER_BASED
= 4};
382
394
int64_t
AssignStreams
(
NetDeviceContainer
c, int64_t stream);
395
396
protected
:
397
// inherited from Object
398
virtual
void
DoInitialize
(
void
);
399
400
private
:
401
Ptr<NetDevice>
InstallSingleEnbDevice
(
Ptr<Node>
n);
402
Ptr<NetDevice>
InstallSingleUeDevice
(
Ptr<Node>
n);
403
404
void
DoHandoverRequest
(
Ptr<NetDevice>
ueDev,
Ptr<NetDevice>
sourceEnbDev,
Ptr<NetDevice>
targetEnbDev);
405
406
Ptr<SpectrumChannel>
m_downlinkChannel
;
407
Ptr<SpectrumChannel>
m_uplinkChannel
;
408
409
Ptr<Object>
m_downlinkPathlossModel
;
410
Ptr<Object>
m_uplinkPathlossModel
;
411
412
ObjectFactory
m_schedulerFactory
;
413
ObjectFactory
m_propagationModelFactory
;
414
ObjectFactory
m_enbNetDeviceFactory
;
415
ObjectFactory
m_enbAntennaModelFactory
;
416
ObjectFactory
m_ueAntennaModelFactory
;
417
418
ObjectFactory
m_dlPathlossModelFactory
;
419
ObjectFactory
m_ulPathlossModelFactory
;
420
421
ObjectFactory
m_channelFactory
;
422
423
std::string
m_fadingModelType
;
424
ObjectFactory
m_fadingModelFactory
;
425
426
Ptr<PhyStatsCalculator>
m_phyStats
;
427
Ptr<PhyTxStatsCalculator>
m_phyTxStats
;
428
Ptr<PhyRxStatsCalculator>
m_phyRxStats
;
429
Ptr<MacStatsCalculator>
m_macStats
;
430
Ptr<RadioBearerStatsCalculator>
m_rlcStats
;
431
Ptr<RadioBearerStatsCalculator>
m_pdcpStats
;
432
RadioBearerStatsConnector
m_radioBearerStatsConnector
;
433
434
Ptr<EpcHelper>
m_epcHelper
;
435
436
uint64_t
m_imsiCounter
;
437
uint16_t
m_cellIdCounter
;
438
439
bool
m_useIdealRrc
;
440
};
441
442
443
}
// namespace ns3
444
445
446
447
#endif // LTE_HELPER_H
src
lte
helper
lte-helper.h
Generated on Tue May 14 2013 11:08:24 for ns-3 by
1.8.1.2