[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ddm/atp_ursp_struct.h b/mcu/protocol/interface/ddm/atp_ursp_struct.h
new file mode 100644
index 0000000..1fc10c1
--- /dev/null
+++ b/mcu/protocol/interface/ddm/atp_ursp_struct.h
@@ -0,0 +1,170 @@
+#ifndef  _ATP_URSP_STRUCT_H
+#define  _ATP_URSP_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "mcd_l3_inc_struct.h"
+#include "atcmd_struct.h"
+#include "ursp_public_defs.h"
+#include "ursp_struct.h"
+
+/*******************************************************************************/
+/*                                  Caution!!                                  */
+/* LOCAL_PARA_HDR and src_id MUST be the 1st and 2nd parameters, respectively. */
+/*******************************************************************************/
+#define ATP_URSP_REQ_LOCAL_PARA_HDR \
+    LOCAL_PARA_HDR \
+    kal_uint32          src_id; \
+    kal_uint32          cmd_mode;
+
+#define ATP_URSP_CNF_LOCAL_PARA_HDR \
+    LOCAL_PARA_HDR \
+    kal_uint32          src_id; \
+    kal_bool            is_success; \
+    kal_uint16          err_cause;
+
+#define ATP_URSP_IND_LOCAL_PARA_HDR \
+    LOCAL_PARA_HDR \
+    kal_uint32          src_id;
+
+
+/*******************************************************************************
+ * URSP Internal                                                               *
+ *******************************************************************************/
+
+// => Internal data type for URSP
+typedef struct
+{
+    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)
+    kal_char dnn[URSP_DNN_SIZE];    // by default a NULL string
+    pdp_addr_type_enum pdx_type;    // by default NULL_PDP_ADDR_TYPE in ps_public_enum_public.h
+    atcmd_Access_type_enum access_type;    // by default ATCMD_ACCESS_TYPE_MAX
+}ursp_at_ue_local_conf_struct;
+typedef ursp_at_ue_local_conf_struct ursp_at_est_req_param_struct;
+
+/******************************************************************************************************************************************************************************
+* AT+EGURSPRDP[=<cid>]                                                                                                                                                        *
+*******************************************************************************************************************************************************************************/
+
+// MSG_ID_ATP_D2AT_EGURSPRDP_REQ
+typedef struct
+{
+    ATP_URSP_REQ_LOCAL_PARA_HDR
+
+    kal_int32 cid;
+}atp_d2at_egursprdp_req_struct;
+
+// MSG_ID_ATP_D2AT_EGURSPRDP_IND
+typedef struct
+{
+    ATP_URSP_IND_LOCAL_PARA_HDR
+
+    kal_int32 cid;
+
+    int type;
+    union
+    {
+        ursp_est_req_param_struct est_req;
+        struct
+        {
+            ursp_traffic_desc_struct traffic_desc;
+            ursp_ue_local_conf_struct ue_local_conf;
+            kal_bool match_all_disallow;
+        }app_req;
+    }param;
+}atp_d2at_egursprdp_ind_struct;
+
+// MSG_ID_ATP_D2AT_EGURSPRDP_CNF
+typedef struct
+{
+    ATP_URSP_CNF_LOCAL_PARA_HDR
+
+    kal_int32 res;
+}atp_d2at_egursprdp_cnf_struct;
+
+
+/******************************************************************************************************************************************************************************
+* +EGURSPREEVALU: <cid>,<event>                                                                                                                                               *
+*******************************************************************************************************************************************************************************/
+
+// MSG_ID_ATP_D2AT_EGURSPREEVAL_URC_IND
+typedef struct
+{
+    ATP_URSP_IND_LOCAL_PARA_HDR
+
+    kal_int32 cid;
+    kal_uint32 event;
+}atp_d2at_egurspreeval_urc_ind_struct;
+
+
+/******************************************************************************************************************************************************************************
+* AT+EGUEPOLICY=0,"<plmn_id>"[,"<ue_policy_part_content>"]                                                                                                                    *
+* AT+EGUEPOLICY=1,"<plmn_id>"[,<rule_precedence>,"<traffic_desc>",<num_of_route_sel_desc>[,<route_sel_desc_precedence>,"<route_sel_desc>"][...]][...]     …]                  *
+*******************************************************************************************************************************************************************************/
+
+// MSG_ID_ATP_D2AT_EGUEPOLICY_REQ
+typedef struct
+{
+    ATP_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];    // 'eight' refers to the maximum size of allowed NSSAI, i.e. at most eight different slices
+}atp_d2at_eguepolicy_req_struct;
+
+// MSG_ID_ATP_D2AT_EGUEPOLICY_CNF
+typedef struct
+{
+    ATP_URSP_CNF_LOCAL_PARA_HDR
+
+    kal_int32 res;
+}atp_d2at_eguepolicy_cnf_struct;
+
+
+/******************************************************************************************************************************************************************************
+* +EGUEPOLICYU:<plmn_id>                                                                                                                                                      *
+*******************************************************************************************************************************************************************************/
+
+// MSG_ID_ATP_D2AT_EGUEPOLICY_URC_IND
+typedef struct
+{
+    ATP_URSP_IND_LOCAL_PARA_HDR
+
+    plmn_id_struct plmn_id;
+}atp_d2at_eguepolicy_urc_ind_struct;
+
+
+/******************************************************************************************************************************************************************************
+* AT+EGUEPOLICYRDP=<msg_type>[,"<plmn_id>"]                                                                                                                                   *
+*******************************************************************************************************************************************************************************/
+
+// MSG_ID_ATP_D2AT_EGUEPOLICYRDP_REQ
+typedef struct
+{
+    ATP_URSP_REQ_LOCAL_PARA_HDR
+
+    kal_int8 msg_type;
+    plmn_id_struct plmn_id;
+}atp_d2at_eguepolicyrdp_req_struct;
+
+// MSG_ID_ATP_D2AT_EGUEPOLICYRDP_IND
+typedef struct
+{
+    ATP_URSP_IND_LOCAL_PARA_HDR
+
+    kal_int8 msg_type;
+    plmn_id_struct plmn_id;
+    kal_uint8 num_of_rule;
+    ursp_rule_struct rule_list[URSP_UE_POLICY_MAX_RULE_LIST_SIZE];    // 'eight' refers to the maximum size of allowed NSSAI, i.e. at most eight different slices
+}atp_d2at_eguepolicyrdp_ind_struct;
+
+// MSG_ID_ATP_D2AT_EGUEPOLICYRDP_CNF
+typedef struct
+{
+    ATP_URSP_CNF_LOCAL_PARA_HDR
+
+    kal_int32 res;
+}atp_d2at_eguepolicyrdp_cnf_struct;
+
+#endif