[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/ursp_struct.h b/mcu/protocol/interface/ddm/ursp_struct.h
new file mode 100644
index 0000000..c97db98
--- /dev/null
+++ b/mcu/protocol/interface/ddm/ursp_struct.h
@@ -0,0 +1,424 @@
+#ifndef  __URSP_STRUCT_H__
+#define  __URSP_STRUCT_H__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "mcd_l3_inc_struct.h"
+#include "atcmd_enum.h"
+#include "ursp_public_defs.h"
+
+// Type definition
+typedef struct ursp_hdr ursp_hdr_t;
+typedef struct ursp_hdr* ursp_hdr_ptr_t;
+
+// Macros
+#define URSP_REQ_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define URSP_CNF_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define URSP_IND_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+#define URSP_RSP_LOCAL_PARA_HDR    \
+    LOCAL_PARA_HDR \
+    kal_uint16 seq_num;
+
+// Interface
+// N/A
+
+// Implementation
+struct ursp_hdr
+{
+    LOCAL_PARA_HDR
+    kal_uint16 seq_num;
+};
+
+
+/*******************************************************************************
+ * URSP Internal                                                               *
+ *******************************************************************************/
+
+// => Internal data type for URSP
+#pragma pack(push, 1)
+typedef struct
+{
+    kal_uint8 ipv4_addr[URSP_TDC_LEN_IPV4_REMOTE_ADDR];
+    kal_uint8 ipv4_mask[URSP_TDC_LEN_IPV4_REMOTE_MASK];
+}tdc_16_t;
+typedef struct
+{
+    kal_uint8 ipv6_addr[URSP_TDC_LEN_IPV6_REMOTE_ADDR];
+    kal_uint8 ipv6_prefix_len;
+}tdc_33_t;
+typedef union
+{
+    kal_uint8 ipv4_prot_id;
+    kal_uint8 ipv6_next_hdr;
+}tdc_48_t;
+typedef struct tdc_81
+{
+    kal_uint16 min_remote_port;
+    kal_uint16 max_remote_port;
+}tdc_81_t;
+typedef struct tdc_82
+{
+    union
+    {
+        tdc_16_t ipv4;
+        tdc_33_t ipv6;
+    }remote_addr;
+    tdc_48_t prot_id_next_hdr;
+    union
+    {
+        kal_uint16 single;
+        tdc_81_t range;
+    }remote_port;
+}tdc_82_t;
+typedef struct
+{
+    union
+    {
+        kal_uint8 ipv4_tos;
+        kal_uint8 ipv6_tc;
+    }val;
+    union
+    {
+        kal_uint8 ipv4_tos_mask;
+        kal_uint8 ipv6_tc_mask;
+    }mask;
+}tdc_112_t;
+typedef struct
+{
+    kal_uint8 s_tag_pcp;
+    kal_uint8 s_tag_dei;
+}tdc_134_t;
+#pragma pack(pop)
+
+typedef struct
+{
+    kal_bool is_match_all;
+    kal_uint8 dnn_len;
+    kal_char dnn[URSP_TDC_LEN_DNN];    // APN in TS 23.003
+    kal_uint8 os_id[URSP_TDC_LEN_OS_ID];    // UUID in RFC 4122
+    kal_uint8 app_id_len;
+    kal_uint8 app_id[URSP_TDC_LEN_OS_APP_ID];
+    kal_uint8 ipv4_addr[URSP_TDC_LEN_IPV4_REMOTE_ADDR];
+    kal_uint8 ipv4_mask[URSP_TDC_LEN_IPV4_REMOTE_MASK];
+    kal_uint8 ipv6_addr[URSP_TDC_LEN_IPV6_REMOTE_ADDR];
+    kal_uint8 ipv6_prefix_len;
+    kal_uint8 prot_id_next_hdr;
+    kal_uint16 single_remote_port;
+    kal_uint16 min_remote_port;
+    kal_uint16 max_remote_port;
+    kal_uint8 dst_fqdn_len;
+    kal_uint8 dst_fqdn[URSP_TDC_LEN_DST_FQDN];
+}ursp_traffic_desc_struct;
+
+typedef struct
+{
+    kal_uint8 p_val;
+    kal_uint8 ssc_mode;
+    kal_uint8 s_nssai_len;
+    kal_uint8 s_nssai[URSP_RSDC_LEN_S_NSSAI];
+    kal_uint8 dnn_len;
+    kal_uint8 dnn[URSP_TDC_LEN_DNN];    // APN in TS 23.003
+    kal_uint8 pdu_session_type;
+    kal_uint8 pref_access_type;
+}ursp_route_sel_desc_struct;
+
+typedef struct
+{
+    kal_uint8 p_val;
+    ursp_traffic_desc_struct traffic_desc;
+    kal_uint8 num_of_rsd;
+    ursp_route_sel_desc_struct route_sel_desc_list[URSP_RULE_MAX_ROUTE_SEL_DESC_LIST_SIZE];
+}ursp_rule_struct;
+
+typedef struct
+{
+    kal_uint8 ssc_mode;
+    kal_uint8 s_nssai_len;
+    kal_uint8 s_nssai[URSP_RSDC_LEN_S_NSSAI];
+    kal_uint8 dnn_len;
+    kal_uint8 dnn[URSP_TDC_LEN_DNN];    // APN in TS 23.003
+    kal_uint8 pdu_session_type;
+    kal_uint8 pref_access_type;
+}ursp_ue_local_conf_struct;
+typedef ursp_ue_local_conf_struct ursp_est_req_param_struct;
+
+
+/*******************************************************************************
+ * User to URSP REQ                                                            *
+ *******************************************************************************/
+
+// MSG_ID_URSP_GET_ROUTE_PROFILE_REQ
+typedef struct
+{
+    URSP_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    kal_int32 cid;
+}ursp_get_route_profile_req_struct;
+
+// MSG_ID_URSP_REEVAL_REQ
+typedef struct
+{
+    URSP_REQ_LOCAL_PARA_HDR
+
+    /* common part */
+    ursp_reeval_event_enum event;
+    union
+    {
+        // Periodic
+        struct
+        {
+            int unused;
+        }periodic;
+
+        // PDU release
+        struct
+        {
+            int unused;
+        }pdu_rel;
+
+        // PCF Update
+        struct
+        {
+            int unused;
+        }pcf_update;
+
+        // Inter-system change from S1 to N1
+        struct
+        {
+            int unused;
+        }inter_sys;
+
+        // Registered in N1
+        struct
+        {
+            int unused;
+        }reg;
+
+        // Establishing a connection to a WLAN access
+        struct
+        {
+            int unused;
+        }wlan_est;
+
+        // Releasing a connection to a WLAN access
+        struct
+        {
+            int unused;
+        }wlan_rel;
+
+        // Allowed NSSAI change
+        struct
+        {
+            int unused;
+        }allowed_nssai;
+
+        // LADN information changed
+        struct
+        {
+            kal_char dnn_list[APN_STRING_LEN * URSP_MAX_LADN_DNN_NUM];
+            kal_uint8 in_out[URSP_LDAN_DNN_BITMAP_SIZE];
+        }ladn;
+    }param;
+}ursp_reeval_req_struct;
+
+// MSG_ID_URSP_SET_PRECONF_UE_POLICY_REQ
+typedef struct
+{
+    URSP_REQ_LOCAL_PARA_HDR
+
+    plmn_id_struct plmn_id;
+    kal_uint8 num_of_rule;
+    ursp_rule_struct rule_list[URSP_UE_POLICY_MAX_RULE_LIST_SIZE];
+}ursp_set_preconf_ue_policy_req_struct;
+
+// MSG_ID_URSP_SET_USIM_UE_POLICY_REQ
+typedef struct
+{
+    URSP_REQ_LOCAL_PARA_HDR
+
+    int unused;
+}ursp_set_usim_ue_policy_req_struct;
+
+// MSG_ID_URSP_GET_UE_POLICY_REQ
+typedef struct
+{
+    URSP_REQ_LOCAL_PARA_HDR
+
+    plmn_id_struct plmn_id;
+}ursp_get_ue_policy_req_struct;
+
+
+/*******************************************************************************
+ * URSP to User CNF                                                            *
+ *******************************************************************************/
+
+// MSG_ID_URSP_GET_ROUTE_PROFILE_CNF
+typedef struct
+{
+    URSP_CNF_LOCAL_PARA_HDR
+
+    /* common part */
+    ursp_res_enum res;
+}ursp_get_route_profile_cnf_struct;
+
+// MSG_ID_URSP_REEVAL_CNF
+typedef struct
+{
+    URSP_CNF_LOCAL_PARA_HDR
+
+    /* common part */
+    ursp_res_enum res;
+}ursp_reeval_cnf_struct;
+
+// MSG_ID_URSP_SET_PRECONF_UE_POLICY_CNF
+typedef struct
+{
+    URSP_CNF_LOCAL_PARA_HDR
+
+    /* common part */
+    ursp_res_enum res;
+}ursp_set_preconf_ue_policy_cnf_struct;
+
+// MSG_ID_URSP_SET_USIM_UE_POLICY_CNF
+typedef struct
+{
+    URSP_CNF_LOCAL_PARA_HDR
+
+    int unused;
+}ursp_set_usim_ue_policy_cnf_struct;
+
+// MSG_ID_URSP_GET_UE_POLICY_CNF
+typedef struct
+{
+    URSP_CNF_LOCAL_PARA_HDR
+
+    /* common part */
+    ursp_res_enum res;
+}ursp_get_ue_policy_cnf_struct;
+
+
+/*******************************************************************************
+ * URSP to User IND                                                            *
+ *******************************************************************************/
+
+// MSG_ID_URSP_GET_ROUTE_PROFILE_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    kal_int32 cid;
+    ursp_est_req_param_struct est_req_param;
+    kal_uint32 attr;
+}ursp_get_route_profile_ind_struct;
+
+// MSG_ID_URSP_GET_ROUTE_SUPP_PROFILE_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    kal_int32 cid;
+    ursp_route_supp_profile_type_enum type;
+    union
+    {
+        struct
+        {
+            ursp_traffic_desc_struct traffic_desc;
+            ursp_ue_local_conf_struct ue_local_conf;
+            kal_bool match_all_disallow;
+        }req;
+    }info;
+}ursp_get_route_supp_profile_ind_struct;
+
+// MSG_ID_URSP_REEVAL_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    kal_uint8 cid[URSP_CID_BITMAP_SIZE]; // a bitmap
+    ursp_reeval_event_enum event;
+}ursp_reeval_ind_struct;
+
+// MSG_ID_URSP_GET_UE_POLICY_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    plmn_id_struct plmn_id;
+    kal_uint8 num_of_rule;
+    ursp_rule_struct rule_list[URSP_UE_POLICY_MAX_RULE_LIST_SIZE];
+}ursp_get_ue_policy_ind_struct;
+
+// MSG_ID_URSP_UE_POLICY_CHG_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    /* common part */
+    plmn_id_struct plmn_id;
+}ursp_ue_policy_chg_ind_struct;
+
+// MSG_ID_URSP_RULE_TBL_DUMP_IND
+typedef struct
+{
+    URSP_IND_LOCAL_PARA_HDR
+
+    // UPSI
+    plmn_id_struct plmn_id;
+    kal_uint16 upsc;
+
+    // URSP rule
+    kal_uint8 rule_p_val;
+    kal_uint8 rsd_p_val;
+
+    // Traffic descriptor
+    kal_bool is_match_all;
+    kal_uint8 os_id[URSP_TDC_LEN_OS_ID];
+    tdc_16_t tdc_16;
+    tdc_16_t tdc_33;
+    tdc_16_t tdc_48;
+    kal_uint16 single_remote_port;
+    tdc_16_t tdc_81;
+    kal_uint32 ipsec_spi;
+    tdc_16_t tdc_112;
+    kal_uint8 flow_label[3];
+    kal_uint8 dst_mac_addr[6];
+    kal_uint8 c_tag_vid[2];
+    kal_uint8 s_tag_vid[2];
+    kal_uint8 c_tag_pcp_dei;
+    kal_uint8 s_tag_pcp_dei;
+    kal_uint16 eth_type;
+    kal_uint8 td_dnn[URSP_TDC_LEN_DNN];
+    kal_uint8 conn_cap[URSP_TDC_LEN_CONN_CAP];
+    kal_uint8 dst_fqdn[URSP_TDC_LEN_DST_FQDN];
+    kal_uint8 os_app_id[URSP_TDC_LEN_OS_APP_ID];
+
+    // Route selection descriptor
+    kal_uint8 ssc_mode;
+    kal_uint8 s_nssai[URSP_RSDC_LEN_S_NSSAI];
+    kal_uint8 rsd_dnn[URSP_RSDC_LEN_DNN];
+    kal_uint8 pdu_session_type;
+    kal_uint8 pref_access_type;
+    kal_bool is_nsn3_offload;    
+}ursp_rule_tbl_dump_ind_struct;
+
+
+/*******************************************************************************
+ * User to URSP RSP                                                            *
+ *******************************************************************************/
+// N/A
+
+#endif