[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/protocol/interface/ddm/d2apn_struct.h b/mcu/protocol/interface/ddm/d2apn_struct.h
new file mode 100644
index 0000000..6a33b37
--- /dev/null
+++ b/mcu/protocol/interface/ddm/d2apn_struct.h
@@ -0,0 +1,324 @@
+#ifndef  __D2APN_STRUCT_H__
+#define  __D2APN_STRUCT_H__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "atcmd_enum.h"
+#include "atcmd_struct.h"
+#include "mcd_l3_inc_struct.h"
+#include "ddm_enum.h"
+#include "d2apn_public_defs.h"
+
+// Type definition
+typedef struct d2apn_hdr d2apn_hdr_t;
+typedef struct d2apn_hdr* d2apn_hdr_ptr_t;
+
+// Macros
+#define D2APN_REQ_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define D2APN_CNF_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define D2APN_IND_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define D2APN_RSP_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+// Interface
+// N/A
+
+// Implementation
+struct d2apn_hdr
+{
+    LOCAL_PARA_HDR
+    kal_uint16 seq_num;
+};
+
+/*******************************************************************************
+* User to D2APN REQ                                                            *
+*******************************************************************************/
+
+// MSG_ID_D2APN_SET_APNS_INFO_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_set_apns_info_req_type_enum type;
+    plmn_id_struct plmn_id;
+    kal_uint8 imsi[D2_IMSI_STR_LEN];
+    kal_bool mia;    // KAL_TRUE indicates no APN settings for the owner; otherwise, a default case that the owner may give APN settings
+}d2apn_set_apns_info_req_struct;
+
+// MSG_ID_D2APN_SET_APNS_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_set_apns_req_type_enum type;
+    kal_char apn[APN_STRING_LEN];
+    kal_uint32 apn_idx;
+    kal_uint32 apn_type;
+    pdp_addr_type_enum pdx_type;
+    kal_char usrname[USERID_STRING_LEN];
+    kal_char passwd[PASSWORD_STRING_LEN];
+    kal_int8 auth_type;
+    kal_uint32 bearer_bitmask;
+
+    /* conditional part */
+    struct
+    {
+        struct
+        {
+            pdp_addr_type_enum pdx_type;    // by default NULL_PDP_ADDR_TYPE
+        }roam;
+
+        struct
+        {
+            kal_char dnn[APN_STRING_LEN];    // by default a NULL string
+            pdp_addr_type_enum pdx_type;    // by default NULL_PDP_ADDR_TYPE
+            atcmd_SSC_mode_enum ssc_mode;    // by default ATCMD_SSC_MODE_MAX
+            at_s_nssai_struct s_nssai;    // by default is_sst_present, is_sd_present, is_mapped_configured_sst_present, is_mapped_configured_sd_present) = (KAL_FALSE, KAL_FALSE, KAL_FALSE, KAL_FALSE)
+            atcmd_Access_type_enum access_type;    // by default ATCMD_ACCESS_TYPE_MAX
+        }vg;
+
+        struct
+        {
+            pdp_addr_type_enum pdx_type;    // by default NULL_PDP_ADDR_TYPE
+        }vg_roam;
+
+        /* operator part */
+        struct
+        {
+            kal_uint32 wapn;    // by default 0 to disable VzW
+            kal_uint32 apncl;
+            kal_uint32 apned;
+            kal_uint32 max_conn;
+            kal_uint32 max_conn_t;
+            kal_uint32 wait_time;
+        }vzw;
+
+        struct
+        {
+            kal_uint32 inact_time;    // by default 0
+        }sprint;
+    }cond;
+}d2apn_set_apns_req_struct;
+
+// MSG_ID_D2APN_RESET_APNS_INFO_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_reset_apns_info_req_type_enum type;
+}d2apn_reset_apns_info_req_struct;
+
+// MSG_ID_D2APN_RESET_APNS_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_reset_apns_req_type_enum type;
+    kal_char apn[APN_STRING_LEN];
+    kal_uint32 apn_idx;
+}d2apn_reset_apns_req_struct;
+
+// MSG_ID_D2APN_COPY_APNS_TBL_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    // N/A
+}d2apn_copy_apns_tbl_req_struct;
+
+// MSG_ID_D2APN_GET_APNS_INFO_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_get_apns_info_req_type_enum type;
+    module_type owner;
+}d2apn_get_apns_info_req_struct;
+
+// MSG_ID_D2APN_GET_APNS_REQ
+typedef struct
+{
+    D2APN_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_get_apns_req_type_enum type;
+    union
+    {
+        // querying one by APN and APN index
+        struct
+        {
+            kal_char apn[APN_STRING_LEN];
+            kal_uint32 apn_idx;
+        }apn_idx;
+
+        // querying a group of APN setting by owner 
+        struct
+        {
+            module_type owner;
+        }owner;
+
+        // querying a group by APN
+        struct
+        {
+            kal_char apn[APN_STRING_LEN];
+        }apn;
+    }param;
+}d2apn_get_apns_req_struct;
+
+
+/*******************************************************************************
+* D2APN to User CNF                                                            *
+*******************************************************************************/
+
+// MSG_ID_D2APN_SET_APNS_INFO_CNF
+typedef struct
+{
+    D2APN_CNF_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_res_enum res;
+}d2apn_set_apns_info_cnf_struct;
+
+// MSG_ID_D2APN_SET_APNS_CNF
+typedef d2apn_set_apns_info_cnf_struct d2apn_set_apns_cnf_struct;
+
+// MSG_ID_D2APN_RESET_APNS_INFO_CNF
+typedef d2apn_set_apns_info_cnf_struct d2apn_reset_apns_info_cnf_struct;
+
+// MSG_ID_D2APN_RESET_APNS_CNF
+typedef d2apn_set_apns_info_cnf_struct d2apn_reset_apns_cnf_struct;
+
+// MSG_ID_D2APN_COPY_APNS_TBL_CNF
+typedef d2apn_set_apns_info_cnf_struct d2apn_copy_apns_tbl_cnf_struct;
+
+// MSG_ID_D2APN_GET_APNS_INFO_CNF
+typedef d2apn_set_apns_info_cnf_struct d2apn_get_apns_info_cnf_struct;
+
+// MSG_ID_D2APN_GET_APNS_CNF
+typedef d2apn_set_apns_cnf_struct d2apn_get_apns_cnf_struct;
+
+/*******************************************************************************
+* D2APN to User IND                                                            *
+*******************************************************************************/
+
+// MSG_ID_D2APN_GET_APNS_INFO_IND
+typedef struct
+{
+    D2APN_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    module_type owner;
+    plmn_id_struct plmn_id;
+    kal_uint8 imsi[D2_IMSI_STR_LEN];
+    kal_bool mia;    // KAL_TRUE indicates no APN settings for the owner; otherwise, a default case that the owner may give APN settings
+}d2apn_get_apns_info_ind_struct;
+
+// MSG_ID_D2APN_GET_APNS_IND
+typedef struct
+{
+    D2APN_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    kal_char apn[APN_STRING_LEN];
+    kal_uint32 apn_idx;
+    kal_uint32 apn_type;
+    pdp_addr_type_enum pdx_type;
+    kal_char usrname[USERID_STRING_LEN];
+    kal_char passwd[PASSWORD_STRING_LEN];
+    kal_int8 auth_type;
+    kal_uint32 bearer_bitmask;
+
+    /* conditional part */
+    struct
+    {
+        struct
+        {
+            pdp_addr_type_enum pdx_type;
+        }roam;
+
+        struct
+        {
+            kal_char dnn[APN_STRING_LEN];
+            pdp_addr_type_enum pdx_type;
+            atcmd_SSC_mode_enum ssc_mode;
+            at_s_nssai_struct s_nssai;
+            atcmd_Access_type_enum access_type;
+        }vg;
+
+        struct
+        {
+            pdp_addr_type_enum pdx_type;
+        }vg_roam;
+
+        /* operator part */
+        struct
+        {
+            kal_uint32 wapn;
+            kal_uint32 apncl;
+            kal_uint32 apned;
+            kal_uint32 max_conn;
+            kal_uint32 max_conn_t;
+            kal_uint32 wait_time;
+        }vzw;
+
+        struct
+        {
+            kal_uint32 inact_time;
+        }sprint;
+    }cond;
+}d2apn_get_apns_ind_struct;
+
+// MSG_ID_D2APN_APNS_CHG_IND
+typedef struct
+{
+    D2APN_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    d2apn_apns_chg_ind_type_enum type;
+    union
+    {
+        // APN-setting information based on a owner changed
+        struct
+        {
+            module_type owner;
+        }info;
+
+        // a single APN setting changed
+        struct
+        {
+            kal_char apn[APN_STRING_LEN];
+            kal_uint32 apn_idx;
+        }apn_idx;
+
+        // a group of APN settings based on a owner changed
+        struct
+        {
+            module_type owner;
+        }owner;
+    }param;    // NEED_TO_BE_NOTICED. should be 'info'
+}d2apn_apns_chg_ind_struct;
+
+
+/*******************************************************************************
+* User to D2APN RSP                                                             *
+*******************************************************************************/
+
+// N/A
+
+#endif