A Discrete-Event Network Simulator
lorawan @ (+)
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
j
l
m
n
o
p
q
r
s
t
w
Enumerator
a
b
c
d
e
f
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Symbols
:
a
b
c
d
e
g
h
i
j
l
m
n
o
p
q
r
s
t
u
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
e
l
v
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
▼
ns-3
►
ns-3 Documentation
►
All Environment Variables
Todo List
Deprecated List
Bug List
►
Topics
►
Namespaces
►
Classes
▼
Files
▼
File List
►
doc
►
examples
▼
src
►
antenna
►
aodv
►
applications
►
bridge
►
brite
►
buildings
►
click
►
config-store
►
core
►
csma
►
csma-layout
►
dsdv
►
dsr
►
energy
►
fd-net-device
►
flow-monitor
►
internet
►
internet-apps
►
lorawan
►
lr-wpan
▼
lte
►
doc
►
examples
►
helper
▼
model
a2-a4-rsrq-handover-algorithm.cc
►
a2-a4-rsrq-handover-algorithm.h
a3-rsrp-handover-algorithm.cc
►
a3-rsrp-handover-algorithm.h
component-carrier-enb.cc
component-carrier-enb.h
component-carrier-ue.cc
component-carrier-ue.h
component-carrier.cc
component-carrier.h
►
cqa-ff-mac-scheduler.cc
►
cqa-ff-mac-scheduler.h
►
epc-enb-application.cc
►
epc-enb-application.h
epc-enb-s1-sap.cc
►
epc-enb-s1-sap.h
►
epc-gtpc-header.cc
►
epc-gtpc-header.h
epc-gtpu-header.cc
epc-gtpu-header.h
epc-mme-application.cc
►
epc-mme-application.h
epc-pgw-application.cc
►
epc-pgw-application.h
epc-s11-sap.cc
►
epc-s11-sap.h
epc-s1ap-sap.cc
►
epc-s1ap-sap.h
epc-sgw-application.cc
►
epc-sgw-application.h
epc-tft-classifier.cc
►
epc-tft-classifier.h
►
epc-tft.cc
►
epc-tft.h
►
epc-ue-nas.cc
►
epc-ue-nas.h
epc-x2-header.cc
►
epc-x2-header.h
epc-x2-sap.cc
►
epc-x2-sap.h
epc-x2.cc
►
epc-x2.h
eps-bearer-tag.cc
►
eps-bearer-tag.h
eps-bearer.cc
►
eps-bearer.h
►
fdbet-ff-mac-scheduler.cc
►
fdbet-ff-mac-scheduler.h
►
fdmt-ff-mac-scheduler.cc
fdmt-ff-mac-scheduler.h
►
fdtbfq-ff-mac-scheduler.cc
►
fdtbfq-ff-mac-scheduler.h
ff-mac-common.cc
►
ff-mac-common.h
ff-mac-csched-sap.cc
►
ff-mac-csched-sap.h
ff-mac-sched-sap.cc
►
ff-mac-sched-sap.h
ff-mac-scheduler.cc
►
ff-mac-scheduler.h
►
lte-amc.cc
lte-amc.h
lte-anr-sap.cc
►
lte-anr-sap.h
lte-anr.cc
►
lte-anr.h
lte-as-sap.cc
►
lte-as-sap.h
lte-asn1-header.cc
►
lte-asn1-header.h
lte-ccm-mac-sap.cc
►
lte-ccm-mac-sap.h
lte-ccm-rrc-sap.cc
►
lte-ccm-rrc-sap.h
lte-chunk-processor.cc
►
lte-chunk-processor.h
►
lte-common.cc
►
lte-common.h
lte-control-messages.cc
►
lte-control-messages.h
lte-enb-cmac-sap.cc
►
lte-enb-cmac-sap.h
lte-enb-component-carrier-manager.cc
►
lte-enb-component-carrier-manager.h
lte-enb-cphy-sap.cc
►
lte-enb-cphy-sap.h
►
lte-enb-mac.cc
►
lte-enb-mac.h
lte-enb-net-device.cc
lte-enb-net-device.h
lte-enb-phy-sap.cc
►
lte-enb-phy-sap.h
►
lte-enb-phy.cc
lte-enb-phy.h
►
lte-enb-rrc.cc
►
lte-enb-rrc.h
►
lte-ffr-algorithm.cc
►
lte-ffr-algorithm.h
lte-ffr-distributed-algorithm.cc
►
lte-ffr-distributed-algorithm.h
►
lte-ffr-enhanced-algorithm.cc
►
lte-ffr-enhanced-algorithm.h
lte-ffr-rrc-sap.cc
►
lte-ffr-rrc-sap.h
lte-ffr-sap.cc
►
lte-ffr-sap.h
►
lte-ffr-soft-algorithm.cc
►
lte-ffr-soft-algorithm.h
►
lte-fr-hard-algorithm.cc
►
lte-fr-hard-algorithm.h
lte-fr-no-op-algorithm.cc
►
lte-fr-no-op-algorithm.h
►
lte-fr-soft-algorithm.cc
►
lte-fr-soft-algorithm.h
►
lte-fr-strict-algorithm.cc
►
lte-fr-strict-algorithm.h
lte-handover-algorithm.cc
►
lte-handover-algorithm.h
lte-handover-management-sap.cc
►
lte-handover-management-sap.h
lte-harq-phy.cc
►
lte-harq-phy.h
lte-interference.cc
►
lte-interference.h
lte-mac-sap.cc
►
lte-mac-sap.h
►
lte-mi-error-model.cc
►
lte-mi-error-model.h
lte-net-device.cc
lte-net-device.h
lte-pdcp-header.cc
lte-pdcp-header.h
lte-pdcp-sap.cc
►
lte-pdcp-sap.h
lte-pdcp-tag.cc
►
lte-pdcp-tag.h
►
lte-pdcp.cc
►
lte-pdcp.h
lte-phy-tag.cc
►
lte-phy-tag.h
lte-phy.cc
lte-phy.h
lte-radio-bearer-info.cc
►
lte-radio-bearer-info.h
lte-radio-bearer-tag.cc
►
lte-radio-bearer-tag.h
lte-rlc-am-header.cc
lte-rlc-am-header.h
lte-rlc-am.cc
►
lte-rlc-am.h
lte-rlc-header.cc
lte-rlc-header.h
lte-rlc-sap.cc
►
lte-rlc-sap.h
lte-rlc-sdu-status-tag.cc
►
lte-rlc-sdu-status-tag.h
►
lte-rlc-sequence-number.cc
►
lte-rlc-sequence-number.h
lte-rlc-tag.cc
►
lte-rlc-tag.h
lte-rlc-tm.cc
►
lte-rlc-tm.h
lte-rlc-um.cc
►
lte-rlc-um.h
►
lte-rlc.cc
►
lte-rlc.h
►
lte-rrc-header.cc
►
lte-rrc-header.h
►
lte-rrc-protocol-ideal.cc
►
lte-rrc-protocol-ideal.h
►
lte-rrc-protocol-real.cc
►
lte-rrc-protocol-real.h
lte-rrc-sap.cc
►
lte-rrc-sap.h
►
lte-spectrum-phy.cc
►
lte-spectrum-phy.h
lte-spectrum-signal-parameters.cc
lte-spectrum-signal-parameters.h
►
lte-spectrum-value-helper.cc
lte-spectrum-value-helper.h
lte-ue-ccm-rrc-sap.cc
►
lte-ue-ccm-rrc-sap.h
lte-ue-cmac-sap.cc
►
lte-ue-cmac-sap.h
lte-ue-component-carrier-manager.cc
►
lte-ue-component-carrier-manager.h
lte-ue-cphy-sap.cc
►
lte-ue-cphy-sap.h
►
lte-ue-mac.cc
►
lte-ue-mac.h
lte-ue-net-device.cc
lte-ue-net-device.h
lte-ue-phy-sap.cc
►
lte-ue-phy-sap.h
►
lte-ue-phy.cc
►
lte-ue-phy.h
lte-ue-power-control.cc
►
lte-ue-power-control.h
►
lte-ue-rrc.cc
►
lte-ue-rrc.h
lte-vendor-specific-parameters.cc
►
lte-vendor-specific-parameters.h
no-op-component-carrier-manager.cc
►
no-op-component-carrier-manager.h
no-op-handover-algorithm.cc
►
no-op-handover-algorithm.h
►
pf-ff-mac-scheduler.cc
►
pf-ff-mac-scheduler.h
►
pss-ff-mac-scheduler.cc
►
pss-ff-mac-scheduler.h
rem-spectrum-phy.cc
►
rem-spectrum-phy.h
►
rr-ff-mac-scheduler.cc
rr-ff-mac-scheduler.h
►
simple-ue-component-carrier-manager.cc
►
simple-ue-component-carrier-manager.h
►
tdbet-ff-mac-scheduler.cc
►
tdbet-ff-mac-scheduler.h
►
tdmt-ff-mac-scheduler.cc
tdmt-ff-mac-scheduler.h
►
tdtbfq-ff-mac-scheduler.cc
►
tdtbfq-ff-mac-scheduler.h
►
tta-ff-mac-scheduler.cc
tta-ff-mac-scheduler.h
►
test
►
mesh
►
mobility
►
mpi
►
netanim
►
network
►
nix-vector-routing
►
olsr
►
openflow
►
point-to-point
►
point-to-point-layout
►
propagation
►
sixlowpan
►
spectrum
►
stats
►
tap-bridge
►
test
►
topology-read
►
traffic-control
►
uan
►
virtual-net-device
►
visualizer
►
wifi
►
wimax
►
zigbee
►
utils
►
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
component-carrier.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Danilo Abrignani
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Danilo Abrignani <danilo.abrignani@unibo.it>
7
*/
8
9
#ifndef COMPONENT_CARRIER_H
10
#define COMPONENT_CARRIER_H
11
12
#include "ns3/object.h"
13
14
namespace
ns3
15
{
16
17
/**
18
* @ingroup lte
19
*
20
* ComponentCarrier Object, it defines a single Carrier
21
* This is the parent class for both ComponentCarrierBaseStation
22
* and ComponentCarrierUe.
23
* This class contains the main physical configuration
24
* parameters for a carrier. Does not contain pointers to
25
* the MAC/PHY objects of the carrier.
26
*/
27
class
ComponentCarrier
:
public
Object
28
{
29
public
:
30
/**
31
* @brief Get the type ID.
32
* @return the object TypeId
33
*/
34
static
TypeId
GetTypeId
();
35
36
ComponentCarrier
();
37
38
~ComponentCarrier
()
override
;
39
void
DoDispose
()
override
;
40
41
/**
42
* @return the uplink bandwidth in RBs
43
*/
44
uint16_t
GetUlBandwidth
()
const
;
45
46
/**
47
* @param bw the uplink bandwidth in RBs
48
*/
49
virtual
void
SetUlBandwidth
(uint16_t bw);
50
51
/**
52
* @return the downlink bandwidth in RBs
53
*/
54
uint16_t
GetDlBandwidth
()
const
;
55
56
/**
57
* @param bw the downlink bandwidth in RBs
58
*/
59
virtual
void
SetDlBandwidth
(uint16_t bw);
60
61
/**
62
* @return the downlink carrier frequency (EARFCN)
63
*/
64
uint32_t
GetDlEarfcn
()
const
;
65
66
/**
67
* @param earfcn the downlink carrier frequency (EARFCN)
68
*/
69
void
SetDlEarfcn
(
uint32_t
earfcn);
70
71
/**
72
* @return the uplink carrier frequency (EARFCN)
73
*/
74
uint32_t
GetUlEarfcn
()
const
;
75
76
/**
77
* @param earfcn the uplink carrier frequency (EARFCN)
78
*/
79
void
SetUlEarfcn
(
uint32_t
earfcn);
80
81
/**
82
* @brief Returns the CSG ID of the eNodeB.
83
* @return the Closed Subscriber Group identity
84
* \sa LteEnbNetDevice::SetCsgId
85
*/
86
uint32_t
GetCsgId
()
const
;
87
88
/**
89
* @brief Associate the eNodeB device with a particular CSG.
90
* @param csgId the intended Closed Subscriber Group identity
91
*
92
* CSG identity is a number identifying a Closed Subscriber Group which the
93
* cell belongs to. eNodeB is associated with a single CSG identity.
94
*
95
* The same CSG identity can also be associated to several UEs, which is
96
* equivalent as enlisting these UEs as the members of this particular CSG.
97
*
98
* \sa LteEnbNetDevice::SetCsgIndication
99
*/
100
void
SetCsgId
(
uint32_t
csgId);
101
102
/**
103
* @brief Returns the CSG indication flag of the eNodeB.
104
* @return the CSG indication flag
105
* \sa LteEnbNetDevice::SetCsgIndication
106
*/
107
bool
GetCsgIndication
()
const
;
108
109
/**
110
* @brief Enable or disable the CSG indication flag.
111
* @param csgIndication if TRUE, only CSG members are allowed to access this
112
* cell
113
*
114
* When the CSG indication field is set to TRUE, only UEs which are members of
115
* the CSG (i.e. same CSG ID) can gain access to the eNodeB, therefore
116
* enforcing closed access mode. Otherwise, the eNodeB operates as a non-CSG
117
* cell and implements open access mode.
118
*
119
* @note This restriction only applies to initial cell selection and
120
* EPC-enabled simulation.
121
*
122
* \sa LteEnbNetDevice::SetCsgIndication
123
*/
124
void
SetCsgIndication
(
bool
csgIndication);
125
126
/**
127
* @brief Set as primary carrier
128
* @param primaryCarrier true to set as primary carrier
129
*/
130
void
SetAsPrimary
(
bool
primaryCarrier);
131
132
/**
133
* @brief Checks if the carrier is the primary carrier
134
* @returns true if the carrier is primary
135
*/
136
bool
IsPrimary
()
const
;
137
138
protected
:
139
uint32_t
m_csgId
{0};
///< CSG ID
140
bool
m_csgIndication
{
false
};
///< CSG indication
141
142
bool
m_primaryCarrier
{
false
};
///< whether the carrier is primary
143
144
uint16_t
m_dlBandwidth
{0};
///< downlink bandwidth in RBs */
145
uint16_t
m_ulBandwidth
{0};
///< uplink bandwidth in RBs */
146
147
uint32_t
m_dlEarfcn
{0};
///< downlink carrier frequency */
148
uint32_t
m_ulEarfcn
{0};
///< uplink carrier frequency */
149
};
27
class
ComponentCarrier
:
public
Object
{
…
};
150
151
/**
152
* @ingroup lte
153
*
154
* Defines a Base station, that is a ComponentCarrier but with a cell Id.
155
*
156
*/
157
class
ComponentCarrierBaseStation
:
public
ComponentCarrier
158
{
159
public
:
160
/**
161
* @brief Get the type ID.
162
* @return the object TypeId
163
*/
164
static
TypeId
GetTypeId
();
165
166
/**
167
* @brief Constructor
168
*/
169
ComponentCarrierBaseStation
();
170
171
/**
172
* @brief ~ComponentCarrierBaseStation
173
*/
174
~ComponentCarrierBaseStation
()
override
;
175
176
/**
177
* Get cell identifier
178
* @return cell identifier
179
*/
180
uint16_t
GetCellId
()
const
;
181
182
/**
183
* Set physical cell identifier
184
* @param cellId cell identifier
185
*/
186
void
SetCellId
(uint16_t cellId);
187
188
protected
:
189
uint16_t
m_cellId
{0};
///< Cell identifier
190
};
157
class
ComponentCarrierBaseStation
:
public
ComponentCarrier
{
…
};
191
192
}
// namespace ns3
193
194
#endif
/* COMPONENT_CARRIER_H */
ns3::ComponentCarrierBaseStation
Defines a Base station, that is a ComponentCarrier but with a cell Id.
Definition
component-carrier.h:158
ns3::ComponentCarrierBaseStation::~ComponentCarrierBaseStation
~ComponentCarrierBaseStation() override
~ComponentCarrierBaseStation
Definition
component-carrier.cc:239
ns3::ComponentCarrierBaseStation::GetCellId
uint16_t GetCellId() const
Get cell identifier.
Definition
component-carrier.cc:245
ns3::ComponentCarrierBaseStation::ComponentCarrierBaseStation
ComponentCarrierBaseStation()
Constructor.
Definition
component-carrier.cc:233
ns3::ComponentCarrierBaseStation::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
component-carrier.cc:225
ns3::ComponentCarrierBaseStation::SetCellId
void SetCellId(uint16_t cellId)
Set physical cell identifier.
Definition
component-carrier.cc:251
ns3::ComponentCarrierBaseStation::m_cellId
uint16_t m_cellId
Cell identifier.
Definition
component-carrier.h:189
ns3::ComponentCarrier
ComponentCarrier Object, it defines a single Carrier This is the parent class for both ComponentCarri...
Definition
component-carrier.h:28
ns3::ComponentCarrier::SetCsgIndication
void SetCsgIndication(bool csgIndication)
Enable or disable the CSG indication flag.
Definition
component-carrier.cc:201
ns3::ComponentCarrier::SetDlEarfcn
void SetDlEarfcn(uint32_t earfcn)
Definition
component-carrier.cc:162
ns3::ComponentCarrier::GetDlEarfcn
uint32_t GetDlEarfcn() const
Definition
component-carrier.cc:156
ns3::ComponentCarrier::GetUlBandwidth
uint16_t GetUlBandwidth() const
Definition
component-carrier.cc:102
ns3::ComponentCarrier::GetCsgIndication
bool GetCsgIndication() const
Returns the CSG indication flag of the eNodeB.
Definition
component-carrier.cc:195
ns3::ComponentCarrier::GetDlBandwidth
uint16_t GetDlBandwidth() const
Definition
component-carrier.cc:129
ns3::ComponentCarrier::m_csgIndication
bool m_csgIndication
CSG indication.
Definition
component-carrier.h:140
ns3::ComponentCarrier::~ComponentCarrier
~ComponentCarrier() override
Definition
component-carrier.cc:89
ns3::ComponentCarrier::ComponentCarrier
ComponentCarrier()
Definition
component-carrier.cc:83
ns3::ComponentCarrier::SetUlEarfcn
void SetUlEarfcn(uint32_t earfcn)
Definition
component-carrier.cc:175
ns3::ComponentCarrier::GetCsgId
uint32_t GetCsgId() const
Returns the CSG ID of the eNodeB.
Definition
component-carrier.cc:182
ns3::ComponentCarrier::SetAsPrimary
void SetAsPrimary(bool primaryCarrier)
Set as primary carrier.
Definition
component-carrier.cc:214
ns3::ComponentCarrier::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
component-carrier.cc:24
ns3::ComponentCarrier::m_dlBandwidth
uint16_t m_dlBandwidth
downlink bandwidth in RBs */
Definition
component-carrier.h:144
ns3::ComponentCarrier::DoDispose
void DoDispose() override
Destructor implementation.
Definition
component-carrier.cc:95
ns3::ComponentCarrier::SetCsgId
void SetCsgId(uint32_t csgId)
Associate the eNodeB device with a particular CSG.
Definition
component-carrier.cc:188
ns3::ComponentCarrier::m_ulEarfcn
uint32_t m_ulEarfcn
uplink carrier frequency */
Definition
component-carrier.h:148
ns3::ComponentCarrier::GetUlEarfcn
uint32_t GetUlEarfcn() const
Definition
component-carrier.cc:169
ns3::ComponentCarrier::SetUlBandwidth
virtual void SetUlBandwidth(uint16_t bw)
Definition
component-carrier.cc:108
ns3::ComponentCarrier::m_primaryCarrier
bool m_primaryCarrier
whether the carrier is primary
Definition
component-carrier.h:142
ns3::ComponentCarrier::IsPrimary
bool IsPrimary() const
Checks if the carrier is the primary carrier.
Definition
component-carrier.cc:208
ns3::ComponentCarrier::m_ulBandwidth
uint16_t m_ulBandwidth
uplink bandwidth in RBs */
Definition
component-carrier.h:145
ns3::ComponentCarrier::m_dlEarfcn
uint32_t m_dlEarfcn
downlink carrier frequency */
Definition
component-carrier.h:147
ns3::ComponentCarrier::SetDlBandwidth
virtual void SetDlBandwidth(uint16_t bw)
Definition
component-carrier.cc:135
ns3::ComponentCarrier::m_csgId
uint32_t m_csgId
CSG ID.
Definition
component-carrier.h:139
ns3::Object
A base class which provides memory management and object aggregation.
Definition
object.h:78
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:49
uint32_t
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
lte
model
component-carrier.h
Generated on Tue Apr 8 2025 15:27:15 for ns-3 by
1.11.0