src/lte/model/ff-mac-common.h
author Nicola Baldo <nbaldo@cttc.es>
Mon, 04 Feb 2013 18:47:25 +0100
changeset 9653 382d27da8905
parent 9460 0674e66ee483
permissions -rw-r--r--
merged lena-dev with ns-3-dev
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     2
/*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     4
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     7
 * published by the Free Software Foundation;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     8
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    12
 * GNU General Public License for more details.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    13
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    17
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    18
 * Author: Manuel Requena <manuel.requena@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    19
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    20
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
#ifndef FF_MAC_COMMON_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
#define FF_MAC_COMMON_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
 * Constants. See section 4.4
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
#define MAX_SCHED_CFG_LIST    10
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
#define MAX_LC_LIST           10
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    34
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    35
#define MAX_RACH_LIST         30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    36
#define MAX_DL_INFO_LIST      30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
#define MAX_BUILD_DATA_LIST   30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
#define MAX_BUILD_RAR_LIST    10
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
#define MAX_BUILD_BC_LIST     3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
#define MAX_UL_INFO_LIST      30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
#define MAX_DCI_LIST          30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
#define MAX_PHICH_LIST        30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
#define MAX_TB_LIST           2
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
#define MAX_RLC_PDU_LIST      30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
#define MAX_NR_LCG            4
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
#define MAX_MBSFN_CONFIG      5
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
#define MAX_SI_MSG_LIST       32
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
#define MAX_SI_MSG_SIZE       65535
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
#define MAX_CQI_LIST          30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    51
#define MAX_UE_SELECTED_SB    6
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    52
#define MAX_HL_SB             25
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    53
#define MAX_SINR_RB_LIST      100
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    54
#define MAX_SR_LIST           30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
#define MAX_MAC_CE_LIST       30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    58
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    59
enum Result_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    60
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    61
  SUCCESS,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
  FAILURE
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    63
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    64
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    65
enum SetupRelease_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    67
  setup,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    68
  release
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    69
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    70
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    71
enum CeBitmap_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
  TA,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
  DRX,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    75
  CR
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    76
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    77
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    78
enum NormalExtended_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    79
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    80
  normal,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    81
  extended
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    82
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    83
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    84
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    85
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    86
 * \brief See section 4.3.1 dlDciListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    87
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    88
struct DlDciListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    89
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    90
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    91
  uint32_t  m_rbBitmap;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    92
  uint8_t   m_rbShift;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    93
  uint8_t   m_resAlloc;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    94
  std::vector <uint16_t>  m_tbsSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    95
  std::vector <uint8_t>   m_mcs;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    96
  std::vector <uint8_t>   m_ndi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    97
  std::vector <uint8_t>   m_rv;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    98
  uint8_t   m_cceIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    99
  uint8_t   m_aggrLevel;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   100
  uint8_t   m_precodingInfo;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   101
  enum Format_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   102
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   103
    ONE, ONE_A, ONE_B, ONE_C, ONE_D, TWO, TWO_A, TWO_B
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   104
  } m_format;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   105
  uint8_t   m_tpc;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   106
  uint8_t   m_harqProcess;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   107
  uint8_t   m_dai;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   108
  enum VrbFormat_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   109
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   110
    VRB_DISTRIBUTED,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   111
    VRB_LOCALIZED
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   112
  } m_vrbFormat;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   113
  bool      m_tbSwap;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   114
  bool      m_spsRelease;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   115
  bool      m_pdcchOrder;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   116
  uint8_t   m_preambleIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   117
  uint8_t   m_prachMaskIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   118
  enum Ngap_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   119
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   120
    GAP1, GAP2
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   121
  } m_nGap;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   122
  uint8_t   m_tbsIdx;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   123
  uint8_t   m_dlPowerOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   124
  uint8_t   m_pdcchPowerOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   125
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   126
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   127
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   128
 * \brief See section 4.3.2 ulDciListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   129
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   130
struct UlDciListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   131
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   132
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   133
  uint8_t   m_rbStart;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   134
  uint8_t   m_rbLen;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   135
  uint16_t  m_tbSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   136
  uint8_t   m_mcs;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   137
  uint8_t   m_ndi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   138
  uint8_t   m_cceIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   139
  uint8_t   m_aggrLevel;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   140
  uint8_t   m_ueTxAntennaSelection;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   141
  bool      m_hopping;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   142
  uint8_t   m_n2Dmrs;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   143
  int8_t    m_tpc;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   144
  bool      m_cqiRequest;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   145
  uint8_t   m_ulIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   146
  uint8_t   m_dai;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   147
  uint8_t   m_freqHopping;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   148
  int8_t    m_pdcchPowerOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   149
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   150
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   161
 * \brief See section 4.3.3 vendorSpecifiListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   162
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   163
struct VendorSpecificListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   164
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   165
  uint32_t m_type;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   168
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   169
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   170
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   171
 * \brief See section 4.3.4 logicalChannelConfigListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   172
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   173
struct LogicalChannelConfigListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   174
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   175
  uint8_t   m_logicalChannelIdentity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   176
  uint8_t   m_logicalChannelGroup;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   177
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   178
  enum Direction_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   179
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   180
    DIR_UL,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   181
    DIR_DL,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   182
    DIR_BOTH
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   183
  } m_direction;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   184
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   185
  enum QosBearerType_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   186
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   187
    QBT_NON_GBR,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   188
    QBT_GBR
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   189
  } m_qosBearerType;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   190
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   191
  uint8_t   m_qci;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   192
  uint64_t  m_eRabMaximulBitrateUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   193
  uint64_t  m_eRabMaximulBitrateDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   194
  uint64_t  m_eRabGuaranteedBitrateUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   195
  uint64_t  m_eRabGuaranteedBitrateDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   196
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   197
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   198
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   199
 * \brief See section 4.3.6 rachListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   200
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   201
struct RachListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   202
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   203
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   204
  uint16_t  m_estimatedSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   205
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   206
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   207
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   208
 * \brief See section 4.3.7 phichListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   209
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   210
struct PhichListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   211
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   212
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   213
  enum Phich_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   214
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   215
    ACK, NACK
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   216
  } m_phich;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   217
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   218
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   219
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   220
 * \brief See section 4.3.9 rlcPDU_ListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   221
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   222
struct RlcPduListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   223
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   224
  uint8_t   m_logicalChannelIdentity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   225
  uint16_t  m_size;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   226
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   227
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   228
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   229
 * \brief See section 4.3.8 builDataListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   230
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   231
struct BuildDataListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   232
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   233
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   234
  struct DlDciListElement_s m_dci;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   235
  std::vector <enum CeBitmap_e> m_ceBitmap;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   236
  std::vector < std::vector <struct RlcPduListElement_s> > m_rlcPduList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   237
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   238
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   256
 * \brief See section 4.3.10 buildRARListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   257
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   258
struct BuildRarListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   259
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   263
  struct DlDciListElement_s m_dci;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   264
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   265
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   266
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   267
 * \brief See section 4.3.11 buildBroadcastListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   268
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   269
struct BuildBroadcastListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   270
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   271
  enum Type_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   272
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   273
    BCCH, PCCH
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   274
  } m_type;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   275
  uint8_t m_index;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   276
  struct DlDciListElement_s m_dci;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   277
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   278
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   279
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   280
 * \brief See section 4.3.12 ulInfoListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   281
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   282
struct UlInfoListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   283
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   284
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   285
  std::vector <uint16_t> m_ulReception;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   286
  enum ReceptionStatus_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   287
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   288
    Ok, NotOk, NotValid
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   289
  } m_receptionStatus;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   290
  uint8_t   m_tpc;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   291
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   292
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   293
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   294
 * \brief See section 4.3.13 srListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   295
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   296
struct SrListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   297
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   298
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   299
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   300
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   301
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   302
 * \brief See section 4.3.15 macCEValue
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   303
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   304
struct MacCeValue_u
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   305
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   306
  uint8_t   m_phr;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   307
  uint8_t   m_crnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   308
  std::vector <uint8_t> m_bufferStatus;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   309
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   310
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   311
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   312
 * \brief See section 4.3.14 macCEListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   313
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   314
struct MacCeListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   315
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   316
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   317
  enum MacCeType_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   318
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   319
    BSR, PHR, CRNTI
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   320
  } m_macCeType;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   321
  struct MacCeValue_u m_macCeValue;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   322
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   323
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   324
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   325
 * \brief See section 4.3.16 drxConfig
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   326
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   327
struct DrxConfig_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   328
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   329
  uint8_t   m_onDurationTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   330
  uint16_t  m_drxInactivityTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   331
  uint16_t  m_drxRetransmissionTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   332
  uint16_t  m_longDrxCycle;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   333
  uint16_t  m_longDrxCycleStartOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   334
  uint16_t  m_shortDrxCycle;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   335
  uint8_t   m_drxShortCycleTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   336
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   337
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   338
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   339
 * \brief See section 4.3.17 spsConfig
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   340
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   341
struct SpsConfig_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   342
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   343
  uint16_t  m_semiPersistSchedIntervalUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   344
  uint16_t  m_semiPersistSchedIntervalDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   345
  uint8_t   m_numberOfConfSpsProcesses;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   346
  uint8_t   m_n1PucchAnPersistentListSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   347
  std::vector <uint16_t> m_n1PucchAnPersistentList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   348
  uint8_t   m_implicitReleaseAfter;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   349
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   350
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   351
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   352
 * \brief See section 4.3.18 srConfig
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   353
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   354
struct SrConfig_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   355
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   356
  enum SetupRelease_e m_action;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   357
  uint8_t   m_schedInterval;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   358
  uint8_t   m_dsrTransMax;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   359
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   360
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   361
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   362
 * \brief See section 4.3.19 cqiConfig
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   363
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   364
struct CqiConfig_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   365
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   366
  enum SetupRelease_e m_action;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   367
  uint16_t  m_cqiSchedInterval;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   368
  uint8_t   m_riSchedInterval;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   369
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   370
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   371
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   372
 * \brief See section 4.3.20 ueCapabilities
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   373
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   374
struct UeCapabilities_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   375
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   376
  bool      m_halfDuplex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   377
  bool      m_intraSfHopping;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   378
  bool      m_type2Sb1;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   379
  uint8_t   m_ueCategory;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   380
  bool      m_resAllocType1;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   381
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   382
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   383
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   384
 * \brief See section 4.3.22 siMessageListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   385
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   386
struct SiMessageListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   387
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   388
  uint16_t  m_periodicity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   389
  uint16_t  m_length;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   390
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   391
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   392
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   393
 * \brief See section 4.3.21 siConfiguration
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   394
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   395
struct SiConfiguration_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   396
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   397
  uint16_t  m_sfn;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   398
  uint16_t  m_sib1Length;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   399
  uint8_t   m_siWindowLength;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   400
  std::vector <struct SiMessageListElement_s> m_siMessageList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   401
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   402
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   403
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   404
 * \brief See section 4.3.23 dlInfoListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   405
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   406
struct DlInfoListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   407
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   408
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   409
  uint8_t   m_harqProcessId;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   410
  enum HarqStatus_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   411
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   412
    ACK, NACK, DTX
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   413
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   414
  std::vector <enum HarqStatus_e> m_harqStatus;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   415
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   416
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   417
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   418
 * \brief See section 4.3.28 bwPart
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   419
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   420
struct BwPart_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   421
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   422
  uint8_t   m_bwPartIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   423
  uint8_t   m_sb;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   424
  uint8_t   m_cqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   425
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   426
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   427
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   428
 * \brief See section 4.3.27 higherLayerSelected
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   429
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   430
struct HigherLayerSelected_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   431
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   432
  uint8_t   m_sbPmi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   433
  std::vector <uint8_t> m_sbCqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   434
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   435
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   436
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   437
 * \brief See section 4.3.26 ueSelected
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   438
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   439
struct UeSelected_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   440
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   441
  std::vector <uint8_t> m_sbList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   442
  uint8_t   m_sbPmi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   443
  std::vector <uint8_t> m_sbCqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   444
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   445
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   446
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   447
 * \brief See section 4.3.25 sbMeasResult
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   448
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   449
struct SbMeasResult_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   450
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   451
  struct UeSelected_s           m_ueSelected;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   452
  std::vector <struct HigherLayerSelected_s> m_higherLayerSelected;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   453
  struct BwPart_s               m_bwPart;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   454
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   455
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   456
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   457
 * \brief See section 4.3.24 cqiListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   458
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   459
struct CqiListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   460
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   461
  uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   462
  uint8_t   m_ri;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   463
  enum CqiType_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   464
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   465
    P10, P11, P20, P21, A12, A22, A20, A30, A31
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   466
  } m_cqiType;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   467
  std::vector <uint8_t> m_wbCqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   468
  uint8_t   m_wbPmi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   469
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   470
  struct SbMeasResult_s m_sbMeasResult;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   471
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   472
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   473
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   474
 * \brief See section 4.3.29 ulCQI
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   475
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   476
struct UlCqi_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   477
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   478
  std::vector <uint16_t> m_sinr;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   479
  enum Type_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   480
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   481
    SRS,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   482
    PUSCH,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   483
    PUCCH_1,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   484
    PUCCH_2,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   485
    PRACH
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   486
  } m_type;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   487
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   488
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   489
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   490
 * \brief See section 4.3.30 pagingInfoListElement
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   491
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   492
struct PagingInfoListElement_s
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   493
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   494
  uint8_t   m_pagingIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   495
  uint16_t  m_pagingMessageSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   496
  uint8_t   m_pagingSubframe;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   497
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   500
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   501
#endif /* FF_MAC_COMMON_H */