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
ff-mac-common.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: Manuel Requena <manuel.requena@cttc.es>
19
*/
20
21
#ifndef FF_MAC_COMMON_H
22
#define FF_MAC_COMMON_H
23
27
#define MAX_SCHED_CFG_LIST 10
28
#define MAX_LC_LIST 10
29
30
#define MAX_RACH_LIST 30
31
#define MAX_DL_INFO_LIST 30
32
#define MAX_BUILD_DATA_LIST 30
33
#define MAX_BUILD_RAR_LIST 10
34
#define MAX_BUILD_BC_LIST 3
35
#define MAX_UL_INFO_LIST 30
36
#define MAX_DCI_LIST 30
37
#define MAX_PHICH_LIST 30
38
#define MAX_TB_LIST 2
39
#define MAX_RLC_PDU_LIST 30
40
#define MAX_NR_LCG 4
41
#define MAX_MBSFN_CONFIG 5
42
#define MAX_SI_MSG_LIST 32
43
#define MAX_SI_MSG_SIZE 65535
44
45
#define MAX_CQI_LIST 30
46
#define MAX_UE_SELECTED_SB 6
47
#define MAX_HL_SB 25
48
#define MAX_SINR_RB_LIST 100
49
#define MAX_SR_LIST 30
50
#define MAX_MAC_CE_LIST 30
51
52
53
enum
Result_e
54
{
55
SUCCESS
,
56
FAILURE
57
};
58
59
enum
SetupRelease_e
60
{
61
setup
,
62
release
63
};
64
65
enum
CeBitmap_e
66
{
67
TA
,
68
DRX
,
69
CR
70
};
71
72
enum
NormalExtended_e
73
{
74
normal
,
75
extended
76
};
77
78
82
struct
DlDciListElement_s
83
{
84
uint16_t
m_rnti
;
85
uint32_t
m_rbBitmap
;
86
uint8_t
m_rbShift
;
87
uint8_t
m_resAlloc
;
88
std::vector <uint16_t>
m_tbsSize
;
89
std::vector <uint8_t>
m_mcs
;
90
std::vector <uint8_t>
m_ndi
;
91
std::vector <uint8_t>
m_rv
;
92
uint8_t
m_cceIndex
;
93
uint8_t
m_aggrLevel
;
94
uint8_t
m_precodingInfo
;
95
enum
Format_e
96
{
97
ONE
,
ONE_A
,
ONE_B
,
ONE_C
,
ONE_D
,
TWO
,
TWO_A
,
TWO_B
98
}
m_format
;
99
uint8_t
m_tpc
;
100
uint8_t
m_harqProcess
;
101
uint8_t
m_dai
;
102
enum
VrbFormat_e
103
{
104
VRB_DISTRIBUTED
,
105
VRB_LOCALIZED
106
}
m_vrbFormat
;
107
bool
m_tbSwap
;
108
bool
m_spsRelease
;
109
bool
m_pdcchOrder
;
110
uint8_t
m_preambleIndex
;
111
uint8_t
m_prachMaskIndex
;
112
enum
Ngap_e
113
{
114
GAP1
,
GAP2
115
}
m_nGap
;
116
uint8_t
m_tbsIdx
;
117
uint8_t
m_dlPowerOffset
;
118
uint8_t
m_pdcchPowerOffset
;
119
};
120
124
struct
UlDciListElement_s
125
{
126
uint16_t
m_rnti
;
127
uint8_t
m_rbStart
;
128
uint8_t
m_rbLen
;
129
uint16_t
m_tbSize
;
130
uint8_t
m_mcs
;
131
uint8_t
m_ndi
;
132
uint8_t
m_cceIndex
;
133
uint8_t
m_aggrLevel
;
134
uint8_t
m_ueTxAntennaSelection
;
135
bool
m_hopping
;
136
uint8_t
m_n2Dmrs
;
137
int8_t
m_tpc
;
138
bool
m_cqiRequest
;
139
uint8_t
m_ulIndex
;
140
uint8_t
m_dai
;
141
uint8_t
m_freqHopping
;
142
int8_t
m_pdcchPowerOffset
;
143
};
144
148
struct
VendorSpecificListElement_s
149
{
150
uint32_t
m_type
;
151
uint32_t
m_length
;
152
void
*
m_value
;
153
};
154
158
struct
LogicalChannelConfigListElement_s
159
{
160
uint8_t
m_logicalChannelIdentity
;
161
uint8_t
m_logicalChannelGroup
;
162
163
enum
Direction_e
164
{
165
DIR_UL
,
166
DIR_DL
,
167
DIR_BOTH
168
}
m_direction
;
169
170
enum
QosBearerType_e
171
{
172
QBT_NON_GBR
,
173
QBT_GBR
174
}
m_qosBearerType
;
175
176
uint8_t
m_qci
;
177
uint64_t
m_eRabMaximulBitrateUl
;
178
uint64_t
m_eRabMaximulBitrateDl
;
179
uint64_t
m_eRabGuaranteedBitrateUl
;
180
uint64_t
m_eRabGuaranteedBitrateDl
;
181
};
182
186
struct
RachListElement_s
187
{
188
uint16_t
m_rnti
;
189
uint16_t
m_estimatedSize
;
190
};
191
195
struct
PhichListElement_s
196
{
197
uint16_t
m_rnti
;
198
enum
Phich_e
199
{
200
ACK
,
NACK
201
}
m_phich
;
202
};
203
207
struct
RlcPduListElement_s
208
{
209
uint8_t
m_logicalChannelIdentity
;
210
uint16_t
m_size
;
211
};
212
216
struct
BuildDataListElement_s
217
{
218
uint16_t
m_rnti
;
219
struct
DlDciListElement_s
m_dci
;
220
std::vector <enum CeBitmap_e>
m_ceBitmap
;
221
std::vector < std::vector <struct RlcPduListElement_s> >
m_rlcPduList
;
222
};
223
227
struct
BuildRarListElement_s
228
{
229
uint16_t
m_rnti
;
230
uint32_t
m_grant
;
231
struct
DlDciListElement_s
m_dci
;
232
};
233
237
struct
BuildBroadcastListElement_s
238
{
239
enum
Type_e
240
{
241
BCCH
,
PCCH
242
}
m_type
;
243
uint8_t
m_index
;
244
struct
DlDciListElement_s
m_dci
;
245
};
246
250
struct
UlInfoListElement_s
251
{
252
uint16_t
m_rnti
;
253
std::vector <uint16_t>
m_ulReception
;
254
enum
ReceptionStatus_e
255
{
256
Ok
,
NotOk
,
NotValid
257
}
m_receptionStatus
;
258
uint8_t
m_tpc
;
259
};
260
264
struct
SrListElement_s
265
{
266
uint16_t
m_rnti
;
267
};
268
272
struct
MacCeValue_u
273
{
274
uint8_t
m_phr
;
275
uint8_t
m_crnti
;
276
std::vector <uint8_t>
m_bufferStatus
;
277
};
278
282
struct
MacCeListElement_s
283
{
284
uint16_t
m_rnti
;
285
enum
MacCeType_e
286
{
287
BSR
,
PHR
,
CRNTI
288
}
m_macCeType
;
289
struct
MacCeValue_u
m_macCeValue
;
290
};
291
295
struct
DrxConfig_s
296
{
297
uint8_t
m_onDurationTimer
;
298
uint16_t
m_drxInactivityTimer
;
299
uint16_t
m_drxRetransmissionTimer
;
300
uint16_t
m_longDrxCycle
;
301
uint16_t
m_longDrxCycleStartOffset
;
302
uint16_t
m_shortDrxCycle
;
303
uint8_t
m_drxShortCycleTimer
;
304
};
305
309
struct
SpsConfig_s
310
{
311
uint16_t
m_semiPersistSchedIntervalUl
;
312
uint16_t
m_semiPersistSchedIntervalDl
;
313
uint8_t
m_numberOfConfSpsProcesses
;
314
uint8_t
m_n1PucchAnPersistentListSize
;
315
std::vector <uint16_t>
m_n1PucchAnPersistentList
;
316
uint8_t
m_implicitReleaseAfter
;
317
};
318
322
struct
SrConfig_s
323
{
324
enum
SetupRelease_e
m_action
;
325
uint8_t
m_schedInterval
;
326
uint8_t
m_dsrTransMax
;
327
};
328
332
struct
CqiConfig_s
333
{
334
enum
SetupRelease_e
m_action
;
335
uint16_t
m_cqiSchedInterval
;
336
uint8_t
m_riSchedInterval
;
337
};
338
342
struct
UeCapabilities_s
343
{
344
bool
m_halfDuplex
;
345
bool
m_intraSfHopping
;
346
bool
m_type2Sb1
;
347
uint8_t
m_ueCategory
;
348
bool
m_resAllocType1
;
349
};
350
354
struct
SiMessageListElement_s
355
{
356
uint16_t
m_periodicity
;
357
uint16_t
m_length
;
358
};
359
363
struct
SiConfiguration_s
364
{
365
uint16_t
m_sfn
;
366
uint16_t
m_sib1Length
;
367
uint8_t
m_siWindowLength
;
368
std::vector <struct SiMessageListElement_s>
m_siMessageList
;
369
};
370
374
struct
DlInfoListElement_s
375
{
376
uint16_t
m_rnti
;
377
uint8_t
m_harqProcessId
;
378
enum
HarqStatus_e
379
{
380
ACK
,
NACK
,
DTX
381
};
382
std::vector <enum HarqStatus_e>
m_harqStatus
;
383
};
384
388
struct
BwPart_s
389
{
390
uint8_t
m_bwPartIndex
;
391
uint8_t
m_sb
;
392
uint8_t
m_cqi
;
393
};
394
398
struct
HigherLayerSelected_s
399
{
400
uint8_t
m_sbPmi
;
401
std::vector <uint8_t>
m_sbCqi
;
402
};
403
407
struct
UeSelected_s
408
{
409
std::vector <uint8_t>
m_sbList
;
410
uint8_t
m_sbPmi
;
411
std::vector <uint8_t>
m_sbCqi
;
412
};
413
417
struct
SbMeasResult_s
418
{
419
struct
UeSelected_s
m_ueSelected
;
420
std::vector <struct HigherLayerSelected_s>
m_higherLayerSelected
;
421
struct
BwPart_s
m_bwPart
;
422
};
423
427
struct
CqiListElement_s
428
{
429
uint16_t
m_rnti
;
430
uint8_t
m_ri
;
431
enum
CqiType_e
432
{
433
P10
,
P11
,
P20
,
P21
,
A12
,
A22
,
A20
,
A30
,
A31
434
}
m_cqiType
;
435
std::vector <uint8_t>
m_wbCqi
;
436
uint8_t
m_wbPmi
;
437
438
struct
SbMeasResult_s
m_sbMeasResult
;
439
};
440
444
struct
UlCqi_s
445
{
446
std::vector <uint16_t>
m_sinr
;
447
enum
Type_e
448
{
449
SRS
,
450
PUSCH
,
451
PUCCH_1
,
452
PUCCH_2
,
453
PRACH
454
}
m_type
;
455
};
456
460
struct
PagingInfoListElement_s
461
{
462
uint8_t
m_pagingIndex
;
463
uint16_t
m_pagingMessageSize
;
464
uint8_t
m_pagingSubframe
;
465
};
466
467
468
#endif
/* FF_MAC_COMMON_H */
src
lte
model
ff-mac-common.h
Generated on Tue Nov 13 2012 10:32:16 for ns-3 by
1.8.1.2