rrm_config_structs.h 5.39 KB
Newer Older
1 2 3 4 5
/*
 * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The OpenAirInterface Software Alliance licenses this file to You under
6
 * the OAI Public License, Version 1.1  (the "License"); you may not use this file
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
 * except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.openairinterface.org/?page_id=698
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *-------------------------------------------------------------------------------
 * For more information about the OpenAirInterface (OAI) Software Alliance:
 *      contact@openairinterface.org
 */

22 23 24 25 26 27 28 29 30 31 32 33
/*
                               rrm_config_structs.h
                             -------------------
  AUTHOR  : Linus GASSER modified by Lionel GAUTHIER Raymond KNOPP
  COMPANY : EURECOM
  EMAIL   : linus.gasser@epfl.ch
  EMAIL   : lionel.gauthier@eurecom.fr
  EMAIL   : raymond.knopp@eurecom.fr



 ***************************************************************************/
34
#ifdef OLD_RRC_CELLULAR
35 36 37 38 39 40 41 42 43
#    ifndef __RRM_CONFIG_STRUCTS_H__
#        define __RRM_CONFIG_STRUCTS_H__

#        include "platform_types.h"
#        include "platform_constants.h"
#        include "rrm_constants.h"
#        include "rlc.h"

typedef volatile struct {
44
  uint32_t             e_r;
45 46 47 48 49 50 51 52 53
  int             timer_poll;
  int             timer_poll_prohibit;
  int             timer_discard;
  int             timer_poll_periodic;
  int             timer_status_prohibit;
  int             timer_status_periodic;
  int             timer_rst;
  int             timer_mrw;
  int             missing_pdu_indicator;
54
  uint32_t             pdu_size;
55
  //      int                                 in_sequence_delivery; // not implemented
56 57 58 59 60 61 62 63 64 65
  uint8_t              max_rst;
  uint8_t              max_dat;
  uint16_t             poll_pdu;
  uint16_t             poll_sdu;
  uint8_t              poll_window;
  uint32_t             tx_window_size;
  uint32_t             rx_window_size;
  uint8_t              max_mrw;
  uint8_t              last_transmission_pdu_poll_trigger;
  uint8_t              last_retransmission_pdu_poll_trigger;
66
  enum RLC_SDU_DISCARD_MODE sdu_discard_mode;
67
  uint32_t             send_mrw;
68 69 70
} AM;

typedef volatile struct {
71 72 73 74 75
  uint32_t             e_r;
  uint32_t             timer_discard;
  uint32_t             sdu_discard_mode;
  uint32_t             segmentation_indication;
  uint32_t             delivery_of_erroneous_sdu;
76 77 78
} TM;

typedef volatile struct {
79 80 81
  uint32_t             e_r;
  uint32_t             timer_discard;
  uint32_t             sdu_discard_mode;
82 83 84
} UM;

typedef volatile struct {
85 86
  uint8_t              logch_identity;
  uint8_t              mac_logch_priority;
87 88 89
} MAP_INFO;

typedef volatile struct {
90
  uint32_t             rlc_mode;
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
  AM              am;
  TM              tm;
  UM              um;
} RLC_INFO;

typedef volatile struct {
  int             header_compression_algorithm;
} PDCP_INFO;




typedef volatile struct {
  rb_type_t       rb_type;
  RLC_INFO        rlc_info;
  PDCP_INFO       pdcp_info;
107
  uint16_t             rb_id;
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
  // Added for OPENAIR MAC
  //LCHAN_DESC      Lchan_desc;

} RADIOBEARER;


typedef volatile struct {
  int             TIMER300;
  int             TIMER302;
  int             TIMER305;
  int             TIMER307;
  int             TIMER308;
  int             TIMER312;
  int             TIMER313;
  int             TIMER314;
  int             TIMER315;
} L3TIMERS_;

typedef volatile struct {
  int             COUNTERN300;
  int             COUNTERN302;
  int             COUNTERN308;
  int             COUNTERN312;
  int             COUNTERN313;
} L3COUNTERS_;


typedef volatile struct {
  int             MaxNumRemote;
  L3TIMERS_       Timers;
  L3COUNTERS_     Counters;
} L3_;


typedef volatile struct {
143 144 145
  uint8_t              rrm_action;   // ACTION_NULL,ADD,REMOVE,MODIFY
  uint8_t              rrm_element;  // rb,trch,cctrch
  uint8_t              rrm_element_index;    // rb/trch/cctrch index
146 147 148
} RRM_COMMAND_MT;

typedef volatile struct {
149 150 151 152
  uint8_t              rrm_action;   // ACTION_NULL,ADD,REMOVE,MODIFY
  uint8_t              mobile;
  uint8_t              rrm_element;  // rb,trch,cctrch
  uint8_t              rrm_element_index;    // rb/trch/cctrch index
153 154 155 156
} RRM_COMMAND_RG;


typedef volatile struct {
157
  uint8_t              nb_commands;
158 159 160 161 162 163 164 165 166
  RRM_COMMAND_RG  rrm_commands[JRRM_MAX_COMMANDS_PER_TRANSACTION];


  RADIOBEARER     bearer[MAX_RB_RG];
  L3_             L3;

} RG_CONFIG;

typedef volatile struct {
167
  uint8_t              nb_commands;
168 169 170 171 172 173 174 175 176 177 178 179 180 181
  RRM_COMMAND_MT  rrm_commands[JRRM_MAX_COMMANDS_PER_TRANSACTION];

  RADIOBEARER     bearer[MAX_RB_MOBILE];
  L3_             L3;

} MT_CONFIG;

#        ifdef NODE_RG
typedef volatile struct {
  RG_CONFIG       rg_config;
  MT_CONFIG       mt_config[MAX_MOBILES_PER_RG];
} RRM_VARS;

#        else
182
/* NODE_RG */
183 184 185 186 187 188 189
typedef volatile struct {
  MT_CONFIG       mt_config[MAX_MANAGED_RG_PER_MOBILE];



} RRM_VARS;
#        endif
190
/* NODE_RG */
191 192 193 194
//typedef   MT_CONFIG MAIN_MOBILE ;
//typedef   RG_CONFIG MAIN_RADIO_GATEWAY;

#    endif
195
#endif