A Discrete-Event Network Simulator
API
 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 
54 {
57 };
58 
60 {
63 };
64 
66 {
67  TA,
68  DRX,
70 };
71 
73 {
76 };
77 
78 
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  {
98  } m_format;
99  uint8_t m_tpc;
100  uint8_t m_harqProcess;
101  uint8_t m_dai;
103  {
106  } m_vrbFormat;
107  bool m_tbSwap;
112  enum Ngap_e
113  {
115  } m_nGap;
116  uint8_t m_tbsIdx;
119 };
120 
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;
135  bool m_hopping;
136  uint8_t m_n2Dmrs;
137  int8_t m_tpc;
139  uint8_t m_ulIndex;
140  uint8_t m_dai;
141  uint8_t m_freqHopping;
143 };
144 
149 {
150  uint32_t m_type;
151  uint32_t m_length;
152  void *m_value;
153 };
154 
159 {
162 
164  {
168  } m_direction;
169 
171  {
174  } m_qosBearerType;
175 
176  uint8_t m_qci;
181 };
182 
187 {
188  uint16_t m_rnti;
189  uint16_t m_estimatedSize;
190 };
191 
196 {
197  uint16_t m_rnti;
198  enum Phich_e
199  {
201  } m_phich;
202 };
203 
208 {
210  uint16_t m_size;
211 };
212 
217 {
218  uint16_t m_rnti;
220  std::vector <enum CeBitmap_e> m_ceBitmap;
221  std::vector < std::vector <struct RlcPduListElement_s> > m_rlcPduList;
222 };
223 
228 {
229  uint16_t m_rnti;
230  uint32_t m_grant;
232 };
233 
238 {
239  enum Type_e
240  {
242  } m_type;
243  uint8_t m_index;
245 };
246 
251 {
252  uint16_t m_rnti;
253  std::vector <uint16_t> m_ulReception;
255  {
258  uint8_t m_tpc;
259 };
260 
265 {
266  uint16_t m_rnti;
267 };
268 
273 {
274  uint8_t m_phr;
275  uint8_t m_crnti;
276  std::vector <uint8_t> m_bufferStatus;
277 };
278 
283 {
284  uint16_t m_rnti;
286  {
288  } m_macCeType;
290 };
291 
296 {
300  uint16_t m_longDrxCycle;
302  uint16_t m_shortDrxCycle;
304 };
305 
310 {
315  std::vector <uint16_t> m_n1PucchAnPersistentList;
317 };
318 
323 {
326  uint8_t m_dsrTransMax;
327 };
328 
333 {
337 };
338 
343 {
347  uint8_t m_ueCategory;
349 };
350 
355 {
356  uint16_t m_periodicity;
357  uint16_t m_length;
358 };
359 
364 {
365  uint16_t m_sfn;
366  uint16_t m_sib1Length;
368  std::vector <struct SiMessageListElement_s> m_siMessageList;
369 };
370 
375 {
376  uint16_t m_rnti;
379  {
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 
399 {
400  uint8_t m_sbPmi;
401  std::vector <uint8_t> m_sbCqi;
402 };
403 
408 {
409  std::vector <uint8_t> m_sbList;
410  uint8_t m_sbPmi;
411  std::vector <uint8_t> m_sbCqi;
412 };
413 
418 {
420  std::vector <struct HigherLayerSelected_s> m_higherLayerSelected;
422 };
423 
428 {
429  uint16_t m_rnti;
430  uint8_t m_ri;
432  {
434  } m_cqiType;
435  std::vector <uint8_t> m_wbCqi;
436  uint8_t m_wbPmi;
437 
439 };
440 
444 struct UlCqi_s
445 {
446  std::vector <uint16_t> m_sinr;
447  enum Type_e
448  {
454  } m_type;
455 };
456 
461 {
462  uint8_t m_pagingIndex;
465 };
466 
467 
468 #endif /* FF_MAC_COMMON_H */