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
class
SpectrumPropagationLossModel;
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
105
std::string
GetSchedulerType
()
const
;
106
113
void
SetSchedulerAttribute
(std::string n,
const
AttributeValue
&v);
114
121
void
SetEnbDeviceAttribute
(std::string n,
const
AttributeValue
&v);
122
127
void
SetEnbAntennaModelType
(std::string type);
128
135
void
SetEnbAntennaModelAttribute
(std::string n,
const
AttributeValue
&v);
136
141
void
SetUeAntennaModelType
(std::string type);
142
149
void
SetUeAntennaModelAttribute
(std::string n,
const
AttributeValue
&v);
150
155
void
SetSpectrumChannelType
(std::string type);
156
163
void
SetSpectrumChannelAttribute
(std::string n,
const
AttributeValue
&v);
171
NetDeviceContainer
InstallEnbDevice
(
NodeContainer
c);
172
180
NetDeviceContainer
InstallUeDevice
(
NodeContainer
c);
181
188
void
Attach
(
NetDeviceContainer
ueDevices,
Ptr<NetDevice>
enbDevice);
189
198
void
Attach
(
Ptr<NetDevice>
ueDevice,
Ptr<NetDevice>
enbDevice);
199
208
void
AttachToClosestEnb
(
NetDeviceContainer
ueDevices,
NetDeviceContainer
enbDevices);
209
218
void
AttachToClosestEnb
(
Ptr<NetDevice>
ueDevice,
NetDeviceContainer
enbDevices);
219
227
void
ActivateDedicatedEpsBearer
(
NetDeviceContainer
ueDevices,
EpsBearer
bearer,
Ptr<EpcTft>
tft);
228
236
void
ActivateDedicatedEpsBearer
(
Ptr<NetDevice>
ueDevice,
EpsBearer
bearer,
Ptr<EpcTft>
tft);
237
238
244
void
AddX2Interface
(
NodeContainer
enbNodes);
245
252
void
AddX2Interface
(
Ptr<Node>
enbNode1,
Ptr<Node>
enbNode2);
253
262
void
HandoverRequest
(
Time
hoTime,
Ptr<NetDevice>
ueDev,
Ptr<NetDevice>
sourceEnbDev,
Ptr<NetDevice>
targetEnbDev);
263
264
272
void
ActivateDataRadioBearer
(
NetDeviceContainer
ueDevices,
EpsBearer
bearer);
273
283
void
ActivateDataRadioBearer
(
Ptr<NetDevice>
ueDevice,
EpsBearer
bearer);
284
290
void
SetFadingModel
(std::string model);
291
295
void
SetFadingModelAttribute
(std::string n,
const
AttributeValue
&v);
296
301
void
EnableLogComponents
(
void
);
302
308
void
EnableTraces
(
void
);
309
313
void
EnablePhyTraces
(
void
);
314
315
316
320
void
EnableDlPhyTraces
(
void
);
321
325
void
EnableUlPhyTraces
(
void
);
326
330
void
EnableDlTxPhyTraces
(
void
);
331
335
void
EnableUlTxPhyTraces
(
void
);
336
340
void
EnableDlRxPhyTraces
(
void
);
341
345
void
EnableUlRxPhyTraces
(
void
);
346
350
void
EnableMacTraces
(
void
);
351
355
void
EnableDlMacTraces
(
void
);
356
360
void
EnableUlMacTraces
(
void
);
361
365
void
EnableRlcTraces
(
void
);
366
371
Ptr<RadioBearerStatsCalculator>
GetRlcStats
(
void
);
372
376
void
EnablePdcpTraces
(
void
);
377
382
Ptr<RadioBearerStatsCalculator>
GetPdcpStats
(
void
);
383
384
enum
LteEpsBearerToRlcMapping_t
{
RLC_SM_ALWAYS
= 1,
385
RLC_UM_ALWAYS
= 2,
386
RLC_AM_ALWAYS
= 3,
387
PER_BASED
= 4};
388
400
int64_t
AssignStreams
(
NetDeviceContainer
c, int64_t stream);
401
402
protected
:
403
// inherited from Object
404
virtual
void
DoInitialize
(
void
);
405
406
private
:
407
Ptr<NetDevice>
InstallSingleEnbDevice
(
Ptr<Node>
n);
408
Ptr<NetDevice>
InstallSingleUeDevice
(
Ptr<Node>
n);
409
410
void
DoHandoverRequest
(
Ptr<NetDevice>
ueDev,
Ptr<NetDevice>
sourceEnbDev,
Ptr<NetDevice>
targetEnbDev);
411
412
Ptr<SpectrumChannel>
m_downlinkChannel
;
413
Ptr<SpectrumChannel>
m_uplinkChannel
;
414
415
Ptr<Object>
m_downlinkPathlossModel
;
416
Ptr<Object>
m_uplinkPathlossModel
;
417
418
ObjectFactory
m_schedulerFactory
;
419
ObjectFactory
m_propagationModelFactory
;
420
ObjectFactory
m_enbNetDeviceFactory
;
421
ObjectFactory
m_enbAntennaModelFactory
;
422
ObjectFactory
m_ueAntennaModelFactory
;
423
424
ObjectFactory
m_dlPathlossModelFactory
;
425
ObjectFactory
m_ulPathlossModelFactory
;
426
427
ObjectFactory
m_channelFactory
;
428
429
std::string
m_fadingModelType
;
430
ObjectFactory
m_fadingModelFactory
;
431
Ptr<SpectrumPropagationLossModel>
m_fadingModule
;
432
bool
m_fadingStreamsAssigned
;
433
434
Ptr<PhyStatsCalculator>
m_phyStats
;
435
Ptr<PhyTxStatsCalculator>
m_phyTxStats
;
436
Ptr<PhyRxStatsCalculator>
m_phyRxStats
;
437
Ptr<MacStatsCalculator>
m_macStats
;
438
Ptr<RadioBearerStatsCalculator>
m_rlcStats
;
439
Ptr<RadioBearerStatsCalculator>
m_pdcpStats
;
440
RadioBearerStatsConnector
m_radioBearerStatsConnector
;
441
442
Ptr<EpcHelper>
m_epcHelper
;
443
444
uint64_t
m_imsiCounter
;
445
uint16_t
m_cellIdCounter
;
446
447
bool
m_useIdealRrc
;
448
};
449
450
451
}
// namespace ns3
452
453
454
455
#endif // LTE_HELPER_H
src
lte
helper
lte-helper.h
Generated on Fri Aug 30 2013 01:42:53 for ns-3 by
1.8.1.2