[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