[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/protocol/bip/bip_if.h b/mcu/interface/protocol/bip/bip_if.h
new file mode 100644
index 0000000..f57f8ec
--- /dev/null
+++ b/mcu/interface/protocol/bip/bip_if.h
@@ -0,0 +1,511 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * bip_if.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 03 16 2022 ot_prem.lata
+ * [MOLY00680758] [MT6853][Mouton][VzW][IODT][2021Feb] Enhancement to let UE not send VZWADMIN to machine when doing the machine simulation tests
+ *
+ * VZW if CL
+ *
+ * 09 19 2020 vend_mti_wspsd_011
+ * [MOLY00568525] [Gen97] BIP NG-RAN bearer description support
+ *
+ * Support NG-RAN bearer
+ *
+ * 09 18 2020 vend_mti_wspsd_011
+ * [MOLY00543862] [Cayman][SPR] Does Moly CR ID - MOLY00443848 applied on MT6883?
+ *
+ * Patch back from LG PR branch
+ *
+ * 07 25 2018 cs.huang
+ * [MOLY00342117] [BIP] Support PS data off
+ * bip support ps data off
+ *
+ * 05 02 2018 cs.huang
+ * [MOLY00322045] [URGENT][Zion][MT6739][O1][MP2][Sprint][LTE][NVIOT][Sprint lab][SS] Can't activate SIM via BIP
+ * remove socket retry
+ *
+ * 03 27 2018 cs.huang
+ * [MOLY00307542] [BIP] support KDDI requirement
+ * kddi
+ *
+ * 01 31 2018 actory.ou
+ * [MOLY00304698] [ZION][MT6739][O1][MP2][SQC][VzW][UICC][PCTEST][4.11] UE failed to performe Open channel after USIM reset. TE shows Network currently unable to process command
+ * [bip] change conn mgr return if APN is not in ACL
+ *
+ * 10 31 2017 chien-hui.lu
+ * [MOLY00285736] [BIP UICC SERVER] support BIP UICC Server Mode
+ * [BIP][UICC_SERVER] support UICC server mode.
+ *
+ * 08 14 2017 cs.huang
+ * [MOLY00268913] [BIP] BIP over Wifi
+ * merge mcu
+ *
+ * 08 14 2017 cs.huang
+ * [MOLY00268913] [BIP] BIP over Wifi
+ * merge mcu
+ *
+ * 04 24 2017 cs.huang
+ * [MOLY00243696] [BIP RD IT] RD IT Bug merge back to UMOLYA
+ * merge back UMOLYA
+ *
+ * 04 24 2017 cs.huang
+ * [MOLY00243696] [BIP RD IT] RD IT Bug merge back to UMOLYA
+ *
+ * BIP Merge back UMOLYA after RD IT
+ *
+****************************************************************************/
+#ifndef _BIP_IF_H
+#define _BIP_IF_H
+
+#include "kal_public_defs.h"
+#include "bip_profile.h"
+#include "ps_public_struct.h"
+
+typedef enum {
+ BIP_TYPE_OF_ADDRESS_NONE = 0x0,
+ BIP_TYPE_OF_ADDRESS_IPV4 = 0x21,
+ BIP_TYPE_OF_ADDRESS_IPV6 = 0x57,
+ BIP_TYPE_OF_ADDRESS_IPV4V6 = 0x8D,
+ BIP_TYPE_OF_ADDRESS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_TYPE_OF_ADDRESS;
+
+#pragma pack(push)
+#pragma pack(4) // 4bytes alignment
+ typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 sim_id;
+ kal_uint8 bip_channel_id;
+ void *bip_info;
+ char data[0]; // copy data to here, and BIP agent will copy to AP side
+ } BIP_LOCAL_PARA_STRUCT;
+#pragma pack(pop)
+
+typedef enum {
+ BIP_DIRECTION_CHANNEL_START = 0x21,
+ BIP_DIRECTION_CHANNEL0 = BIP_DIRECTION_CHANNEL_START,
+ BIP_DIRECTION_CHANNEL1 = 0x22,
+ BIP_DIRECTION_CHANNEL2 = 0x23,
+ BIP_DIRECTION_CHANNEL3 = 0x24,
+ BIP_DIRECTION_CHANNEL4 = 0x25,
+ BIP_DIRECTION_CHANNEL5 = 0x26,
+ BIP_DIRECTION_CHANNEL6 = 0x27,
+ BIP_DIRECTION_CHANNEL_END = BIP_DIRECTION_CHANNEL6,
+ BIP_DIRECTION_UICC = 0x81,
+ BIP_DIRECTION_TERMINAL = 0x82,
+ BIP_DIRECTION_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_DIRECTION_ENUM;
+
+typedef enum {
+ BIP_OPEN_CHANNEL = 0x40,
+ BIP_CLOSE_CHANNEL = 0x41,
+ BIP_RECEIVE_DATA = 0x42,
+ BIP_SEND_DATA = 0x43,
+ BIP_GET_CHANNEL_STATUS = 0x44,
+ //BIP_CMD_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_CMD_ENUM;
+
+typedef enum {
+ BIP_TRANSPORT_TYPE_NONE = 0x0,
+ BIP_TRANSPORT_TYPE_UDP_REMOTE = 0x1,
+ BIP_TRANSPORT_TYPE_TCP_REMOTE = 0x2,
+ BIP_TRANSPORT_TYPE_TCP_UICC_SERVER_MODE = 0x3,
+ BIP_TRANSPORT_TYPE_UDP_LOCAL = 0x4,
+ BIP_TRANSPORT_TYPE_TCP_LOCAL = 0x5,
+ BIP_TRANSPORT_TYPE_DIRECT = 0x6,
+ BIP_TRANSPORT_TYPE_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_TRANSPORT_TYPE;
+
+typedef enum {
+ BIP_BEARER_TYPE_NONE = 0, // not support
+ BIP_BEARER_TYPE_CSD = 1, // not use
+ BIP_BEARER_TYPE_GPRS_UTRAN_EUTRAN = 2, // support 23G
+ BIP_BEARER_TYPE_DEFAULT_BEARER = 3, // support default bearer
+ BIP_BEARER_TYPE_LOCAL_LINK = 4,// not support
+ BIP_BEARER_TYPE_BLUETOOTH = 5,// not support
+ BIP_BEARER_TYPE_IRDA = 6,// not support
+ BIP_BEARER_TYPE_RS232 = 7,// not support
+ BIP_BEARER_TYPE_CDMA2000 = 8,// not support
+ BIP_BEARER_TYPE_UTRAN_HSDPA_EUTRAN = 9, // not use
+ BIP_BEARER_TYPE_IWLAN = 10, // not support
+ BIP_BEARER_TYPE_EUTRAN_UTRAN = 11, // support 34G
+ BIP_BEARER_TYPE_NG_RAN = 12, //support 5G
+ BIP_BEARER_TYPE_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_BEARER_TYPE_ENUM;
+
+typedef enum{
+ bip_tr_command_performed_successfully = 0x0,
+ bip_tr_command_performed_with_partial_comprehension = 0x1,
+ bip_tr_command_performed_with_missing_information = 0x2, // dest IP does not present
+ bip_tr_command_performed_succesfully_but_request_icon_could_not_be_displayed = 0x4,
+ bip_tr_command_performed_with_modification = 0x7,
+ bip_tr_proactive_UICC_session_terminated_by_the_user = 0x10, // SIM card plug-out
+ bip_tr_terminal_currently_unable_to_process_command = 0x20,
+ bip_tr_network_currently_unable_to_process_command = 0x21,
+ bip_tr_user_did_not_accept_the_proactive_command = 0x22,
+ bip_tr_interaction_with_call_contorl_by_NAA_temporary_problem = 0x25,
+ bip_tr_lanuch_browser_generic_error = 0x26,
+ bip_tr_command_beyond_terminals_capabilities = 0x30,
+ bip_tr_command_type_not_understood_by_terminal = 0x31,
+ bip_tr_command_data_not_understood_by_terminal = 0x32, // does not know the tag
+ bip_tr_command_number_not_known_by_terminal, // parsing cmd error
+ bip_tr_error_required_values_are_missing = 0x36,
+ bip_tr_multiplecard_commands_error = 0x38,
+ bip_tr_interaction_with_call_control_by_NAA_permanent_problem = 0x39,
+ bip_tr_bearer_independent_protocol_error = 0x3A,
+ bip_tr_access_technology_unable_to_process_command = 0x3B,
+ bip_tr_frames_error = 0x3C,
+ bip_tr_mms_error = 0x3D,
+ bip_tr_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_TR_RESULT_ENUM;
+
+typedef enum{
+ bip_tr_info_no_specific_cause_can_be_given= 0x0,
+ bip_tr_info_no_channel_available = 0x1,
+ bip_tr_info_channel_closed = 0x2,
+ bip_tr_info_terminal_currently_busy_on_call = 0x2,
+ bip_tr_info_channel_identifier_not_valid = 0x3,
+ bip_tr_info_requested_buffer_size_not_available = 0x4,
+ bip_tr_info_security_error = 0x5, // unsucessful authentication
+ bip_tr_info_requested_UICC_terminal_interface_transport_level_not_available = 0x6,
+ bip_tr_info_remote_device_is_not_reachable = 0x7,
+ bip_tr_info_service_error = 0x8,
+ bip_tr_info_service_identifier_unknown = 0x9,
+ bip_tr_info_port_not_available = 0x10,
+ bip_tr_info_luanch_parameters_missing_or_incorrect = 0x11,
+ bip_tr_info_application_launch_failed = 0x12,
+ bip_tr_info_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_TR_RESULT_ADDITIONAL_INFO_ENUM;
+
+typedef enum
+{
+ BIP_CMD_ERROR_NONE = 0,
+ BIP_CMD_ERROR_REQUIRED_VALUE_ARE_MISSING = bip_tr_error_required_values_are_missing,
+ BIP_CMD_ERROR_CMD_DATA_NOT_UNDERSTOOD = bip_tr_command_data_not_understood_by_terminal,
+ BIP_CMD_ERROR_CMD_NUMBER_NOT_KNOW = bip_tr_command_number_not_known_by_terminal,
+ BIP_CMD_ERROR_ICON_DISPLAY_FAILED = bip_tr_command_performed_succesfully_but_request_icon_could_not_be_displayed,
+ BIP_CMD_ERROR_FRAME_ERROR = bip_tr_frames_error,
+ BIP_CMD_ERROR_USER_REJECT = bip_tr_user_did_not_accept_the_proactive_command,
+ BIP_CMD_ERROR_PS_DATA_OFF = bip_tr_bearer_independent_protocol_error,
+ BIP_CMD_ERROR_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_CMD_ERROR_ENUM;
+
+typedef enum {
+ BIP_EVENT_LIST_DATA_AVAILABLE = 0x09,
+ BIP_EVENT_LIST_CHANNEL_STATUS = 0x0A,
+ BIP_EVENT_LIST_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_EVENT_LIST_ENUM;
+
+typedef enum {
+ BIP_CONN_MGR_STATUS_DISCONNECT = 0,
+ BIP_CONN_MGR_STATUS_CONNECTED = 1,
+ BIP_CONN_MGR_STATUS_CONNECTED_WITH_MODIFIED_PARAM = 3,
+ // ERROR STATUS
+ BIP_CONN_MGR_STATUS_COULD_NOT_BE_CONNECT = -1,
+ BIP_CONN_MGR_STATUS_AUTH_ERROR = -2,
+ BIP_CONN_MGR_STATUS_BLOCKING_BY_ACL = -3,
+ BIP_CONN_MGR_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_CONN_MGR_STATUS_ENUM;
+
+typedef enum {
+ BIP_NET_MGR_STATUS_DISCONNECTED = 0,
+ BIP_NET_MGR_STATUS_CONNECTING = 1,
+ BIP_NET_MGR_STATUS_CONNECTED = 2,
+ BIP_NET_MGR_STATUS_CLIENT_CONNECTED = 3,
+ BIP_NET_MGR_STATUS_PARAM_ERROR = -1,
+ BIP_NET_MGR_STATUS_CONNECTION_HAS_BEEN_CLOSED = -2,
+ BIP_NET_MGR_STATUS_REMOTE_UNREACHABLE = -3,
+ BIP_NET_MGR_STATUS_PORT_NOT_AVAILABLE = -4,
+ BIP_NET_MGR_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_NET_MGR_STATUS_ENUM;
+
+typedef enum {
+ BIP_NET_MGR_PROTOCOL_NONE = 0,
+ BIP_NET_MGR_PROTOCOL_UDP = 1,
+ BIP_NET_MGR_PROTOCOL_TCP = 2,
+ BIP_NET_MGR_PROTOCOL_WIFI_UDP = 3,
+ BIP_NET_MGR_PROTOCOL_WIFI_TCP = 4,
+ BIP_NET_MGR_PROTOCOL_UICC_SERVER_UDP = 5,
+ BIP_NET_MGR_PROTOCOL_UICC_SERVER_TCP = 6,
+ BIP_NET_MGR_PROTOCOL_MAX,
+ BIP_NET_MGR_PROTOCOL_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_NET_MGR_PROTOCOL_ENUM;
+
+/******************** MOD_BIP_CONN_MGR *************************/
+typedef enum
+{
+ BIP_CONN_MGR_PDN_STATUS_NO_USE = 0,
+ BIP_CONN_MGR_PDN_STATUS_LINK_DOWN,
+ BIP_CONN_MGR_PDN_STATUS_LINKING,
+ BIP_CONN_MGR_PDN_STATUS_LINK_UP,
+ BIP_CONN_MGR_PDN_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_CONN_MGR_PDN_STATUS;
+
+typedef enum
+{
+ BIP_CONN_MGR_USER_STATUS_DISCONNECT = 0,
+ BIP_CONN_MGR_USER_STATUS_NEW_USER,
+ BIP_CONN_MGR_USER_STATUS_NEED_CONNECTION,
+ BIP_CONN_MGR_USER_STATUS_CONNECTING,
+ BIP_CONN_MGR_USER_STATUS_CONNECTED,
+ BIP_CONN_MGR_USER_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_CONN_MGR_USER_STATUS;
+
+/******************** MOD_BIP_CMD_HDR *************************/
+typedef enum
+{
+ BIP_CMD_HDR_STATE_DUMMY = 0,
+ BIP_CMD_HDR_STATE_CREATE_CONNECTION,
+ BIP_CMD_HDR_STATE_CREATE_CONNECTION_SUCCESS,
+ BIP_CMD_HDR_STATE_CREATE_CONNECTION_FAILED,
+ BIP_CMD_HDR_STATE_CLOSE_CONNECTION,
+ BIP_CMD_HDR_STATE_CLOSE_CONNECTION_DONE,
+ BIP_CMD_HDR_STATE_CREATE_SOCKET,
+ BIP_CMD_HDR_STATE_CREATE_SOCKET_SUCCESS,
+ BIP_CMD_HDR_STATE_CREATE_SOCKET_FAILED,
+ BIP_CMD_HDR_STATE_CLOSE_SOCKET,
+ BIP_CMD_HDR_STATE_CLOSE_SOCKET_DONE,
+ BIP_CMD_HDR_STATE_SEND_DATA,
+ BIP_CMD_HDR_STATE_SEND_DATA_DONE,
+ BIP_CMD_HDR_STATE_RECEIVE_DATA,
+ BIP_CMD_HDR_STATE_RECEIVE_DATA_DONE,
+ BIP_CMD_HDR_STATE_GET_CHANNEL_STATUS,
+ BIP_CMD_HDR_STATE_UPDATE_CHANNEL_STATUS,
+ BIP_CMD_HDR_STATE_SIM_ERROR,
+ BIP_CMD_HDR_STATE_DISCONNECT_CONNECTION,
+ BIP_CMD_HDR_STATE_DISCONNECT_SOCKET,
+ BIP_CMD_HDR_STATE_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_CMD_HDR_STATE_ENUM;
+
+typedef enum
+{
+ BIP_CMD_HDR_LINK_STATE_DISCONNECT = 0,
+ BIP_CMD_HDR_LINK_STATE_CONNECTING,
+ BIP_CMD_HDR_LINK_STATE_CONNECTED,
+ BIP_CMD_HDR_LINK_STATE_LINK_DROP,
+ BIP_CMD_HDR_LINK_STATE_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_CMD_HDR_LINK_STATE_ENUM;
+
+/******************** MOD_BIP_SIM_MGR *************************/
+typedef enum
+{
+ BIP_SIM_MGR_BUFF_LEN_STRING = 576,//512+64
+ BIP_SIM_MGR_BUFF_LEN_HEX = 320,//256+64
+ BIP_SIM_MGR_BUFF_LEN_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_SIM_MGR_BUFF_LEN_ENUM;
+
+typedef enum {
+ BIP_TLV_LEN_TAG_2BYTES = 0x81,
+ BIP_TLV_LEN_TAG_3BYTES = 0x82,
+ BIP_TLV_LEN_TAG_4BYTES = 0x83,
+ BIP_TLV_LEN_TAG_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_TLV_LEN_TAG_ENUM;
+
+typedef enum {
+ BIP_CTLV_TAG_COMMAND_DETAIL = 0x01,
+ BIP_CTLV_TAG_DEVICE_IDENTITY,
+ BIP_CTLV_TAG_RESULT,
+ BIP_CTLV_TAG_ALPHA_IDENTIFIER = 0x05,
+ BIP_CTLV_TAG_TEXT_STRING = 0x0D,
+ BIP_CTLV_TAG_EVENT_LIST = 0x19,
+ BIP_CTLV_TAG_BEARER_DESCRIPTION = 0x35,
+ BIP_CTLV_TAG_CHANNEL_DATA,
+ BIP_CTLV_TAG_CHANNEL_DATA_LENGTH,
+ BIP_CTLV_TAG_CHANNEL_STATUS,
+ BIP_CTLV_TAG_BUFFER_SIZE,
+ BIP_CTLV_TAG_UICC_TERMINAL_INTERFACE_TRANSPORT_LEVEL = 0x3C,
+ BIP_CTLV_TAG_OTHER_ADDR = 0x3E,// local addr & dest addr
+ BIP_CTLV_TAG_DNS_SERVER_ADDR = 0x40,
+ BIP_CTLV_TAG_NETWORK_ACCESS_NAME = 0x47,
+ BIP_CTLV_TAG_IWLAN_IDENTIFIER = 0x4A,
+ BIP_CTLV_TAG_CR_FLAG = 0x80,
+ BIP_CTLV_TAG_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_CTLV_TAG_ENUM;
+
+typedef enum {
+ BIP_CTLV_TAG_PROACTIVE_CMD = 0xD0,
+ BIP_CTLV_TAG_EVENT_DOWNLOAD = 0xD6,
+ BIP_BER_TLV_TAG_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_BER_TLV_TAG_ENUM;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 length;
+ kal_uint8 buffer[BIP_SIM_MGR_BUFF_LEN_HEX];// hex
+} atp_bip_sim_mgr_hex_struct;// AP to BIP
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 buffer[BIP_SIM_MGR_BUFF_LEN_STRING];// hex string
+} atp_bip_sim_mgr_hex_string_struct;// BIP to AP / BIP to PS
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_num;
+ kal_uint8 result;
+} atp_bip_sim_mgr_bip_cnf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool mobile_data_parse_result;
+ kal_bool data_roaming_parse_result;
+ kal_uint8 mobile_data;
+ kal_uint8 data_roaming;
+} atp_bip_sim_mgr_ecncfg_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool bip_en_parse_result;
+ kal_bool bip_en;
+} atp_bip_sim_mgr_bip_en_struct;
+
+typedef enum{
+ BIP_DS_START = 0,
+ BIP_DS_CREATE_CONNECTION,
+ BIP_DS_CREATE_SOCKET,
+ BIP_DS_CREATE_DONE,
+ BIP_DS_CLOSE_CONNECTION,
+ BIP_DS_CLOSE_SOCKET,
+ BIP_DS_CLOSE_DONE,
+ BIP_DS_END,
+ BIP_DS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_DS_STEP;
+
+typedef enum{
+ BIP_DS_CONNECTION_START = 0,
+ BIP_DS_WIFI_CONNECTION, // profile 1
+ BIP_DS_3GPP_CONNECTION, // profile 2
+ BIP_DS_CONNECTION_NONE,
+ BIP_DS_CONNECTION_END,
+ BIP_DS_CONNECTION_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+}BIP_DS_CONNECTION_ENUM;
+
+typedef enum{
+ BIP_DS_DEACTIVATE = 0,
+ BIP_DS_ACTICATE,
+}BIP_DS_STATUS;
+
+typedef enum{
+ BIP_AP_WIFI_STATUS_NONE,
+ BIP_AP_WIFI_STATUS_DISCONNECT,
+ BIP_AP_WIFI_STATUS_CONNECTED,
+ BIP_AP_WIFI_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_WIFI_STATUS_ENUM;
+
+typedef enum {
+ BIP_UICC_SERVER_LINK_STATUS_CLOSE = 0,
+ BIP_UICC_SERVER_LINK_STATUS_LISTEN,
+ BIP_UICC_SERVER_LINK_STATUS_ESTABLISHED,
+ BIP_UICC_SERVER_LINK_STATUS_GO_TO_CLOSE_STATUS,
+ BIP_UICC_SERVER_LINK_STATUS_GO_TO_LISTEN_STATUS,
+ BIP_UICC_SERVER_LINK_STATUS_4BYTE_MAX = 0x7FFFFFFF, //put in the end
+} BIP_UICC_SERVER_LINK_STATUS;
+
+typedef atp_bip_sim_mgr_hex_string_struct atp_bip_sim_mgr_ap_urc_req_struct;
+typedef atp_bip_sim_mgr_hex_struct atp_bip_sim_mgr_stk_req_struct;
+typedef atp_bip_sim_mgr_hex_string_struct atp_bip_sim_mgr_ps_env_req_struct;
+typedef atp_bip_sim_mgr_hex_string_struct atp_bip_sim_mgr_ps_tr_req_struct;
+
+/******************** BIP public function *************************/
+kal_bool is_bip_support();
+void bip_ds_set_sbp(kal_uint8 ps_id, kal_uint32 sbp_id);
+void bip_ds_set_default_retry_count(kal_uint8 ps_id, kal_uint8 pdn_retry_count, kal_uint8 socket_retry_count);
+void bip_ds_set_sbp_param(kal_uint8 ps_id, sbp_reconfig_custom_param_struct *sbp_config);
+kal_uint32 bip_ds_get_sbp(kal_uint8 ps_id);
+
+/******************** BIP ILM structure parsing *************************/
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_bip_cmd_ind_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_tr_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_tr_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_envelope_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_envelope_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_sim_error_ind_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_sim_mgr_sim_error_cnf_struct;
+
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_create_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_create_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_close_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_close_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_check_status_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_check_status_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_sim_error_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_sim_error_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_disconnect_ind_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_conn_mgr_disconnect_cnf_struct;
+
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_create_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_create_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_close_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_close_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_receive_data_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_receive_data_cnf_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_send_data_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_send_data_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_check_status_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_check_status_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_sim_error_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_sim_error_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_disconnect_ind_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_net_mgr_disconnect_cnf_struct;
+
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_create_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_create_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_close_connection_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_close_connection_rsp_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_create_connection_retry_pdn_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_create_connection_retry_socket_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_sim_error_req_struct;
+typedef BIP_LOCAL_PARA_STRUCT bip_ds_mgr_sim_error_rsp_struct;
+
+#endif
diff --git a/mcu/interface/protocol/bip/bip_profile.h b/mcu/interface/protocol/bip/bip_profile.h
new file mode 100644
index 0000000..b630d29
--- /dev/null
+++ b/mcu/interface/protocol/bip/bip_profile.h
@@ -0,0 +1,93 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * bip_profile.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * Define BIP profile
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 12 09 2019 vend_mti_wsd_002
+ * [MOLY00443405] MCF and NVRAM Support in BIP for Gen 97
+ *
+ * MCF VMOLY MPD CL
+ *
+ * 03 27 2018 cs.huang
+ * [MOLY00307542] [BIP] support KDDI requirement
+ * kddi
+ *
+ * 02 07 2018 cs.huang
+ * [MOLY00304698] [ZION][MT6739][O1][MP2][SQC][VzW][UICC][PCTEST][4.11] UE failed to performe Open channel after USIM reset. TE shows Network currently unable to process command
+ * [BIP] change default 3GPP only
+ *
+ * 02 07 2018 cs.huang
+ * [MOLY00304698] [ZION][MT6739][O1][MP2][SQC][VzW][UICC][PCTEST][4.11] UE failed to performe Open channel after USIM reset. TE shows Network currently unable to process command
+ * [BIP] change default 3GPP only
+ *
+ *
+ *
+****************************************************************************/
+#ifndef _BIP_PROFILE_H
+#define _BIP_PROFILE_H
+
+typedef enum{
+ BIP_DS_PROFILE_START = 0,
+ BIP_DS_PROFILE_WIFI_FIRST,
+ BIP_DS_PROFILE_3GPP_FIRST,
+ BIP_DS_PROFILE_3GPP_ONLY,
+ BIP_DS_PROFILE_WIFI_ONLY,
+ BIP_DS_PROFILE_NO_CONNECTION,
+ BIP_DS_PROFILE_END,
+ BIP_DS_PROFILE_DEFAULT = BIP_DS_PROFILE_3GPP_ONLY,
+}BIP_DS_PROFILE_ENUM;
+
+/* For customer setting, bip will not accord SBP ID to determine the priority */
+// #define BIP_CUSTOM_PROFILE BIP_DS_PROFILE_3GPP_FIRST
+
+#endif