blob: aaeb4b74fd0f5cf6f74be5a795eff1d2e8ffb10d [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * errc_erlcdl_msg.h
41 *
42 * Project:
43 * --------
44 * MOLY
45 *
46 * Description:
47 * ------------
48 * ERRC-ERLCDL SAP header file.
49 * This file defines the structures and enumerations for the SAP between ERRC and ERLCDL
50 *
51 * Author:
52 * -------
53 * -------
54 *
55 * ==========================================================================
56 * $Log$
57 *
58 * 02 06 2017 peter.yu
59 * [MOLY00207733] [MT6293][EL2] ERLCDL development
60 * [M-SIM] Sync R-SIM related interfaces, remove redundant message IDs related to ERLC.
61 *
62 * 10 07 2016 chih-cheng.yang
63 * [MOLY00206307] [MT6293][NWSIM][Regression][FDD][TC_17_4_1] error in CONN_CHM_LPBK_CNF
64 * fix loop mode C
65 *
66 * 10 06 2016 chih-cheng.yang
67 * [MOLY00206307] [MT6293][NWSIM][Regression][FDD][TC_17_4_1] error in CONN_CHM_LPBK_CNF
68 * changes for loop mode C
69 *
70 * 09 26 2016 slifer.hsueh
71 * [MOLY00205085] [MT6293][EL2] ERLC source codes integration from DEV to TRUNK
72 * ERLC source codes integration from DEV to TRUNK
73 *
74 * 01 04 2016 tero.miettinen
75 * [MOLY00155820] ERRC UMOLY updates
76 * NVRAM IF, ERRC - EL2 IF and ERRC update for 15 bit RLC LI field length.
77 *
78 * 07 03 2015 chi-chung.lin
79 * [MOLY00123918] [MT6291] Modify CHM code to provide eps_br_id in errc_erlcdl_rb_cfg_struct/errc_erlcul_rb_cfg_struct and fix compile warning
80 * [CHM] Code sync. from TK6291_DEV
81 *
82 * 02 02 2015 chi-chung.lin
83 * [MOLY00068710] [MT6291_DEV] Sync MOLY to MT6291_DEV
84 * MOLY->UMOLY code sync.
85 *
86 * 11 11 2014 yiting.cheng
87 * [MOLY00084042] [UMOLY] merge UMOLY_DEV to UMOLY trunk
88 * .
89 *
90 * 09 19 2014 chi-chung.lin
91 * [MOLY00073836] [MT6291][ERRC][CHM] LTE-A CHM development code check-in
92 * [CHM] MBMS interface check in
93 ****************************************************************************/
94
95/// @author mtk01733
96/// @date 08/10/11
97
98#ifndef _MTK_LTE_ERRC_ERLCDL_SAP_H_
99#define _MTK_LTE_ERRC_ERLCDL_SAP_H_
100
101
102#include "el2_sap_common.h"
103#include "common_def.h"
104
105/*--------------------------------------------------------------------------
106 * MSG_ID_ERLCDL_ERRC_CCCH_DATA_IND
107 *--------------------------------------------------------------------------*/
108// no local parameters
109
110
111/*--------------------------------------------------------------------------
112 * MSG_ID_ERRC_ERLCDL_CONFIG_REQ (enum)
113 *--------------------------------------------------------------------------*/
114
115// t-Reordering
116typedef enum
117{
118 T_REORDER_MS0 = 0x00,
119 T_REORDER_MS5 = 0x01,
120 T_REORDER_MS10 = 0x02,
121 T_REORDER_MS15 = 0x03,
122 T_REORDER_MS20 = 0x04,
123 T_REORDER_MS25 = 0x05,
124 T_REORDER_MS30 = 0x06,
125 T_REORDER_MS35 = 0x07,
126 T_REORDER_MS40 = 0x08,
127 T_REORDER_MS45 = 0x09,
128 T_REORDER_MS50 = 0x0A,
129 T_REORDER_MS55 = 0x0B,
130 T_REORDER_MS60 = 0x0C,
131 T_REORDER_MS65 = 0x0D,
132 T_REORDER_MS70 = 0x0E,
133 T_REORDER_MS75 = 0x0F,
134 T_REORDER_MS80 = 0x10,
135 T_REORDER_MS85 = 0x11,
136 T_REORDER_MS90 = 0x12,
137 T_REORDER_MS95 = 0x13,
138 T_REORDER_MS100 = 0x14,
139 T_REORDER_MS110 = 0x15,
140 T_REORDER_MS120 = 0x16,
141 T_REORDER_MS130 = 0x17,
142 T_REORDER_MS140 = 0x18,
143 T_REORDER_MS150 = 0x19,
144 T_REORDER_MS160 = 0x1A,
145 T_REORDER_MS170 = 0x1B,
146 T_REORDER_MS180 = 0x1C,
147 T_REORDER_MS190 = 0x1D,
148 T_REORDER_MS200 = 0x1E,
149 T_REORDER_MS1600 = 0x1F
150} errc_erlcdl_t_reorder_enum;
151
152// t-StatusProhibit
153typedef enum
154{
155 T_STUS_PROH_MS0 = 0x00,
156 T_STUS_PROH_MS5 = 0x01,
157 T_STUS_PROH_MS10 = 0x02,
158 T_STUS_PROH_MS15 = 0x03,
159 T_STUS_PROH_MS20 = 0x04,
160 T_STUS_PROH_MS25 = 0x05,
161 T_STUS_PROH_MS30 = 0x06,
162 T_STUS_PROH_MS35 = 0x07,
163 T_STUS_PROH_MS40 = 0x08,
164 T_STUS_PROH_MS45 = 0x09,
165 T_STUS_PROH_MS50 = 0x0A,
166 T_STUS_PROH_MS55 = 0x0B,
167 T_STUS_PROH_MS60 = 0x0C,
168 T_STUS_PROH_MS65 = 0x0D,
169 T_STUS_PROH_MS70 = 0x0E,
170 T_STUS_PROH_MS75 = 0x0F,
171 T_STUS_PROH_MS80 = 0x10,
172 T_STUS_PROH_MS85 = 0x11,
173 T_STUS_PROH_MS90 = 0x12,
174 T_STUS_PROH_MS95 = 0x13,
175 T_STUS_PROH_MS100 = 0x14,
176 T_STUS_PROH_MS105 = 0x15,
177 T_STUS_PROH_MS110 = 0x16,
178 T_STUS_PROH_MS115 = 0x17,
179 T_STUS_PROH_MS120 = 0x18,
180 T_STUS_PROH_MS125 = 0x19,
181 T_STUS_PROH_MS130 = 0x1A,
182 T_STUS_PROH_MS135 = 0x1B,
183 T_STUS_PROH_MS140 = 0x1C,
184 T_STUS_PROH_MS145 = 0x1D,
185 T_STUS_PROH_MS150 = 0x1E,
186 T_STUS_PROH_MS155 = 0x1F,
187 T_STUS_PROH_MS160 = 0x20,
188 T_STUS_PROH_MS165 = 0x21,
189 T_STUS_PROH_MS170 = 0x22,
190 T_STUS_PROH_MS175 = 0x23,
191 T_STUS_PROH_MS180 = 0x24,
192 T_STUS_PROH_MS185 = 0x25,
193 T_STUS_PROH_MS190 = 0x26,
194 T_STUS_PROH_MS195 = 0x27,
195 T_STUS_PROH_MS200 = 0x28,
196 T_STUS_PROH_MS205 = 0x29,
197 T_STUS_PROH_MS210 = 0x2A,
198 T_STUS_PROH_MS215 = 0x2B,
199 T_STUS_PROH_MS220 = 0x2C,
200 T_STUS_PROH_MS225 = 0x2D,
201 T_STUS_PROH_MS230 = 0x2E,
202 T_STUS_PROH_MS235 = 0x2F,
203 T_STUS_PROH_MS240 = 0x30,
204 T_STUS_PROH_MS245 = 0x31,
205 T_STUS_PROH_MS250 = 0x32,
206 T_STUS_PROH_MS300 = 0x33,
207 T_STUS_PROH_MS350 = 0x34,
208 T_STUS_PROH_MS400 = 0x35,
209 T_STUS_PROH_MS450 = 0x36,
210 T_STUS_PROH_MS500 = 0x37,
211 T_STUS_PROH_MS800 = 0x38,
212 T_STUS_PROH_MS1000 = 0x39,
213 T_STUS_PROH_MS1200 = 0x3A,
214 T_STUS_PROH_MS1600 = 0x3B,
215 T_STUS_PROH_MS2000 = 0x3C,
216 T_STUS_PROH_MS2400 = 0x3D,
217
218} errc_erlcdl_t_stus_proh_enum;
219
220
221/*--------------------------------------------------------------------------
222 * MSG_ID_ERRC_ERLCDL_CONFIG_REQ (struct)
223 *--------------------------------------------------------------------------*/
224
225/// structure for AM entity (receiving side)
226typedef struct
227{
228 errc_erlcdl_t_reorder_enum t_reorder;
229 errc_erlcdl_t_stus_proh_enum t_stus_proh;
230 kal_bool li_field_len_15_bit;
231} errc_erlcdl_am_struct;
232
233
234/// configuration for DL UM entity
235typedef struct
236{
237 errc_erlc_sn_field_len_enum snf_len;
238 errc_erlcdl_t_reorder_enum t_reorder;
239 kal_uint8 flag_pdcp_long_sn;
240 kal_uint8 rsvd[3];
241
242} errc_erlcdl_um_struct;
243
244
245/// DL RB configuration (for RB establish/re-establish/re-configure)
246typedef struct
247{
248 errc_el2_rbid_enum rbid;
249 kal_uint8 lcid;
250 kal_uint8 rb_idx;
251 kal_uint8 rsvd;
252
253 errc_erlc_rb_mode_enum mode;
254 errc_erlc_rb_type_enum type;
255
256 /// RLC configuration
257 union {
258 errc_erlcdl_am_struct am_cfg;
259 errc_erlcdl_um_struct um_cfg;
260 } am_um_cfg;
261
262 /// eps bearer id, valid only when DRB and ERLC_MODE_EST/REEST/RECFG
263 kal_uint8 eps_br_id;
264
265} errc_erlcdl_rb_cfg_struct;
266
267
268/// DL RB configuration (for RB release)
269typedef struct
270{
271 kal_uint8 rb_idx; ///< RB index
272 errc_el2_rbid_enum rbid;
273 kal_bool ho_failure; ///< if HO failure, remove the new RB.
274 kal_uint8 rsvd;
275
276} errc_erlcdl_rb_rel_struct;
277
278/* CHM MBMS support start */
279typedef struct
280{
281
282 kal_uint8 mcch_idx;
283
284} errc_erlcdl_mcch_cfg_struct;
285
286typedef struct
287{
288
289 kal_uint8 mcch_idx;
290
291} errc_erlcdl_mcch_rel_struct;
292
293typedef struct
294{
295
296 // numbered by eRRC and not from NW,
297 // If one carrier is supported, range 0~7
298 // If two carriers are supported, range 0~15
299 kal_uint8 mrb_idx;
300 kal_uint8 loop_mode_c;
301
302} errc_erlcdl_mrb_cfg_struct;
303
304typedef struct
305{
306
307 kal_uint8 mrb_idx;
308
309} errc_erlcdl_mrb_rel_struct;
310
311/* CHM MBMS support end */
312
313/// MSG_ID_ERRC_ERLCDL_CONFIG_REQ structure
314typedef struct
315{
316 LOCAL_PARA_HDR
317
318 kal_uint8 n_est_rb; // the number of RBs to be established
319 kal_uint8 n_mod_rb; // the number of RBs to be modified
320 kal_uint8 n_rel_rb; // the number of RBs to be released
321 kal_uint8 rsvd;
322
323 /** RB configurations for the RB to be established */
324 errc_erlcdl_rb_cfg_struct est_rb[MAX_NUM_RLC_CONFIG_RB];
325
326 /** RB configurations for the RB to be modified */
327 errc_erlcdl_rb_cfg_struct mod_rb[MAX_NUM_RLC_CONFIG_RB];
328
329 /** RB configurations for the RB to be released */
330 errc_erlcdl_rb_rel_struct rel_rb[MAX_NUM_RLC_CONFIG_RB];
331
332
333/* CHM MBMS support start */
334 kal_uint8 n_est_mcch[MAX_EMBMS_FREQ_SUPPORT];
335 kal_uint8 n_rel_mcch[MAX_EMBMS_FREQ_SUPPORT];
336 errc_erlcdl_mcch_cfg_struct est_mcch[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT];
337 errc_erlcdl_mcch_rel_struct rel_mcch[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MCCH_SUPPORT];
338
339 kal_uint8 n_est_mrb[MAX_EMBMS_FREQ_SUPPORT];
340 kal_uint8 n_rel_mrb[MAX_EMBMS_FREQ_SUPPORT];
341 errc_erlcdl_mrb_cfg_struct est_mrb[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT];
342 errc_erlcdl_mrb_rel_struct rel_mrb[MAX_EMBMS_FREQ_SUPPORT][MAX_EMBMS_MRB_SUPPORT];
343/* CHM MBMS support end */
344} errc_erlcdl_config_req_struct;
345
346
347
348/*--------------------------------------------------------------------------
349 * MSG_ID_ERRC_ERLCDL_CONFIG_CNF
350 * MSG_ID_ERRC_ERLCDL_TEST_CNF
351 *--------------------------------------------------------------------------*/
352
353/// MSG_ID_ERRC_ERLCDL_CONFIG_CNF structure
354/// MSG_ID_ERRC_ERLCDL_TEST_CNF structure
355
356typedef struct
357{
358 LOCAL_PARA_HDR
359
360 errc_el2_cfg_result_enum result;
361
362} errc_erlcdl_config_cnf_struct;
363
364
365
366/*--------------------------------------------------------------------------
367 * MSG_ID_ERRC_ERLCDL_SWITCH_VIRTUAL_CONNECTED_REQ
368 *--------------------------------------------------------------------------*/
369typedef struct
370{
371 LOCAL_PARA_HDR
372 errc_el2_switch_virtual_connected_enum status;
373
374} errc_erlcdl_switch_virtual_connected_req_struct;
375
376/*--------------------------------------------------------------------------
377 * MSG_ID_ERRC_ERLCDL_SWITCH_VIRTUAL_CONNECTED_CNF
378 *--------------------------------------------------------------------------*/
379
380//no contents in this CNF, success only
381
382
383
384/*--------------------------------------------------------------------------
385 * MSG_ID_ERRC_ERLCDL_TESTG_REQ (enum)
386 *--------------------------------------------------------------------------*/
387typedef enum
388{
389 ERLCDL_SAP_LB_CMD_MODE_C_DEACTIVATE = 0,
390 ERLCDL_SAP_LB_CMD_MODE_C_ACTIVATE,
391 ERLCDL_SAP_LB_CMD_MODE_NUM,
392 ERLCDL_SAP_LB_CMD_PAD = 0X7FFFFFFF
393}erlcdl_lb_cmd_enum;
394
395/*--------------------------------------------------------------------------
396 * MSG_ID_ERRC_ERLCDL_TEST_REQ (struct)
397 *--------------------------------------------------------------------------*/
398typedef struct
399{
400 LOCAL_PARA_HDR
401
402 kal_uint8 ci;
403 kal_uint8 mrb_idx;
404
405 erlcdl_lb_cmd_enum cmd;
406}errc_erlcdl_test_req_struct;
407
408/*--------------------------------------------------------------------------
409 * MSG_ID_ERRC_ERLCDL_TEST_CNF
410 *--------------------------------------------------------------------------*/
411
412/// MSG_ID_ERRC_ERLCDL_CONFIG_CNF structure
413/// MSG_ID_ERRC_ERLCDL_TEST_CNF structure
414
415typedef struct
416{
417 LOCAL_PARA_HDR
418
419 errc_el2_cfg_result_enum result;
420
421} errc_erlcdl_test_cnf_struct;
422
423
424/*--------------------------------------------------------------------------
425 * MSG_ID_ERRC_ERLCDL_MTCH_PC_CNF (struct)
426 *--------------------------------------------------------------------------*/
427typedef struct
428{
429 LOCAL_PARA_HDR
430
431 kal_uint32 packet_count;
432} errc_erlcdl_mtch_pc_cnf_struct;
433
434
435#endif