[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ddm/d2_netif_struct.h b/mcu/protocol/interface/ddm/d2_netif_struct.h
new file mode 100644
index 0000000..1474046
--- /dev/null
+++ b/mcu/protocol/interface/ddm/d2_netif_struct.h
@@ -0,0 +1,190 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+
+#ifndef __D2_NETIF_STRUCT_H__
+#define __D2_NETIF_STRUCT_H__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+//#include "pdn_public_defs.h"
+#include "netinfo_common_struct.h"
+#include "iwlan_public_defs.h"
+
+typedef enum {
+ D2_NETIF_IF_CAUSE_NO_ERROR = 0,
+ D2_NETIF_IF_CAUSE_NET_IP_CHG = 11,
+ D2_NETIF_IF_CAUSE_MD_IP_CHG = 12,
+ D2_NETIF_IF_CAUSE_AP_IP_CHG = 13,
+ D2_NETIF_IF_CAUSE_NET_INFO_CHG = 14,
+ D2_NETIF_IF_CAUSE_RAN_CHG = 15,
+ D2_NETIF_IF_CAUSE_CHG = 20,
+ D2_NETIF_IF_CAUSE_NO_RA_I = 21,
+ D2_NETIF_IF_CAUSE_NO_RA_R = 22,
+ D2_NETIF_IF_CAUSE_AP_UP_SUCC = 31,
+ D2_NETIF_IF_CAUSE_AP_UP_FAIL = 32,
+ D2_NETIF_IF_CAUSE_AP_DOWN_SUCC = 33,
+ D2_NETIF_IF_CAUSE_AP_DOWN_FAIL = 34,
+ D2_NETIF_IF_CAUSE_MD_UP_SUCC = 41,
+ D2_NETIF_IF_CAUSE_MD_UP_FAIL = 41,
+//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
+//D2_NETIF_IF_CAUSE_MD_UP_FAIL = 42,
+ D2_NETIF_IF_CAUSE_MD_DOWN_SUCC = 43,
+ D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 43,
+//[TH 20191202] Workaround for STKBRG CNF Fail -> D2 do not have error handling for CNF_FAIL-> run out of interface_id
+//D2_NETIF_IF_CAUSE_MD_DOWN_FAIL = 44,
+ D2_NETIF_IF_CAUSE_sAP_UP_SUCC = 51,
+ D2_NETIF_IF_CAUSE_sAP_UP_FAIL = 52,
+ D2_NETIF_IF_CAUSE_sAP_DOWN_SUCC = 53,
+ D2_NETIF_IF_CAUSE_sAP_DOWN_FAIL = 54,
+} d2_netif_interface_cause_enum;
+
+typedef enum {
+ D2_NETIF_RA_ERROR = -1,
+ D2_NETIF_RA_DEFAULT = 0,
+ D2_NETIF_RA_SUCCESS = 1,
+ D2_NETIF_RA_INITIAL_FAIL = 2,
+ D2_NETIF_RA_REFRESH_FAIL = 3,
+ D2_NETIF_RA_OOXX = 0x7FFFFFFF
+} d2_netif_ra_state_enum;
+
+typedef enum {
+ D2_NETIF_IF_STATE_DOWN = 0,
+ D2_NETIF_IF_STATE_UP = 1,
+
+ D2_NETIF_IF_STATE_DOWNING = 10,
+ D2_NETIF_IF_STATE_UPING = 11,
+ D2_NETIF_IF_STATE_OOXX = 0x7FFFFFFF
+} d2_netif_interface_state_enum;
+
+typedef struct {
+ network_ip_info_struct cellular;
+ network_ip_info_struct epdg;
+ ipstk_ip_info_struct md_ipstk;
+ ipstk_ip_info_struct ap_ipstk;
+ //ipstk_ip_info_struct sap_ipstk;
+} d2_netif_ip_info_t;
+
+/*
+typedef struct {
+ d2_netif_interface_state_enum state;
+ kal_uint16 is_use;
+} d2_netif_interface_status;
+*/
+
+typedef struct {
+ net_info_struct net_info;
+} d2_netif_net_info_t;
+
+typedef struct {
+ d2_netif_interface_state_enum md_if;
+ d2_netif_interface_state_enum ap_if;
+ d2_netif_interface_state_enum sap_if;
+ d2_netif_ra_state_enum ra_state;
+ d2_netif_ip_info_t ip;
+ kal_bool net_present;
+ d2_netif_net_info_t net;
+ kal_bool ran_present;
+ iwlan_ran_e ran;
+ kal_bool is_no_ra;
+} d2_netif_interface_info_t;
+
+typedef struct {
+ kal_uint8 is_used;
+ kal_uint8 ps_id;
+ kal_uint16 transaction_id;
+ // kal_uint32 interface_id;
+ d2_netif_interface_info_t info;
+} d2_netif_interface_dump_item_t;
+
+#define D2_NETIF_MAX_INTERFACE_ID (20)
+#define D2_NETIF_MAX_DUMP_INTERFACE_ID (D2_NETIF_MAX_INTERFACE_ID) //(8)
+
+// MSG_ID_D2_NETIF_CONTEXT_DUMP_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_int32 interface_id;
+ kal_int32 num;
+ kal_char str[32];
+ d2_netif_interface_dump_item_t item[D2_NETIF_MAX_DUMP_INTERFACE_ID];
+}d2_netif_context_dump_ind_struct;
+
+typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_end_ind_struct;
+typedef d2_netif_context_dump_ind_struct d2_netif_context_dump_start_ind_struct;
+
+
+#define D2_NETIF_API_PARAM_TYPE(name) netif_api_param_type_##name
+#define D2_NETIF_API_PARAM_VAR(name) netif_api_param_var_##name
+
+typedef enum {
+#define D2_NETIF_API_PARAM(name) D2_NETIF_API_PARAM_TYPE(name),
+#include "d2_netif_api_param.def"
+#undef D2_NETIF_API_PARAM
+} d2_netif_api_param_type_e;
+
+// MSG_ID_D2_NETIF_API_DUMP_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool is_sensitive;
+ kal_char func[32];
+ kal_uint32 line;
+ kal_int32 interface_id;
+ kal_int32 value[6];
+ d2_netif_api_param_type_e type;
+ union {
+ char buf[0];
+#define D2_NETIF_API_PARAM(name) name D2_NETIF_API_PARAM_VAR(name);
+#include "d2_netif_api_param.def"
+#undef D2_NETIF_API_PARAM
+ } param;
+} d2_netif_api_dump_ind_struct;
+
+
+/**
+ * @brief Callback function type "d2_netif_interface_cb"
+ *
+ * When any interface event occurs, NETIF will notify the interface owner through this callback
+ * * You can also through custom_d2_netif_event_notify_cb() know all interface event
+ * @param t_interface_id the id of the interface in which the event occurred
+ * @param cause the cause of the event. See @ref d2_netif_interface_cause_enum
+ * @param user_data user data returned in callback
+ */
+typedef void (*d2_netif_interface_cb)(kal_int32 t_interface_id, d2_netif_interface_cause_enum cause, void *user_data);
+
+#endif