blob: 3f8cfce53e9061dd6babbea2e5c1fa6bd37598e3 [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) 2005
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 * Filename:
38 * ---------
39 * rac_vgmm_struct.h
40 *
41 * Project:
42 * --------
43 * 6297
44 *
45 * Description:
46 * ------------
47 * This file is intends for struct definition between RAC and VGMM
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 *==============================================================================
54 *******************************************************************************/
55
56/********************************************************************************
57* Copyright Statement:
58* --------------------
59*
60* This product has been developed using a protocol stack
61* developed by Sasken Communication Technologies Limited.
62*
63********************************************************************************/
64#ifndef _RAC_VGMM_STRUCT_H
65#define _RAC_VGMM_STRUCT_H
66
67#include "sim_ps_enum.h"
68#include "sim_public_enum.h"
69#include "l3_inc_enums.h"
70#include "vgnas_nvram_def.h"
71#include "l3_inc_local.h"
72#include "nas_nvram_editor.h"
73#include "l4c2rac_struct.h"
74#include "rac_eval_struct.h"
75
76/********************************************
77 * MACROS *
78 ********************************************/
79
80#define RAC_VGMM_NW_NAME_MAX_LEN MAX_NW_NAME_LENGTH
81
82/********************************************
83 * TYPE DEFINITIONS & ENUMS *
84 ********************************************/
85
86typedef enum{
87 RAC_VGMM_EMS_ACQUIRE,
88 RAC_VGMM_EMS_RE_ACQUIRE,
89 RAC_VGMM_EMS_RELEASE
90}rac_vgmm_emergency_service_request_type_enum;
91
92typedef enum{
93 RAC_VGMM_EMS_CAUSE_NONE = 0,
94 RAC_VGMM_EMS_CAUSE_EPDU_FAILURE = 1,
95 RAC_VGMM_EMS_CAUSE_NUM
96}rac_vgmm_emergency_service_request_cause_enum;
97
98typedef enum
99{
100 RAC_VGMM_NORMAL_REGISTRATION,
101 RAC_VGMM_EMERGENCY_REGISTRATION
102} rac_vgmm_emergency_service_reg_type_enum;
103
104typedef enum{
105 RAC_VGMM_EMS_IND_CAUSE_NONE = 0,
106
107 //Success CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
108 //that map to this value.
109 RAC_VGMM_EMS_CNF_SUCCESS = 1,
110 RAC_VGMM_EMS_IND_ACTIVE = 2,
111
112 //Failure CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
113 //that map to this value.
114 RAC_VGMM_EMS_CNF_FAIL = 100,
115 RAC_VGMM_EMS_IND_BARRED = 101,
116 RAC_VGMM_EMS_IND_NO_CELL = 102,
117 RAC_VGMM_EMS_IND_CURRENT_PLMN = 103,
118 RAC_VGMM_EMS_IND_N1_NOT_ACTIVE = 104,
119 RAC_VGMM_EMS_IND_INACTIVE = 105,
120 RAC_VGMM_EMS_IND_ABNORMAL_TRY_OTHER_IPCAN = 106
121}rac_vgmm_emergency_service_cnf_cause_enum, rac_vgmm_emergency_service_cnf_result_enum;
122
123
124typedef enum{
125 RAC_VGMM_EMSFB_CAUSE_NONE = 0,
126
127 //Success CNF response to EMERGENCY_SERVICE_FALLBACK_REQ
128 RAC_VGMM_EMSFB_CNF_SUCCESS = 1,
129
130 //Failure CNF response to EMERGENCY_SERVICE_REQ
131 RAC_VGMM_EMSFB_CNF_FAIL = 200,
132 RAC_VGMM_EMSFB_BARRED = 201,
133 RAC_VGMM_EMSFB_NO_CELL = 202,
134 RAC_VGMM_EMSFB_CURRENT_PLMN = 203,
135 RAC_VGMM_EMSFB_N1_NOT_ACTIVE = 204,
136 RAC_VGMM_EMSFB_SERVICE_REQ_ABORT = 205, // Service request aborted due various reasons
137 RAC_VGMM_EMSFB_GEMINI_SUSPEND = 206
138}rac_vgmm_emergency_fallback_cnf_result_enum,rac_vgmm_emergency_fallback_cnf_cause_enum;
139
140typedef struct
141{
142 LOCAL_PARA_HDR
143 kal_uint8 pei_imei_spare;
144 kal_uint8 pei_imei_sv[SIZE_OF_IMEISV];
145 kal_uint8 nvram_ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
146 kal_uint8 nvram_ef_5gs3gppnsc[LEN_OF_5GS3GPPNSC];
147 nvram_ef_t3346_timer_info_struct t3346_info;
148 init_cause_enum init_cause;
149#ifdef __FIVEG_NAS__
150 nvram_ef_vgnas_5gmm_custom_config_struct vgnas_5gmm_custom_config;
151 nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list;
152 kal_uint8 nvram_ef_5gauthkeys[LEN_OF_5GAUTHKEYS];
153#endif
154} rac_vgmm_init_req_struct;
155
156typedef struct
157{
158 LOCAL_PARA_HDR
159 kal_bool full_name_for_nwP;
160 kal_uint8 full_name_for_nw_len;
161 kal_uint8 full_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN];
162 kal_bool short_name_for_nwP;
163 kal_uint8 short_name_for_nw_len;
164 kal_uint8 short_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN];
165 kal_bool local_time_zoneP;
166 kal_uint8 local_time_zone;
167 kal_bool uni_time_and_local_time_zoneP;
168 nw_time_zone_time_struct uni_time_and_local_time_zone;
169 kal_bool nw_daylight_saving_timeP;
170 kal_uint8 nw_daylight_saving_time;
171 plmn_id_struct plmn_id;
172} rac_vgmm_nw_info_ind_struct;
173
174typedef struct
175{
176 LOCAL_PARA_HDR
177 vgmm_nw_feature_support_struct vg_nw_feature_support;
178} rac_vgmm_nw_feature_support_ind_struct;
179
180typedef struct {
181 LOCAL_PARA_HDR
182 kal_bool is_ecc_changed; // tell L4 if ecc changed
183 kal_uint8 no_ecc;
184 ecc_number_struct ecc_list[MAX_NW_ECC_NUM];
185 kal_bool is_eenl_changed; // tell L4 if eenl changed
186 plmn_id_struct eenl_plmn;
187} rac_vgmm_nw_ecc_ind_struct;
188
189typedef struct
190{
191 LOCAL_PARA_HDR
192 sat_nw_rej_info_enum op;
193 cell_info_and_rat_struct current_cell;
194 sat_nw_rej_type_enum type;
195 kal_uint8 rej_cause;
196} rac_vgmm_nw_reject_ind_struct;
197
198typedef emmreg_ims_reg_status_update_req_struct rac_vgmm_ims_reg_status_update_req_struct;
199
200typedef struct
201{
202 LOCAL_PARA_HDR
203 ims_service_type_enum type;
204 ims_service_status_enum status;
205
206} rac_vgmm_ims_service_status_req_struct;
207
208typedef struct
209{
210 LOCAL_PARA_HDR
211 kal_uint8 trans_id;
212 ims_service_type_enum type;
213 ims_service_status_enum status;
214 kal_uint8 src_id; //source id of this message (IMS or VDM)
215} rac_vgmm_ims_uac_req_struct;
216
217typedef struct
218{
219 LOCAL_PARA_HDR
220 kal_uint8 trans_id;
221 kal_uint8 src_id; //source id of this message (IMS or VDM)
222} rac_vgmm_ims_uac_abort_req_struct;
223
224typedef struct
225{
226 LOCAL_PARA_HDR
227 kal_uint8 trans_id;
228 ims_service_uac_result_enum result;
229 kal_uint8 src_id; //source id of this message (IMS or VDM)
230} rac_vgmm_ims_uac_cnf_struct;
231
232typedef struct
233{
234 LOCAL_PARA_HDR
235 rac_vgmm_emergency_service_request_type_enum requested_ems_type;
236 rac_vgmm_emergency_service_request_cause_enum additional_ems_cause;
237} rac_vgmm_emergency_service_req_struct;
238
239typedef struct
240{
241 LOCAL_PARA_HDR
242 rac_vgmm_emergency_service_cnf_result_enum cnf_result;
243 rac_vgmm_emergency_service_cnf_cause_enum cnf_result_cause;
244 rac_vgmm_emergency_service_reg_type_enum reg_type;
245 } rac_vgmm_emergency_service_cnf_struct;
246
247typedef struct
248{
249 LOCAL_PARA_HDR
250 rac_vgmm_emergency_service_cnf_cause_enum emergency_service_status;
251} rac_vgmm_emergency_service_ind_struct;
252
253
254typedef struct
255{
256 LOCAL_PARA_HDR
257} rac_vgmm_emergency_service_fallback_req_struct;
258
259typedef struct
260{
261 LOCAL_PARA_HDR
262 rac_vgmm_emergency_fallback_cnf_result_enum cnf_result;
263 rac_vgmm_emergency_fallback_cnf_cause_enum cnf_result_cause;
264} rac_vgmm_emergency_service_fallback_cnf_struct;
265
266typedef struct
267{
268 LOCAL_PARA_HDR
269 kal_uint64 ac_bitmap;
270
271} rac_vgmm_ims_uac_alleviation_ind_struct;
272
273typedef l4crac_data_service_status_update_req_struct rac_vgmm_data_service_status_update_req_struct;
274typedef l4crac_user_selected_main_ps_req_struct rac_vgmm_user_selected_main_ps_req_struct;
275#if defined(__IMS_SUPPORT__)
276typedef l4crac_ims_config_req_struct rac_vgmm_ims_config_ind_struct;
277#endif /* __IMS_SUPPORT__ */
278
279#ifdef __FIVEG_NAS__
280typedef struct
281{
282 LOCAL_PARA_HDR
283 nvram_vgmm_reject_cause_mapping_record_struct mapping_table[NVRAM_VGMM_REJECT_CAUSE_MAPPING_SIZE];
284} rac_vgmm_reject_cause_mapping_req_struct;
285#endif /* __FIVEG_NAS__ */
286
287typedef struct
288{
289 LOCAL_PARA_HDR
290 data_speed_support_enum cell_data_speed_support;
291 cell_info_and_rat_struct cell_info;
292
293} rac_vgmm_cell_info_update_ind_struct;
294
295typedef struct
296{
297 plmn_id_struct plmn_id; // for indicating the PLMN ID
298 kal_uint8 configured_nssai_length;
299 kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG];
300 kal_uint8 allowed_nssai_3gpp_length;
301 kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
302 kal_uint8 allowed_nssai_non3gpp_length;
303 kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
304} plmn_specific_nssai_struct;
305
306typedef struct
307{
308 LOCAL_PARA_HDR
309 kal_uint8 src_id; // for indicating the channel ID
310 kal_bool clear_nssai;
311 kal_uint8 default_configured_nssai_length;
312 kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
313
314} rac_vgmm_set_nssai_req_struct;
315
316typedef struct
317{
318 LOCAL_PARA_HDR
319 kal_uint8 src_id; // for indicating the channel ID
320 kal_bool nssai_set_status;
321
322} rac_vgmm_set_nssai_cnf_struct;
323
324typedef struct
325{
326 LOCAL_PARA_HDR
327 kal_uint8 src_id; // for indicating the channel ID
328 vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd
329 kal_uint8 nssai_type_bm;
330 kal_bool plmn_id_valid;
331 plmn_id_struct plmn_id;
332
333} rac_vgmm_get_nssai_req_struct;
334
335typedef struct
336{
337 LOCAL_PARA_HDR
338 kal_uint8 src_id; // for indicating the channel ID
339 vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd
340 kal_uint8 default_configured_nssai_length;
341 kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
342 kal_uint8 rejected_nssai_3gpp_length;
343 kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
344 kal_uint8 rejected_nssai_non3gpp_length;
345 kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
346 plmn_specific_nssai_struct plmn_specific_nssai[NUM_NSSAI_PLMN_IDS];
347 kal_uint8 preferred_nssai_3gpp_length;
348 kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
349 kal_uint8 preferred_nssai_non3gpp_length;
350 kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
351
352} rac_vgmm_get_nssai_cnf_struct;
353
354typedef struct
355{
356 LOCAL_PARA_HDR
357 kal_uint8 src_id; // for indicating the channel ID
358 kal_uint8 clear_preferred_nssai; // Bitfield, see SAP for details
359 kal_uint8 preferred_nssai_3gpp_length;
360 kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
361 kal_uint8 preferred_nssai_non3gpp_length;
362 kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
363
364} rac_vgmm_set_pref_nssai_req_struct;
365
366typedef struct
367{
368 LOCAL_PARA_HDR
369 kal_uint8 src_id; // for indicating the channel ID
370 kal_bool nssai_set_status;
371
372} rac_vgmm_set_pref_nssai_cnf_struct;
373
374typedef struct
375{
376 LOCAL_PARA_HDR
377} rac_vgmm_5gsloci_clear_req_struct;
378
rjw8e44aab2022-11-30 16:42:16 +0800379typedef l4crac_set_ms_sv_req_struct rac_vgmm_set_ms_sv_req_struct;
380
rjw6c1fd8f2022-11-30 14:33:01 +0800381typedef l4crac_vgmm_proc_failure_ind_struct rac_vgmm_proc_failure_ind_struct;
382
383typedef struct {
384 vgs_ta_list_type_enum list_type;
385 plmn_id_struct plmn_id;
386 kal_uint8 number_of_tac;
387 kal_uint32 tac_list[VGNAS_MAX_TAI_LIST];
388}vgnas_tai_list_single_plmn_struct;
389
390typedef struct {
391 vgs_ta_list_type_enum list_type;
392 vgnas_ta_list_struct tai_list;
393}vgnas_tai_list_multi_plmn_struct;
394
395/**
396 * TAI list structure with list type for MBIM_MS_TAI_LIST_INFO.
397*/
398typedef struct {
399 /* for TA_LIST_TYPE_00 or TA_LIST_TYPE_01 */
400 kal_uint8 number_of_tai_list_single_plmn;
401 vgnas_tai_list_single_plmn_struct tai_list_single_plmn[VGNAS_MAX_TAI_LIST];
402
403 /*for TA_LIST_TYPE_10 */
404 vgnas_tai_list_multi_plmn_struct tai_list_multi_plmn;
405} vgnas_tai_list_with_list_type_struct;
406
407/**
408 * LADN list structure with TAI list for MBIM_MS_TAI_LIST_INFO.
409*/
410typedef struct {
411 apn_struct dnn;
412 vgnas_tai_list_with_list_type_struct tai_list;
413} ladn_info_with_tai_list_type_struct;
414
415typedef struct
416{
417 LOCAL_PARA_HDR
418 kal_uint8 default_configured_nssai_length;
419 kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
420 kal_uint8 rejected_nssai_3gpp_length;
421 kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
422 kal_uint8 rejected_nssai_non3gpp_length;
423 kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
424 kal_uint8 configured_nssai_length;
425 kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG];
426 kal_uint8 allowed_nssai_3gpp_length;
427 kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
428 kal_uint8 allowed_nssai_non3gpp_length;
429 kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
430 vgnas_tai_list_with_list_type_struct ta_list;
431 kal_uint8 num_of_ladn_info;
432 ladn_info_with_tai_list_type_struct ladn_info[MAX_LADN_INFO];
433} rac_vgmm_nw_params_ind_struct;
rjw8e44aab2022-11-30 16:42:16 +0800434
435typedef struct
436{
437 LOCAL_PARA_HDR
438 kal_bool is_ps_sim_valid;
439 nas_proc_enum event;
440 vgmm_cause_enum original_cause;
441 vgmm_cause_enum converted_cause;
442} rac_vgmm_cause_info_ind_struct;
443
rjw6c1fd8f2022-11-30 14:33:01 +0800444/********************************************
445 * VARIABLES *
446 ********************************************/
447
448
449/********************************************
450* FUNCTION DECLARATIONS *
451********************************************/
452
453#endif /* _RAC_VGMM_STRUCT_H */