rrc_messages_types.h 14.9 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
Cedric Roux's avatar
Cedric Roux committed
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
 * 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
 */
nikaeinn's avatar
nikaeinn committed
21

22
23
24
25
/*
 * rrc_messages_types.h
 *
 *  Created on: Oct 24, 2013
nikaeinn's avatar
nikaeinn committed
26
 *      Author: winckel and Navid Nikaein
27
28
29
30
31
 */

#ifndef RRC_MESSAGES_TYPES_H_
#define RRC_MESSAGES_TYPES_H_

winckel's avatar
RRC:    
winckel committed
32
#include "as_message.h"
winckel's avatar
winckel committed
33
#include "rrc_types.h"
34
#include "s1ap_messages_types.h"
35
36
37
#ifdef CMAKER
#include "SystemInformationBlockType2.h"
#else
Bi-Ruei, Chiu's avatar
Bi-Ruei, Chiu committed
38
#include "RRC/LTE/MESSAGES/SystemInformationBlockType2.h"
39
#endif
40
41
42
43
44
45
#include "SL-OffsetIndicator-r12.h"
#include "SubframeBitmapSL-r12.h"
#include "SL-CP-Len-r12.h"
#include "SL-PeriodComm-r12.h"
#include "SL-DiscResourcePool-r12.h"

winckel's avatar
RRC:    
winckel committed
46
47
48

//-------------------------------------------------------------------------------------------//
// Messages for RRC logging
49
#if defined(DISABLE_ITTI_XER_PRINT)
50
51
52
#include "BCCH-DL-SCH-Message.h"
#include "DL-CCCH-Message.h"
#include "DL-DCCH-Message.h"
53
#include "UE-EUTRA-Capability.h"
54
55
#include "UL-CCCH-Message.h"
#include "UL-DCCH-Message.h"
56

57
58
59
60
61
62
typedef BCCH_DL_SCH_Message_t   RrcDlBcchMessage;
typedef DL_CCCH_Message_t       RrcDlCcchMessage;
typedef DL_DCCH_Message_t       RrcDlDcchMessage;
typedef UE_EUTRA_Capability_t   RrcUeEutraCapability;
typedef UL_CCCH_Message_t       RrcUlCcchMessage;
typedef UL_DCCH_Message_t       RrcUlDcchMessage;
63
#endif
64
65

//-------------------------------------------------------------------------------------------//
winckel's avatar
RRC:    
winckel committed
66
// Defines to access message fields.
winckel's avatar
winckel committed
67
68
#define RRC_STATE_IND(mSGpTR)           (mSGpTR)->ittiMsg.rrc_state_ind

winckel's avatar
winckel committed
69
#define RRC_CONFIGURATION_REQ(mSGpTR)   (mSGpTR)->ittiMsg.rrc_configuration_req
winckel's avatar
winckel committed
70

oai's avatar
oai committed
71
72
#define NBIOTRRC_CONFIGURATION_REQ(mSGpTR)   (mSGpTR)->ittiMsg.nbiotrrc_configuration_req

73
#define NAS_KENB_REFRESH_REQ(mSGpTR)    (mSGpTR)->ittiMsg.nas_kenb_refresh_req
winckel's avatar
winckel committed
74
75
76
#define NAS_CELL_SELECTION_REQ(mSGpTR)  (mSGpTR)->ittiMsg.nas_cell_selection_req
#define NAS_CONN_ESTABLI_REQ(mSGpTR)    (mSGpTR)->ittiMsg.nas_conn_establi_req
#define NAS_UPLINK_DATA_REQ(mSGpTR)     (mSGpTR)->ittiMsg.nas_ul_data_req
77

winckel's avatar
winckel committed
78
79
80
81
82
83
84
85
86
#define NAS_RAB_ESTABLI_RSP(mSGpTR)     (mSGpTR)->ittiMsg.nas_rab_est_rsp

#define NAS_CELL_SELECTION_CNF(mSGpTR)  (mSGpTR)->ittiMsg.nas_cell_selection_cnf
#define NAS_CELL_SELECTION_IND(mSGpTR)  (mSGpTR)->ittiMsg.nas_cell_selection_ind
#define NAS_PAGING_IND(mSGpTR)          (mSGpTR)->ittiMsg.nas_paging_ind
#define NAS_CONN_ESTABLI_CNF(mSGpTR)    (mSGpTR)->ittiMsg.nas_conn_establi_cnf
#define NAS_CONN_RELEASE_IND(mSGpTR)    (mSGpTR)->ittiMsg.nas_conn_release_ind
#define NAS_UPLINK_DATA_CNF(mSGpTR)     (mSGpTR)->ittiMsg.nas_ul_data_cnf
#define NAS_DOWNLINK_DATA_IND(mSGpTR)   (mSGpTR)->ittiMsg.nas_dl_data_ind
87
88

