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-control-messages.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
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: Giuseppe Piro <g.piro@poliba.it>
19
* Author: Marco Miozzo <marco.miozzo@cttc.es>
20
*/
21
22
#ifndef LTE_CONTROL_MESSAGES_H
23
#define LTE_CONTROL_MESSAGES_H
24
25
#include "ns3/ptr.h"
26
#include "ns3/simple-ref-count.h"
27
#include <list>
28
29
namespace
ns3 {
30
31
class
LteNetDevice;
32
33
41
class
LteControlMessage
:
public
SimpleRefCount
<LteControlMessage>
42
{
43
public
:
52
enum
MessageType
53
{
54
DL_DCI
,
UL_DCI
,
// Downlink/Uplink Data Control Indicator
55
DL_CQI
,
UL_CQI
,
// Downlink/Uplink Channel Quality Indicator
56
BSR
,
// Buffer Status Report
57
DL_HARQ
,
// UL HARQ feedback
58
RACH_PREAMBLE
,
// Random Access Preamble
59
RAR
,
// Random Access Response
60
MIB
,
// Master Information Block
61
};
62
63
LteControlMessage
(
void
);
64
virtual
~LteControlMessage
(
void
);
65
70
void
SetMessageType
(
MessageType
type);
75
MessageType
GetMessageType
(
void
);
76
77
private
:
78
MessageType
m_type
;
79
};
80
}
// namespace ns3
81
82
#endif
/* LTE_CONTROL_MESSAGES_H */
83
84
85
86
87
// -----------------------------------------------------------------------
88
89
90
#ifndef DL_DCI_LTE_CONTROL_MESSAGES_H
91
#define DL_DCI_LTE_CONTROL_MESSAGES_H
92
93
#include <ns3/object.h>
94
#include <ns3/ff-mac-common.h>
95
96
namespace
ns3 {
97
103
class
DlDciLteControlMessage
:
public
LteControlMessage
104
{
105
public
:
106
DlDciLteControlMessage
(
void
);
107
virtual
~DlDciLteControlMessage
(
void
);
108
113
void
SetDci
(
DlDciListElement_s
dci);
114
119
DlDciListElement_s
GetDci
(
void
);
120
121
122
private
:
123
DlDciListElement_s
m_dci
;
124
};
125
}
// namespace ns3
126
127
#endif
/* DL_DCI_LTE_CONTROL_MESSAGES_H */
128
129
130
// ---------------------------------------------------------------------------
131
132
133
#ifndef UL_DCI_LTE_CONTROL_MESSAGES_H
134
#define UL_DCI_LTE_CONTROL_MESSAGES_H
135
136
#include <ns3/object.h>
137
#include <ns3/ff-mac-common.h>
138
139
namespace
ns3 {
140
146
class
UlDciLteControlMessage
:
public
LteControlMessage
147
{
148
public
:
149
UlDciLteControlMessage
(
void
);
150
virtual
~UlDciLteControlMessage
(
void
);
151
156
void
SetDci
(
UlDciListElement_s
dci);
157
162
UlDciListElement_s
GetDci
(
void
);
163
164
165
private
:
166
UlDciListElement_s
m_dci
;
167
};
168
}
// namespace ns3
169
170
#endif
/* UL_DCI_LTE_CONTROL_MESSAGES_H */
171
172
173
174
// ---------------------------------------------------------------------------
175
176
177
178
#ifndef DLCQI_LTE_CONTROL_MESSAGES_H
179
#define DLCQI_LTE_CONTROL_MESSAGES_H
180
181
#include <ns3/object.h>
182
#include <ns3/ff-mac-common.h>
183
184
namespace
ns3 {
185
186
class
LteNetDevice;
187
193
class
DlCqiLteControlMessage
:
public
LteControlMessage
194
{
195
public
:
196
DlCqiLteControlMessage
(
void
);
197
virtual
~DlCqiLteControlMessage
(
void
);
198
203
void
SetDlCqi
(
CqiListElement_s
dlcqi);
204
209
CqiListElement_s
GetDlCqi
(
void
);
210
211
212
private
:
213
CqiListElement_s
m_dlCqi
;
214
};
215
}
// namespace ns3
216
217
#endif
/* DLCQI_LTE_CONTROL_MESSAGES_H */
218
219
220
// ---------------------------------------------------------------------------
221
222
#ifndef BSR_LTE_CONTROL_MESSAGES_H
223
#define BSR_LTE_CONTROL_MESSAGES_H
224
225
#include <ns3/object.h>
226
#include <ns3/ff-mac-common.h>
227
228
namespace
ns3 {
229
230
class
LteNetDevice;
231
237
class
BsrLteControlMessage
:
public
LteControlMessage
238
{
239
public
:
240
BsrLteControlMessage
(
void
);
241
virtual
~BsrLteControlMessage
(
void
);
242
247
void
SetBsr
(
MacCeListElement_s
ulcqi);
248
253
MacCeListElement_s
GetBsr
(
void
);
254
255
256
private
:
257
MacCeListElement_s
m_bsr
;
258
259
260
};
261
262
}
// namespace ns3
263
264
#endif
/* BSR_LTE_CONTROL_MESSAGES_H */
265
266
267
// ---------------------------------------------------------------------------
268
269
#ifndef DL_HARQ_LTE_CONTROL_MESSAGES_H
270
#define DL_HARQ_LTE_CONTROL_MESSAGES_H
271
272
#include <ns3/object.h>
273
#include <ns3/ff-mac-common.h>
274
275
namespace
ns3 {
276
282
class
DlHarqFeedbackLteControlMessage
:
public
LteControlMessage
283
{
284
public
:
285
DlHarqFeedbackLteControlMessage
(
void
);
286
virtual
~DlHarqFeedbackLteControlMessage
(
void
);
287
292
void
SetDlHarqFeedback
(
DlInfoListElement_s
m);
293
298
DlInfoListElement_s
GetDlHarqFeedback
(
void
);
299
300
301
private
:
302
DlInfoListElement_s
m_dlInfoListElement
;
303
304
305
};
306
}
// namespace ns3
307
308
#endif
/* DL_HARQ_LTE_CONTROL_MESSAGES_H */
309
310
311
#ifndef RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
312
#define RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
313
314
#include <ns3/object.h>
315
#include <ns3/ff-mac-common.h>
316
317
namespace
ns3 {
318
319
class
LteNetDevice;
320
326
class
RachPreambleLteControlMessage
:
public
LteControlMessage
327
{
328
public
:
329
RachPreambleLteControlMessage
(
void
);
330
331
337
void
SetRapId
(uint32_t rapid);
338
343
uint32_t
GetRapId
()
const
;
344
345
private
:
346
347
uint32_t
m_rapId
;
348
349
350
};
351
352
}
// namespace ns3
353
354
#endif // RACH_PREAMBLE_LTE_CONTROL_MESSAGES_H
355
356
357
#ifndef RAR_LTE_CONTROL_MESSAGES_H
358
#define RAR_LTE_CONTROL_MESSAGES_H
359
360
#include <ns3/object.h>
361
#include <ns3/ff-mac-common.h>
362
363
namespace
ns3 {
364
365
class
LteNetDevice;
366
372
class
RarLteControlMessage
:
public
LteControlMessage
373
{
374
public
:
375
RarLteControlMessage
(
void
);
376
381
void
SetRaRnti
(uint16_t raRnti);
382
387
uint16_t
GetRaRnti
()
const
;
388
393
struct
Rar
394
{
395
uint8_t
rapId
;
396
BuildRarListElement_s
rarPayload
;
397
};
398
404
void
AddRar
(
Rar
rar);
405
410
std::list<Rar>::const_iterator
RarListBegin
()
const
;
411
416
std::list<Rar>::const_iterator
RarListEnd
()
const
;
417
418
419
private
:
420
421
std::list<Rar>
m_rarList
;
422
uint16_t
m_raRnti
;
423
424
};
425
426
}
// namespace ns3
427
428
#endif // RAR_LTE_CONTROL_MESSAGES_H
429
430
431
432
433
#ifndef MIB_LTE_CONTROL_MESSAGES_H
434
#define MIB_LTE_CONTROL_MESSAGES_H
435
436
#include <ns3/object.h>
437
#include <ns3/ff-mac-common.h>
438
#include <ns3/lte-rrc-sap.h>
439
440
namespace
ns3 {
441
442
class
LteNetDevice;
443
449
class
MibLteControlMessage
:
public
LteControlMessage
450
{
451
public
:
452
453
MibLteControlMessage
(
void
);
454
455
void
SetMib
(
LteRrcSap::MasterInformationBlock
mib);
456
457
LteRrcSap::MasterInformationBlock
GetMib
()
const
;
458
459
private
:
460
461
LteRrcSap::MasterInformationBlock
m_mib
;
462
463
};
464
465
}
// namespace ns3
466
467
#endif // MIB_LTE_CONTROL_MESSAGES_H
src
lte
model
lte-control-messages.h
Generated on Fri Aug 30 2013 01:42:54 for ns-3 by
1.8.1.2