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 
24 #include <ns3/simple-ref-count.h>
25 #include <ns3/ptr.h>
26 #include <vector>
27 
28 
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 
57 namespace ns3 {
58 
60 {
63 };
64 
66 {
69 };
70 
72 {
73  TA,
74  DRX,
76 };
77 
79 {
82 };
83 
84 
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;
101  enum Format_e
102  {
104  } m_format;
105  uint8_t m_tpc;
106  uint8_t m_harqProcess;
107  uint8_t m_dai;
109  {
112  } m_vrbFormat;
113  bool m_tbSwap;
118  enum Ngap_e
119  {
121  } m_nGap;
122  uint8_t m_tbsIdx;
125 };
126 
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;
141  bool m_hopping;
142  uint8_t m_n2Dmrs;
143  int8_t m_tpc;
145  uint8_t m_ulIndex;
146  uint8_t m_dai;
147  uint8_t m_freqHopping;
149 };
150 
154 struct VendorSpecificValue : public SimpleRefCount<VendorSpecificValue>
155 {
156  virtual ~VendorSpecificValue ();
157 
158 };
159 
164 {
165  uint32_t m_type;
166  uint32_t m_length;
168 };
169 
174 {
177 
179  {
183  } m_direction;
184 
186  {
189  } m_qosBearerType;
190 
191  uint8_t m_qci;
196 };
197 
202 {
203  uint16_t m_rnti;
204  uint16_t m_estimatedSize;
205 };
206 
211 {
212  uint16_t m_rnti;
213  enum Phich_e
214  {
216  } m_phich;
217 };
218 
223 {
225  uint16_t m_size;
226 };
227 
232 {
233  uint16_t m_rnti;
235  std::vector <enum CeBitmap_e> m_ceBitmap;
236  std::vector < std::vector <struct RlcPduListElement_s> > m_rlcPduList;
237 };
238 
243 {
244  uint16_t m_rnti;
245  uint32_t m_grant;
247 };
248 
253 {
254  enum Type_e
255  {
257  } m_type;
258  uint8_t m_index;
260 };
261 
266 {
267  uint16_t m_rnti;
268  std::vector <uint16_t> m_ulReception;
270  {
273  uint8_t m_tpc;
274 };
275 
280 {
281  uint16_t m_rnti;
282 };
283 
288 {
289  uint8_t m_phr;
290  uint8_t m_crnti;
291  std::vector <uint8_t> m_bufferStatus;
292 };
293 
298 {
299  uint16_t m_rnti;
301  {
303  } m_macCeType;
305 };
306 
311 {
315  uint16_t m_longDrxCycle;
317  uint16_t m_shortDrxCycle;
319 };
320 
325 {
330  std::vector <uint16_t> m_n1PucchAnPersistentList;
332 };
333 
338 {
341  uint8_t m_dsrTransMax;
342 };
343 
348 {
352 };
353 
358 {
362  uint8_t m_ueCategory;
364 };
365 
370 {
371  uint16_t m_periodicity;
372  uint16_t m_length;
373 };
374 
379 {
380  uint16_t m_sfn;
381  uint16_t m_sib1Length;
383  std::vector <struct SiMessageListElement_s> m_siMessageList;
384 };
385 
390 {
391  uint16_t m_rnti;
394  {
396  };
397  std::vector <enum HarqStatus_e> m_harqStatus;
398 };
399 
403 struct BwPart_s
404 {
405  uint8_t m_bwPartIndex;
406  uint8_t m_sb;
407  uint8_t m_cqi;
408 };
409 
414 {
415  uint8_t m_sbPmi;
416  std::vector <uint8_t> m_sbCqi;
417 };
418 
423 {
424  std::vector <uint8_t> m_sbList;
425  uint8_t m_sbPmi;
426  std::vector <uint8_t> m_sbCqi;
427 };
428 
433 {
435  std::vector <struct HigherLayerSelected_s> m_higherLayerSelected;
437 };
438 
443 {
444  uint16_t m_rnti;
445  uint8_t m_ri;
447  {
449  } m_cqiType;
450  std::vector <uint8_t> m_wbCqi;
451  uint8_t m_wbPmi;
452 
454 };
455 
459 struct UlCqi_s
460 {
461  std::vector <uint16_t> m_sinr;
462  enum Type_e
463  {
469  } m_type;
470 };
471 
476 {
477  uint8_t m_pagingIndex;
480 };
481 
482 } // namespace ns3
483 
484 #endif /* FF_MAC_COMMON_H */