author | Nicola Baldo <nbaldo@cttc.es> |
Mon, 04 Feb 2013 18:47:25 +0100 | |
changeset 9653 | 382d27da8905 |
parent 9460 | 0674e66ee483 |
permissions | -rw-r--r-- |
7886 | 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 |
||
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
24 |
#include <ns3/simple-ref-count.h> |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
25 |
#include <ns3/ptr.h> |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
26 |
#include <vector> |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
27 |
|
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
28 |
|
7886 | 29 |
/** |
30 |
* Constants. See section 4.4 |
|
31 |
*/ |
|
32 |
#define MAX_SCHED_CFG_LIST 10 |
|
33 |
#define MAX_LC_LIST 10 |
|
34 |
||
35 |
#define MAX_RACH_LIST 30 |
|
36 |
#define MAX_DL_INFO_LIST 30 |
|
37 |
#define MAX_BUILD_DATA_LIST 30 |
|
38 |
#define MAX_BUILD_RAR_LIST 10 |
|
39 |
#define MAX_BUILD_BC_LIST 3 |
|
40 |
#define MAX_UL_INFO_LIST 30 |
|
41 |
#define MAX_DCI_LIST 30 |
|
42 |
#define MAX_PHICH_LIST 30 |
|
43 |
#define MAX_TB_LIST 2 |
|
44 |
#define MAX_RLC_PDU_LIST 30 |
|
45 |
#define MAX_NR_LCG 4 |
|
46 |
#define MAX_MBSFN_CONFIG 5 |
|
47 |
#define MAX_SI_MSG_LIST 32 |
|
48 |
#define MAX_SI_MSG_SIZE 65535 |
|
49 |
||
50 |
#define MAX_CQI_LIST 30 |
|
51 |
#define MAX_UE_SELECTED_SB 6 |
|
52 |
#define MAX_HL_SB 25 |
|
53 |
#define MAX_SINR_RB_LIST 100 |
|
54 |
#define MAX_SR_LIST 30 |
|
55 |
#define MAX_MAC_CE_LIST 30 |
|
56 |
||
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
57 |
namespace ns3 { |
7886 | 58 |
|
59 |
enum Result_e |
|
60 |
{ |
|
61 |
SUCCESS, |
|
62 |
FAILURE |
|
63 |
}; |
|
64 |
||
65 |
enum SetupRelease_e |
|
66 |
{ |
|
67 |
setup, |
|
68 |
release |
|
69 |
}; |
|
70 |
||
71 |
enum CeBitmap_e |
|
72 |
{ |
|
73 |
TA, |
|
74 |
DRX, |
|
75 |
CR |
|
76 |
}; |
|
77 |
||
78 |
enum NormalExtended_e |
|
79 |
{ |
|
80 |
normal, |
|
81 |
extended |
|
82 |
}; |
|
83 |
||
84 |
||
85 |
/** |
|
86 |
* \brief See section 4.3.1 dlDciListElement |
|
87 |
*/ |
|
88 |
struct DlDciListElement_s |
|
89 |
{ |
|
90 |
uint16_t m_rnti; |
|
91 |
uint32_t m_rbBitmap; |
|
92 |
uint8_t m_rbShift; |
|
93 |
uint8_t m_resAlloc; |
|
94 |
std::vector <uint16_t> m_tbsSize; |
|
95 |
std::vector <uint8_t> m_mcs; |
|
96 |
std::vector <uint8_t> m_ndi; |
|
97 |
std::vector <uint8_t> m_rv; |
|
98 |
uint8_t m_cceIndex; |
|
99 |
uint8_t m_aggrLevel; |
|
100 |
uint8_t m_precodingInfo; |
|
101 |
enum Format_e |
|
102 |
{ |
|
103 |
ONE, ONE_A, ONE_B, ONE_C, ONE_D, TWO, TWO_A, TWO_B |
|
104 |
} m_format; |
|
105 |
uint8_t m_tpc; |
|
106 |
uint8_t m_harqProcess; |
|
107 |
uint8_t m_dai; |
|
108 |
enum VrbFormat_e |
|
109 |
{ |
|
110 |
VRB_DISTRIBUTED, |
|
111 |
VRB_LOCALIZED |
|
112 |
} m_vrbFormat; |
|
113 |
bool m_tbSwap; |
|
114 |
bool m_spsRelease; |
|
115 |
bool m_pdcchOrder; |
|
116 |
uint8_t m_preambleIndex; |
|
117 |
uint8_t m_prachMaskIndex; |
|
118 |
enum Ngap_e |
|
119 |
{ |
|
120 |
GAP1, GAP2 |
|
121 |
} m_nGap; |
|
122 |
uint8_t m_tbsIdx; |
|
123 |
uint8_t m_dlPowerOffset; |
|
124 |
uint8_t m_pdcchPowerOffset; |
|
125 |
}; |
|
126 |
||
127 |
/** |
|
128 |
* \brief See section 4.3.2 ulDciListElement |
|
129 |
*/ |
|
130 |
struct UlDciListElement_s |
|
131 |
{ |
|
132 |
uint16_t m_rnti; |
|
133 |
uint8_t m_rbStart; |
|
134 |
uint8_t m_rbLen; |
|
135 |
uint16_t m_tbSize; |
|
136 |
uint8_t m_mcs; |
|
137 |
uint8_t m_ndi; |
|
138 |
uint8_t m_cceIndex; |
|
139 |
uint8_t m_aggrLevel; |
|
140 |
uint8_t m_ueTxAntennaSelection; |
|
141 |
bool m_hopping; |
|
142 |
uint8_t m_n2Dmrs; |
|
143 |
int8_t m_tpc; |
|
144 |
bool m_cqiRequest; |
|
145 |
uint8_t m_ulIndex; |
|
146 |
uint8_t m_dai; |
|
147 |
uint8_t m_freqHopping; |
|
148 |
int8_t m_pdcchPowerOffset; |
|
149 |
}; |
|
150 |
||
151 |
/** |
|
9041
f04376f2d4ac
Update code after internal review
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9039
diff
changeset
|
152 |
* \brief Base class for storing the values of vendor specific parameters |
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
153 |
*/ |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
154 |
struct VendorSpecificValue : public SimpleRefCount<VendorSpecificValue> |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
155 |
{ |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
156 |
virtual ~VendorSpecificValue (); |
9041
f04376f2d4ac
Update code after internal review
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9039
diff
changeset
|
157 |
|
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
158 |
}; |
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
159 |
|
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
160 |
/** |
7886 | 161 |
* \brief See section 4.3.3 vendorSpecifiListElement |
162 |
*/ |
|
163 |
struct VendorSpecificListElement_s |
|
164 |
{ |
|
165 |
uint32_t m_type; |
|
166 |
uint32_t m_length; |
|
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
167 |
Ptr<VendorSpecificValue> m_value; |
7886 | 168 |
}; |
169 |
||
170 |
/** |
|
171 |
* \brief See section 4.3.4 logicalChannelConfigListElement |
|
172 |
*/ |
|
173 |
struct LogicalChannelConfigListElement_s |
|
174 |
{ |
|
175 |
uint8_t m_logicalChannelIdentity; |
|
176 |
uint8_t m_logicalChannelGroup; |
|
177 |
||
178 |
enum Direction_e |
|
179 |
{ |
|
180 |
DIR_UL, |
|
181 |
DIR_DL, |
|
182 |
DIR_BOTH |
|
183 |
} m_direction; |
|
184 |
||
185 |
enum QosBearerType_e |
|
186 |
{ |
|
187 |
QBT_NON_GBR, |
|
188 |
QBT_GBR |
|
189 |
} m_qosBearerType; |
|
190 |
||
191 |
uint8_t m_qci; |
|
192 |
uint64_t m_eRabMaximulBitrateUl; |
|
193 |
uint64_t m_eRabMaximulBitrateDl; |
|
194 |
uint64_t m_eRabGuaranteedBitrateUl; |
|
195 |
uint64_t m_eRabGuaranteedBitrateDl; |
|
196 |
}; |
|
197 |
||
198 |
/** |
|
199 |
* \brief See section 4.3.6 rachListElement |
|
200 |
*/ |
|
201 |
struct RachListElement_s |
|
202 |
{ |
|
203 |
uint16_t m_rnti; |
|
204 |
uint16_t m_estimatedSize; |
|
205 |
}; |
|
206 |
||
207 |
/** |
|
208 |
* \brief See section 4.3.7 phichListElement |
|
209 |
*/ |
|
210 |
struct PhichListElement_s |
|
211 |
{ |
|
212 |
uint16_t m_rnti; |
|
213 |
enum Phich_e |
|
214 |
{ |
|
215 |
ACK, NACK |
|
216 |
} m_phich; |
|
217 |
}; |
|
218 |
||
219 |
/** |
|
220 |
* \brief See section 4.3.9 rlcPDU_ListElement |
|
221 |
*/ |
|
222 |
struct RlcPduListElement_s |
|
223 |
{ |
|
224 |
uint8_t m_logicalChannelIdentity; |
|
225 |
uint16_t m_size; |
|
226 |
}; |
|
227 |
||
228 |
/** |
|
229 |
* \brief See section 4.3.8 builDataListElement |
|
230 |
*/ |
|
231 |
struct BuildDataListElement_s |
|
232 |
{ |
|
233 |
uint16_t m_rnti; |
|
234 |
struct DlDciListElement_s m_dci; |
|
235 |
std::vector <enum CeBitmap_e> m_ceBitmap; |
|
236 |
std::vector < std::vector <struct RlcPduListElement_s> > m_rlcPduList; |
|
237 |
}; |
|
238 |
||
239 |
/** |
|
9460
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
240 |
* \brief Substitutive structure for specifying BuildRarListElement_s::m_grant field |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
241 |
*/ |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
242 |
struct UlGrant_s |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
243 |
{ |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
244 |
uint16_t m_rnti; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
245 |
uint8_t m_rbStart; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
246 |
uint8_t m_rbLen; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
247 |
uint16_t m_tbSize; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
248 |
uint8_t m_mcs; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
249 |
bool m_hopping; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
250 |
int8_t m_tpc; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
251 |
bool m_cqiRequest; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
252 |
bool m_ulDelay; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
253 |
}; |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
254 |
|
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
255 |
/** |
7886 | 256 |
* \brief See section 4.3.10 buildRARListElement |
257 |
*/ |
|
258 |
struct BuildRarListElement_s |
|
259 |
{ |
|
260 |
uint16_t m_rnti; |
|
9460
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
261 |
//uint32_t m_grant; // Substituted with type UlGrant_s |
0674e66ee483
Introduces RACH procedures in the schedulers and UL grant at PHY layer
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9041
diff
changeset
|
262 |
UlGrant_s m_grant; |
7886 | 263 |
struct DlDciListElement_s m_dci; |
264 |
}; |
|
265 |
||
266 |
/** |
|
267 |
* \brief See section 4.3.11 buildBroadcastListElement |
|
268 |
*/ |
|
269 |
struct BuildBroadcastListElement_s |
|
270 |
{ |
|
271 |
enum Type_e |
|
272 |
{ |
|
273 |
BCCH, PCCH |
|
274 |
} m_type; |
|
275 |
uint8_t m_index; |
|
276 |
struct DlDciListElement_s m_dci; |
|
277 |
}; |
|
278 |
||
279 |
/** |
|
280 |
* \brief See section 4.3.12 ulInfoListElement |
|
281 |
*/ |
|
282 |
struct UlInfoListElement_s |
|
283 |
{ |
|
284 |
uint16_t m_rnti; |
|
285 |
std::vector <uint16_t> m_ulReception; |
|
286 |
enum ReceptionStatus_e |
|
287 |
{ |
|
288 |
Ok, NotOk, NotValid |
|
289 |
} m_receptionStatus; |
|
290 |
uint8_t m_tpc; |
|
291 |
}; |
|
292 |
||
293 |
/** |
|
294 |
* \brief See section 4.3.13 srListElement |
|
295 |
*/ |
|
296 |
struct SrListElement_s |
|
297 |
{ |
|
298 |
uint16_t m_rnti; |
|
299 |
}; |
|
300 |
||
301 |
/** |
|
302 |
* \brief See section 4.3.15 macCEValue |
|
303 |
*/ |
|
304 |
struct MacCeValue_u |
|
305 |
{ |
|
306 |
uint8_t m_phr; |
|
307 |
uint8_t m_crnti; |
|
308 |
std::vector <uint8_t> m_bufferStatus; |
|
309 |
}; |
|
310 |
||
311 |
/** |
|
312 |
* \brief See section 4.3.14 macCEListElement |
|
313 |
*/ |
|
314 |
struct MacCeListElement_s |
|
315 |
{ |
|
316 |
uint16_t m_rnti; |
|
317 |
enum MacCeType_e |
|
318 |
{ |
|
319 |
BSR, PHR, CRNTI |
|
320 |
} m_macCeType; |
|
321 |
struct MacCeValue_u m_macCeValue; |
|
322 |
}; |
|
323 |
||
324 |
/** |
|
325 |
* \brief See section 4.3.16 drxConfig |
|
326 |
*/ |
|
327 |
struct DrxConfig_s |
|
328 |
{ |
|
329 |
uint8_t m_onDurationTimer; |
|
330 |
uint16_t m_drxInactivityTimer; |
|
331 |
uint16_t m_drxRetransmissionTimer; |
|
332 |
uint16_t m_longDrxCycle; |
|
333 |
uint16_t m_longDrxCycleStartOffset; |
|
334 |
uint16_t m_shortDrxCycle; |
|
335 |
uint8_t m_drxShortCycleTimer; |
|
336 |
}; |
|
337 |
||
338 |
/** |
|
339 |
* \brief See section 4.3.17 spsConfig |
|
340 |
*/ |
|
341 |
struct SpsConfig_s |
|
342 |
{ |
|
343 |
uint16_t m_semiPersistSchedIntervalUl; |
|
344 |
uint16_t m_semiPersistSchedIntervalDl; |
|
345 |
uint8_t m_numberOfConfSpsProcesses; |
|
346 |
uint8_t m_n1PucchAnPersistentListSize; |
|
347 |
std::vector <uint16_t> m_n1PucchAnPersistentList; |
|
348 |
uint8_t m_implicitReleaseAfter; |
|
349 |
}; |
|
350 |
||
351 |
/** |
|
352 |
* \brief See section 4.3.18 srConfig |
|
353 |
*/ |
|
354 |
struct SrConfig_s |
|
355 |
{ |
|
356 |
enum SetupRelease_e m_action; |
|
357 |
uint8_t m_schedInterval; |
|
358 |
uint8_t m_dsrTransMax; |
|
359 |
}; |
|
360 |
||
361 |
/** |
|
362 |
* \brief See section 4.3.19 cqiConfig |
|
363 |
*/ |
|
364 |
struct CqiConfig_s |
|
365 |
{ |
|
366 |
enum SetupRelease_e m_action; |
|
367 |
uint16_t m_cqiSchedInterval; |
|
368 |
uint8_t m_riSchedInterval; |
|
369 |
}; |
|
370 |
||
371 |
/** |
|
372 |
* \brief See section 4.3.20 ueCapabilities |
|
373 |
*/ |
|
374 |
struct UeCapabilities_s |
|
375 |
{ |
|
376 |
bool m_halfDuplex; |
|
377 |
bool m_intraSfHopping; |
|
378 |
bool m_type2Sb1; |
|
379 |
uint8_t m_ueCategory; |
|
380 |
bool m_resAllocType1; |
|
381 |
}; |
|
382 |
||
383 |
/** |
|
384 |
* \brief See section 4.3.22 siMessageListElement |
|
385 |
*/ |
|
386 |
struct SiMessageListElement_s |
|
387 |
{ |
|
388 |
uint16_t m_periodicity; |
|
389 |
uint16_t m_length; |
|
390 |
}; |
|
391 |
||
392 |
/** |
|
393 |
* \brief See section 4.3.21 siConfiguration |
|
394 |
*/ |
|
395 |
struct SiConfiguration_s |
|
396 |
{ |
|
397 |
uint16_t m_sfn; |
|
398 |
uint16_t m_sib1Length; |
|
399 |
uint8_t m_siWindowLength; |
|
400 |
std::vector <struct SiMessageListElement_s> m_siMessageList; |
|
401 |
}; |
|
402 |
||
403 |
/** |
|
404 |
* \brief See section 4.3.23 dlInfoListElement |
|
405 |
*/ |
|
406 |
struct DlInfoListElement_s |
|
407 |
{ |
|
408 |
uint16_t m_rnti; |
|
409 |
uint8_t m_harqProcessId; |
|
410 |
enum HarqStatus_e |
|
411 |
{ |
|
412 |
ACK, NACK, DTX |
|
413 |
}; |
|
414 |
std::vector <enum HarqStatus_e> m_harqStatus; |
|
415 |
}; |
|
416 |
||
417 |
/** |
|
418 |
* \brief See section 4.3.28 bwPart |
|
419 |
*/ |
|
420 |
struct BwPart_s |
|
421 |
{ |
|
422 |
uint8_t m_bwPartIndex; |
|
423 |
uint8_t m_sb; |
|
424 |
uint8_t m_cqi; |
|
425 |
}; |
|
426 |
||
427 |
/** |
|
428 |
* \brief See section 4.3.27 higherLayerSelected |
|
429 |
*/ |
|
430 |
struct HigherLayerSelected_s |
|
431 |
{ |
|
432 |
uint8_t m_sbPmi; |
|
433 |
std::vector <uint8_t> m_sbCqi; |
|
434 |
}; |
|
435 |
||
436 |
/** |
|
437 |
* \brief See section 4.3.26 ueSelected |
|
438 |
*/ |
|
439 |
struct UeSelected_s |
|
440 |
{ |
|
441 |
std::vector <uint8_t> m_sbList; |
|
442 |
uint8_t m_sbPmi; |
|
443 |
std::vector <uint8_t> m_sbCqi; |
|
444 |
}; |
|
445 |
||
446 |
/** |
|
447 |
* \brief See section 4.3.25 sbMeasResult |
|
448 |
*/ |
|
449 |
struct SbMeasResult_s |
|
450 |
{ |
|
451 |
struct UeSelected_s m_ueSelected; |
|
452 |
std::vector <struct HigherLayerSelected_s> m_higherLayerSelected; |
|
453 |
struct BwPart_s m_bwPart; |
|
454 |
}; |
|
455 |
||
456 |
/** |
|
457 |
* \brief See section 4.3.24 cqiListElement |
|
458 |
*/ |
|
459 |
struct CqiListElement_s |
|
460 |
{ |
|
461 |
uint16_t m_rnti; |
|
462 |
uint8_t m_ri; |
|
463 |
enum CqiType_e |
|
464 |
{ |
|
465 |
P10, P11, P20, P21, A12, A22, A20, A30, A31 |
|
466 |
} m_cqiType; |
|
467 |
std::vector <uint8_t> m_wbCqi; |
|
468 |
uint8_t m_wbPmi; |
|
469 |
||
470 |
struct SbMeasResult_s m_sbMeasResult; |
|
471 |
}; |
|
472 |
||
473 |
/** |
|
474 |
* \brief See section 4.3.29 ulCQI |
|
475 |
*/ |
|
476 |
struct UlCqi_s |
|
477 |
{ |
|
478 |
std::vector <uint16_t> m_sinr; |
|
479 |
enum Type_e |
|
480 |
{ |
|
481 |
SRS, |
|
482 |
PUSCH, |
|
483 |
PUCCH_1, |
|
484 |
PUCCH_2, |
|
485 |
PRACH |
|
486 |
} m_type; |
|
487 |
}; |
|
488 |
||
489 |
/** |
|
490 |
* \brief See section 4.3.30 pagingInfoListElement |
|
491 |
*/ |
|
492 |
struct PagingInfoListElement_s |
|
493 |
{ |
|
494 |
uint8_t m_pagingIndex; |
|
495 |
uint16_t m_pagingMessageSize; |
|
496 |
uint8_t m_pagingSubframe; |
|
497 |
}; |
|
498 |
||
9039
5bdf0c1be85f
Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents:
7886
diff
changeset
|
499 |
} // namespace ns3 |
7886 | 500 |
|
501 |
#endif /* FF_MAC_COMMON_H */ |