[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