//-------------------------------------------------------------------------------------------//
89
90
91
typedef struct RrcStateInd_s {
  Rrc_State_t     state;
  Rrc_Sub_State_t sub_state;
winckel's avatar
winckel committed
92
93
} RrcStateInd;

winckel's avatar
winckel committed
94
95
// eNB: ENB_APP -> RRC messages
typedef struct RrcConfigurationReq_s {
96
  uint32_t            cell_identity;
winckel's avatar
winckel committed
97

98
  uint16_t            tac;
winckel's avatar
winckel committed
99

100
101
102
  uint16_t            mcc;
  uint16_t            mnc;
  uint8_t             mnc_digit_length;
103

104
105
  
  paging_drx_t            default_drx;
knopp's avatar
   
knopp committed
106
107
108
109
110
  int16_t                 nb_cc;
  lte_frame_type_t        frame_type[MAX_NUM_CCs];
  uint8_t                 tdd_config[MAX_NUM_CCs];
  uint8_t                 tdd_config_s[MAX_NUM_CCs];
  lte_prefix_type_t       prefix_type[MAX_NUM_CCs];
111
  uint8_t                 pbch_repetition[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
112
113
114
115
116
  int16_t                 eutra_band[MAX_NUM_CCs];
  uint32_t                downlink_frequency[MAX_NUM_CCs];
  int32_t                 uplink_frequency_offset[MAX_NUM_CCs];
  int16_t                 Nid_cell[MAX_NUM_CCs];// for testing, change later
  int16_t                 N_RB_DL[MAX_NUM_CCs];// for testing, change later
117
  int                     nb_antenna_ports[MAX_NUM_CCs];
118
119
120
121
122
123
124
  long                    prach_root[MAX_NUM_CCs];
  long                    prach_config_index[MAX_NUM_CCs];
  BOOLEAN_t               prach_high_speed[MAX_NUM_CCs];
  long                    prach_zero_correlation[MAX_NUM_CCs];
  long                    prach_freq_offset[MAX_NUM_CCs];
  long                    pucch_delta_shift[MAX_NUM_CCs];
  long                    pucch_nRB_CQI[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
125
  long                    pucch_nCS_AN[MAX_NUM_CCs];
126
//#if (RRC_VERSION < MAKE_VERSION(10, 0, 0))
127
  long                    pucch_n1_AN[MAX_NUM_CCs];
128
//#endif
129
130
  long                    pdsch_referenceSignalPower[MAX_NUM_CCs];
  long                    pdsch_p_b[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
131
132
133
  long                    pusch_n_SB[MAX_NUM_CCs];
  long                    pusch_hoppingMode[MAX_NUM_CCs];
  long                    pusch_hoppingOffset[MAX_NUM_CCs];
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
  BOOLEAN_t               pusch_enable64QAM[MAX_NUM_CCs];
  BOOLEAN_t               pusch_groupHoppingEnabled[MAX_NUM_CCs];
  long                    pusch_groupAssignment[MAX_NUM_CCs];
  BOOLEAN_t               pusch_sequenceHoppingEnabled[MAX_NUM_CCs];
  long                    pusch_nDMRS1[MAX_NUM_CCs];
  long                    phich_duration[MAX_NUM_CCs];
  long                    phich_resource[MAX_NUM_CCs];
  BOOLEAN_t               srs_enable[MAX_NUM_CCs];
  long                    srs_BandwidthConfig[MAX_NUM_CCs];
  long                    srs_SubframeConfig[MAX_NUM_CCs];
  BOOLEAN_t               srs_ackNackST[MAX_NUM_CCs];
  BOOLEAN_t               srs_MaxUpPts[MAX_NUM_CCs];
  long                    pusch_p0_Nominal[MAX_NUM_CCs];
  long                    pusch_alpha[MAX_NUM_CCs];
  long                    pucch_p0_Nominal[MAX_NUM_CCs];
  long                    msg3_delta_Preamble[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
150
  long                    ul_CyclicPrefixLength[MAX_NUM_CCs];
151
152
153
154
155
156
  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1                    pucch_deltaF_Format1[MAX_NUM_CCs];
  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b                   pucch_deltaF_Format1b[MAX_NUM_CCs];
  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2                    pucch_deltaF_Format2[MAX_NUM_CCs];
  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a                   pucch_deltaF_Format2a[MAX_NUM_CCs];
  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b                   pucch_deltaF_Format2b[MAX_NUM_CCs];
  long                    rach_numberOfRA_Preambles[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
157
  BOOLEAN_t               rach_preamblesGroupAConfig[MAX_NUM_CCs];
158
159
160
161
162
163
164
  long                    rach_sizeOfRA_PreamblesGroupA[MAX_NUM_CCs];
  long                    rach_messageSizeGroupA[MAX_NUM_CCs];
  e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB                    rach_messagePowerOffsetGroupB[MAX_NUM_CCs];
  long                    rach_powerRampingStep[MAX_NUM_CCs];
  long                    rach_preambleInitialReceivedTargetPower[MAX_NUM_CCs];
  long                    rach_preambleTransMax[MAX_NUM_CCs];
  long                    rach_raResponseWindowSize[MAX_NUM_CCs];
knopp's avatar
   
knopp committed
165
166
167
168
169
170
171
172
173
174
175
  long                    rach_macContentionResolutionTimer[MAX_NUM_CCs];
  long                    rach_maxHARQ_Msg3Tx[MAX_NUM_CCs];
  long                    bcch_modificationPeriodCoeff[MAX_NUM_CCs];
  long                    pcch_defaultPagingCycle[MAX_NUM_CCs];
  long                    pcch_nB[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_t300[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_t301[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_t310[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_t311[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_n310[MAX_NUM_CCs];
  long                    ue_TimersAndConstants_n311[MAX_NUM_CCs];
176
  long                    ue_TransmissionMode[MAX_NUM_CCs];
Xu Bo's avatar
Xu Bo committed
177
  long                    ue_multiple_max[MAX_NUM_CCs];
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222

  //TTN - for D2D
  //SIB18
  e_SL_CP_Len_r12                rxPool_sc_CP_Len[MAX_NUM_CCs];
  e_SL_PeriodComm_r12            rxPool_sc_Period[MAX_NUM_CCs];
  e_SL_CP_Len_r12                rxPool_data_CP_Len[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_prb_Num[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_prb_Start[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_prb_End[MAX_NUM_CCs];
  SL_OffsetIndicator_r12_PR      rxPool_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs];
  SubframeBitmapSL_r12_PR        rxPool_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs];
  char*                          rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs];
  long                           rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs];

  //SIB19
  //for discRxPool
  SL_CP_Len_r12_t                discRxPool_cp_Len[MAX_NUM_CCs];
  e_SL_DiscResourcePool_r12__discPeriod_r12                   discRxPool_discPeriod[MAX_NUM_CCs];
  long                           discRxPool_numRetx[MAX_NUM_CCs];
  long                           discRxPool_numRepetition[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_prb_Num[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_prb_Start[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_prb_End[MAX_NUM_CCs];
  SL_OffsetIndicator_r12_PR      discRxPool_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs];
  SubframeBitmapSL_r12_PR        discRxPool_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs];
  char*                          discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs];
  long                           discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs];
  //for discRxPoolPS
  SL_CP_Len_r12_t                discRxPoolPS_cp_Len[MAX_NUM_CCs];
  e_SL_DiscResourcePool_r12__discPeriod_r12                   discRxPoolPS_discPeriod[MAX_NUM_CCs];
  long                           discRxPoolPS_numRetx[MAX_NUM_CCs];
  long                           discRxPoolPS_numRepetition[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_prb_Num[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_prb_Start[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_prb_End[MAX_NUM_CCs];
  SL_OffsetIndicator_r12_PR      discRxPoolPS_ResourceConfig_offsetIndicator_present[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_offsetIndicator_choice[MAX_NUM_CCs];
  SubframeBitmapSL_r12_PR        discRxPoolPS_ResourceConfig_subframeBitmap_present[MAX_NUM_CCs];
  char*                          discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[MAX_NUM_CCs];
  long                           discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[MAX_NUM_CCs];
winckel's avatar
winckel committed
223
224
} RrcConfigurationReq;

oai's avatar
oai committed
225
#define MAX_NUM_NBIOT_CELEVELS    3
226

oai's avatar
oai committed
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
typedef struct NbIoTRrcConfigurationReq_s {
  uint32_t            cell_identity;

  uint16_t            tac;

  uint16_t	      mcc;
  uint16_t	      mnc;
  uint8_t	      mnc_digit_length;
  lte_frame_type_t	  frame_type;
  uint8_t                 tdd_config;
  uint8_t                 tdd_config_s;
  lte_prefix_type_t       prefix_type;
  lte_prefix_type_t	  prefix_type_UL;
  int16_t                 eutra_band;
  uint32_t                downlink_frequency;
  int32_t                 uplink_frequency_offset;
  int16_t                 Nid_cell;// for testing, change later
  int16_t                 N_RB_DL;// for testing, change later
  //RACH
  long					  rach_raResponseWindowSize_NB;
  long					  rach_macContentionResolutionTimer_NB;
  long					  rach_powerRampingStep_NB;
  long					  rach_preambleInitialReceivedTargetPower_NB;
  long					  rach_preambleTransMax_CE_NB;
  //BCCH
  long					  bcch_modificationPeriodCoeff_NB;
  //PCCH
  long					  pcch_defaultPagingCycle_NB;
  long					  pcch_nB_NB;
  long					  pcch_npdcch_NumRepetitionPaging_NB;
  //NPRACH
  long					  nprach_CP_Length;
  long					  nprach_rsrp_range;
  long					  nprach_Periodicity[MAX_NUM_NBIOT_CELEVELS];
  long					  nprach_StartTime[MAX_NUM_NBIOT_CELEVELS];
  long					  nprach_SubcarrierOffset[MAX_NUM_NBIOT_CELEVELS];
  long					  nprach_NumSubcarriers[MAX_NUM_NBIOT_CELEVELS];
  long					  numRepetitionsPerPreambleAttempt_NB[MAX_NUM_NBIOT_CELEVELS];
  long					  nprach_SubcarrierMSG3_RangeStart;
  long					  maxNumPreambleAttemptCE_NB;
  long					  npdcch_NumRepetitions_RA[MAX_NUM_NBIOT_CELEVELS];
  long					  npdcch_StartSF_CSS_RA[MAX_NUM_NBIOT_CELEVELS];
  long					  npdcch_Offset_RA[MAX_NUM_NBIOT_CELEVELS];
  //NPDSCH
  long					  npdsch_nrs_Power;
  //NPUSCH
  long					  npusch_ack_nack_numRepetitions_NB;
  long					  npusch_srs_SubframeConfig_NB;
  long					  npusch_threeTone_CyclicShift_r13;
  long					  npusch_sixTone_CyclicShift_r13;
  BOOLEAN_t				  npusch_groupHoppingEnabled;
  long					  npusch_groupAssignmentNPUSCH_r13;

  //DL_GapConfig
  long					  dl_GapThreshold_NB;
  long	 				  dl_GapPeriodicity_NB;
  long	 				  dl_GapDurationCoeff_NB;
  //Uplink power control Common
  long					  npusch_p0_NominalNPUSCH;
  long					  npusch_alpha;
  long					  deltaPreambleMsg3;
  //UE timers and constants
  long					  ue_TimersAndConstants_t300_NB;
  long					  ue_TimersAndConstants_t301_NB;
  long					  ue_TimersAndConstants_t310_NB;
  long					  ue_TimersAndConstants_t311_NB;
  long					  ue_TimersAndConstants_n310_NB;
  long					  ue_TimersAndConstants_n311_NB;
} NbIoTRrcConfigurationReq;

winckel's avatar
winckel committed
297

winckel's avatar
winckel committed
298
// UE: NAS -> RRC messages
299
typedef kenb_refresh_req_t      NasKenbRefreshReq;
winckel's avatar
winckel committed
300
301
302
303
typedef cell_info_req_t         NasCellSelectionReq;
typedef nas_establish_req_t     NasConnEstabliReq;
typedef ul_info_transfer_req_t  NasUlDataReq;

304
305
typedef rab_establish_rsp_t     NasRabEstRsp;

winckel's avatar
winckel committed
306
307
308
309
310
311
312
313
// UE: RRC -> NAS messages
typedef cell_info_cnf_t         NasCellSelectionCnf;
typedef cell_info_ind_t         NasCellSelectionInd;
typedef paging_ind_t            NasPagingInd;
typedef nas_establish_cnf_t     NasConnEstabCnf;
typedef nas_release_ind_t       NasConnReleaseInd;
typedef ul_info_transfer_cnf_t  NasUlDataCnf;
typedef dl_info_transfer_ind_t  NasDlDataInd;
314
315

#endif /* RRC_MESSAGES_TYPES_H_ */