| /***************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * This software is protected by Copyright and the information contained |
| * herein is confidential. The software may not be copied and the information |
| * contained herein may not be used or disclosed except with the written |
| * permission of MediaTek Inc. (C) 2005 |
| * |
| * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| * |
| * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| * |
| * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| * |
| *****************************************************************************/ |
| |
| /******************************************************************************* |
| * Filename: |
| * --------- |
| * rac_vgmm_struct.h |
| * |
| * Project: |
| * -------- |
| * 6297 |
| * |
| * Description: |
| * ------------ |
| * This file is intends for struct definition between RAC and VGMM |
| * |
| * Author: |
| * ------- |
| * ------- |
| * |
| *============================================================================== |
| *******************************************************************************/ |
| |
| /******************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * |
| * This product has been developed using a protocol stack |
| * developed by Sasken Communication Technologies Limited. |
| * |
| ********************************************************************************/ |
| #ifndef _RAC_VGMM_STRUCT_H |
| #define _RAC_VGMM_STRUCT_H |
| |
| #include "sim_ps_enum.h" |
| #include "sim_public_enum.h" |
| #include "l3_inc_enums.h" |
| #include "vgnas_nvram_def.h" |
| #include "l3_inc_local.h" |
| #include "nas_nvram_editor.h" |
| #include "l4c2rac_struct.h" |
| #include "rac_eval_struct.h" |
| |
| /******************************************** |
| * MACROS * |
| ********************************************/ |
| |
| #define RAC_VGMM_NW_NAME_MAX_LEN MAX_NW_NAME_LENGTH |
| |
| /******************************************** |
| * TYPE DEFINITIONS & ENUMS * |
| ********************************************/ |
| |
| typedef enum{ |
| RAC_VGMM_EMS_ACQUIRE, |
| RAC_VGMM_EMS_RE_ACQUIRE, |
| RAC_VGMM_EMS_RELEASE |
| }rac_vgmm_emergency_service_request_type_enum; |
| |
| typedef enum{ |
| RAC_VGMM_EMS_CAUSE_NONE = 0, |
| RAC_VGMM_EMS_CAUSE_EPDU_FAILURE = 1, |
| RAC_VGMM_EMS_CAUSE_NUM |
| }rac_vgmm_emergency_service_request_cause_enum; |
| |
| typedef enum |
| { |
| RAC_VGMM_NORMAL_REGISTRATION, |
| RAC_VGMM_EMERGENCY_REGISTRATION |
| } rac_vgmm_emergency_service_reg_type_enum; |
| |
| typedef enum{ |
| RAC_VGMM_EMS_IND_CAUSE_NONE = 0, |
| |
| //Success CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes |
| //that map to this value. |
| RAC_VGMM_EMS_CNF_SUCCESS = 1, |
| RAC_VGMM_EMS_IND_ACTIVE = 2, |
| |
| //Failure CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes |
| //that map to this value. |
| RAC_VGMM_EMS_CNF_FAIL = 100, |
| RAC_VGMM_EMS_IND_BARRED = 101, |
| RAC_VGMM_EMS_IND_NO_CELL = 102, |
| RAC_VGMM_EMS_IND_CURRENT_PLMN = 103, |
| RAC_VGMM_EMS_IND_N1_NOT_ACTIVE = 104, |
| RAC_VGMM_EMS_IND_INACTIVE = 105, |
| RAC_VGMM_EMS_IND_ABNORMAL_TRY_OTHER_IPCAN = 106 |
| }rac_vgmm_emergency_service_cnf_cause_enum, rac_vgmm_emergency_service_cnf_result_enum; |
| |
| |
| typedef enum{ |
| RAC_VGMM_EMSFB_CAUSE_NONE = 0, |
| |
| //Success CNF response to EMERGENCY_SERVICE_FALLBACK_REQ |
| RAC_VGMM_EMSFB_CNF_SUCCESS = 1, |
| |
| //Failure CNF response to EMERGENCY_SERVICE_REQ |
| RAC_VGMM_EMSFB_CNF_FAIL = 200, |
| RAC_VGMM_EMSFB_BARRED = 201, |
| RAC_VGMM_EMSFB_NO_CELL = 202, |
| RAC_VGMM_EMSFB_CURRENT_PLMN = 203, |
| RAC_VGMM_EMSFB_N1_NOT_ACTIVE = 204, |
| RAC_VGMM_EMSFB_SERVICE_REQ_ABORT = 205, // Service request aborted due various reasons |
| RAC_VGMM_EMSFB_GEMINI_SUSPEND = 206 |
| }rac_vgmm_emergency_fallback_cnf_result_enum,rac_vgmm_emergency_fallback_cnf_cause_enum; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 pei_imei_spare; |
| kal_uint8 pei_imei_sv[SIZE_OF_IMEISV]; |
| kal_uint8 nvram_ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI]; |
| kal_uint8 nvram_ef_5gs3gppnsc[LEN_OF_5GS3GPPNSC]; |
| nvram_ef_t3346_timer_info_struct t3346_info; |
| init_cause_enum init_cause; |
| #ifdef __FIVEG_NAS__ |
| nvram_ef_vgnas_5gmm_custom_config_struct vgnas_5gmm_custom_config; |
| nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list; |
| kal_uint8 nvram_ef_5gauthkeys[LEN_OF_5GAUTHKEYS]; |
| #endif |
| } rac_vgmm_init_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool full_name_for_nwP; |
| kal_uint8 full_name_for_nw_len; |
| kal_uint8 full_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN]; |
| kal_bool short_name_for_nwP; |
| kal_uint8 short_name_for_nw_len; |
| kal_uint8 short_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN]; |
| kal_bool local_time_zoneP; |
| kal_uint8 local_time_zone; |
| kal_bool uni_time_and_local_time_zoneP; |
| nw_time_zone_time_struct uni_time_and_local_time_zone; |
| kal_bool nw_daylight_saving_timeP; |
| kal_uint8 nw_daylight_saving_time; |
| plmn_id_struct plmn_id; |
| } rac_vgmm_nw_info_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| vgmm_nw_feature_support_struct vg_nw_feature_support; |
| } rac_vgmm_nw_feature_support_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_ecc_changed; // tell L4 if ecc changed |
| kal_uint8 no_ecc; |
| ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; |
| kal_bool is_eenl_changed; // tell L4 if eenl changed |
| plmn_id_struct eenl_plmn; |
| } rac_vgmm_nw_ecc_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| sat_nw_rej_info_enum op; |
| cell_info_and_rat_struct current_cell; |
| sat_nw_rej_type_enum type; |
| kal_uint8 rej_cause; |
| } rac_vgmm_nw_reject_ind_struct; |
| |
| typedef emmreg_ims_reg_status_update_req_struct rac_vgmm_ims_reg_status_update_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| ims_service_type_enum type; |
| ims_service_status_enum status; |
| |
| } rac_vgmm_ims_service_status_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 trans_id; |
| ims_service_type_enum type; |
| ims_service_status_enum status; |
| kal_uint8 src_id; //source id of this message (IMS or VDM) |
| } rac_vgmm_ims_uac_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 trans_id; |
| kal_uint8 src_id; //source id of this message (IMS or VDM) |
| } rac_vgmm_ims_uac_abort_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 trans_id; |
| ims_service_uac_result_enum result; |
| kal_uint8 src_id; //source id of this message (IMS or VDM) |
| } rac_vgmm_ims_uac_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rac_vgmm_emergency_service_request_type_enum requested_ems_type; |
| rac_vgmm_emergency_service_request_cause_enum additional_ems_cause; |
| } rac_vgmm_emergency_service_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rac_vgmm_emergency_service_cnf_result_enum cnf_result; |
| rac_vgmm_emergency_service_cnf_cause_enum cnf_result_cause; |
| rac_vgmm_emergency_service_reg_type_enum reg_type; |
| } rac_vgmm_emergency_service_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rac_vgmm_emergency_service_cnf_cause_enum emergency_service_status; |
| } rac_vgmm_emergency_service_ind_struct; |
| |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| } rac_vgmm_emergency_service_fallback_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| rac_vgmm_emergency_fallback_cnf_result_enum cnf_result; |
| rac_vgmm_emergency_fallback_cnf_cause_enum cnf_result_cause; |
| } rac_vgmm_emergency_service_fallback_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint64 ac_bitmap; |
| |
| } rac_vgmm_ims_uac_alleviation_ind_struct; |
| |
| typedef l4crac_data_service_status_update_req_struct rac_vgmm_data_service_status_update_req_struct; |
| typedef l4crac_user_selected_main_ps_req_struct rac_vgmm_user_selected_main_ps_req_struct; |
| #if defined(__IMS_SUPPORT__) |
| typedef l4crac_ims_config_req_struct rac_vgmm_ims_config_ind_struct; |
| #endif /* __IMS_SUPPORT__ */ |
| |
| #ifdef __FIVEG_NAS__ |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| nvram_vgmm_reject_cause_mapping_record_struct mapping_table[NVRAM_VGMM_REJECT_CAUSE_MAPPING_SIZE]; |
| } rac_vgmm_reject_cause_mapping_req_struct; |
| #endif /* __FIVEG_NAS__ */ |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| data_speed_support_enum cell_data_speed_support; |
| cell_info_and_rat_struct cell_info; |
| |
| } rac_vgmm_cell_info_update_ind_struct; |
| |
| typedef struct |
| { |
| plmn_id_struct plmn_id; // for indicating the PLMN ID |
| kal_uint8 configured_nssai_length; |
| kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG]; |
| kal_uint8 allowed_nssai_3gpp_length; |
| kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 allowed_nssai_non3gpp_length; |
| kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| } plmn_specific_nssai_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| kal_bool clear_nssai; |
| kal_uint8 default_configured_nssai_length; |
| kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG]; |
| |
| } rac_vgmm_set_nssai_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| kal_bool nssai_set_status; |
| |
| } rac_vgmm_set_nssai_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd |
| kal_uint8 nssai_type_bm; |
| kal_bool plmn_id_valid; |
| plmn_id_struct plmn_id; |
| |
| } rac_vgmm_get_nssai_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd |
| kal_uint8 default_configured_nssai_length; |
| kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG]; |
| kal_uint8 rejected_nssai_3gpp_length; |
| kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 rejected_nssai_non3gpp_length; |
| kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| plmn_specific_nssai_struct plmn_specific_nssai[NUM_NSSAI_PLMN_IDS]; |
| kal_uint8 preferred_nssai_3gpp_length; |
| kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 preferred_nssai_non3gpp_length; |
| kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| |
| } rac_vgmm_get_nssai_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| kal_uint8 clear_preferred_nssai; // Bitfield, see SAP for details |
| kal_uint8 preferred_nssai_3gpp_length; |
| kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 preferred_nssai_non3gpp_length; |
| kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| |
| } rac_vgmm_set_pref_nssai_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 src_id; // for indicating the channel ID |
| kal_bool nssai_set_status; |
| |
| } rac_vgmm_set_pref_nssai_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| } rac_vgmm_5gsloci_clear_req_struct; |
| |
| typedef l4crac_set_ms_sv_req_struct rac_vgmm_set_ms_sv_req_struct; |
| |
| typedef l4crac_vgmm_proc_failure_ind_struct rac_vgmm_proc_failure_ind_struct; |
| |
| typedef struct { |
| vgs_ta_list_type_enum list_type; |
| plmn_id_struct plmn_id; |
| kal_uint8 number_of_tac; |
| kal_uint32 tac_list[VGNAS_MAX_TAI_LIST]; |
| }vgnas_tai_list_single_plmn_struct; |
| |
| typedef struct { |
| vgs_ta_list_type_enum list_type; |
| vgnas_ta_list_struct tai_list; |
| }vgnas_tai_list_multi_plmn_struct; |
| |
| /** |
| * TAI list structure with list type for MBIM_MS_TAI_LIST_INFO. |
| */ |
| typedef struct { |
| /* for TA_LIST_TYPE_00 or TA_LIST_TYPE_01 */ |
| kal_uint8 number_of_tai_list_single_plmn; |
| vgnas_tai_list_single_plmn_struct tai_list_single_plmn[VGNAS_MAX_TAI_LIST]; |
| |
| /*for TA_LIST_TYPE_10 */ |
| vgnas_tai_list_multi_plmn_struct tai_list_multi_plmn; |
| } vgnas_tai_list_with_list_type_struct; |
| |
| /** |
| * LADN list structure with TAI list for MBIM_MS_TAI_LIST_INFO. |
| */ |
| typedef struct { |
| apn_struct dnn; |
| vgnas_tai_list_with_list_type_struct tai_list; |
| } ladn_info_with_tai_list_type_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 default_configured_nssai_length; |
| kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG]; |
| kal_uint8 rejected_nssai_3gpp_length; |
| kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 rejected_nssai_non3gpp_length; |
| kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 configured_nssai_length; |
| kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG]; |
| kal_uint8 allowed_nssai_3gpp_length; |
| kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| kal_uint8 allowed_nssai_non3gpp_length; |
| kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT]; |
| vgnas_tai_list_with_list_type_struct ta_list; |
| kal_uint8 num_of_ladn_info; |
| ladn_info_with_tai_list_type_struct ladn_info[MAX_LADN_INFO]; |
| } rac_vgmm_nw_params_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_ps_sim_valid; |
| nas_proc_enum event; |
| vgmm_cause_enum original_cause; |
| vgmm_cause_enum converted_cause; |
| } rac_vgmm_cause_info_ind_struct; |
| |
| /******************************************** |
| * VARIABLES * |
| ********************************************/ |
| |
| |
| /******************************************** |
| * FUNCTION DECLARATIONS * |
| ********************************************/ |
| |
| #endif /* _RAC_VGMM_STRUCT_H */ |