[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