[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ddm/ursp_public_defs.h b/mcu/protocol/interface/ddm/ursp_public_defs.h
new file mode 100644
index 0000000..ef63ef3
--- /dev/null
+++ b/mcu/protocol/interface/ddm/ursp_public_defs.h
@@ -0,0 +1,173 @@
+#ifndef __URSP_PUBLIC_DEFS_H__
+#define __URSP_PUBLIC_DEFS_H__
+
+#include "d2pm_public_defs.h"
+
+// Type denifitions
+typedef enum
+{
+    URSP_RES_FAIL = -1, 
+    URSP_RES_NONE, 
+    URSP_RES_SUCC, 
+    URSP_RES_MAX = 0x7FFFFFFF
+}ursp_res_enum;
+
+typedef enum
+{
+    URSP_ROUTE_SUPP_PROFILE_TYPE_NONE = 0, 
+    URSP_ROUTE_SUPP_PROFILE_TYPE_REQ, 
+    URSP_ROUTE_SUPP_PROFILE_TYPE_MAX = 0x7FFFFFFF
+}ursp_route_supp_profile_type_enum;
+
+typedef enum
+{
+    URSP_REEVAL_EVENT_NONE = 0, 
+    URSP_REEVAL_EVENT_PERIODIC, 
+    URSP_REEVAL_EVENT_PDU_REL, 
+    URSP_REEVAL_EVENT_PCF_UPDATE, 
+    URSP_REEVAL_EVENT_INTER_SYS, 
+    URSP_REEVAL_EVENT_REG, 
+    URSP_REEVAL_EVENT_WLAN_EST, 
+    URSP_REEVAL_EVENT_WLAN_REL, 
+    URSP_REEVAL_EVENT_ALLOWED_NSSAI, 
+    URSP_REEVAL_EVENT_LADN, 
+    URSP_REEVAL_EVENT_MAX = 0x7FFFFFFF
+}ursp_reeval_event_enum;
+
+// => Internal
+typedef enum {
+    TD_TYPE_MATACH_ALL = 0x00,
+    TD_TYPE_OS_APP_ID = 0x08,
+    TD_TYPE_IPV4_REMOTE_ADDR = 0x10,
+    TD_TYPE_IPV6_REMOTE_ADDR = 0x21,
+    TD_TYPE_PROTOCOL_ID = 0x30,
+    TD_TYPE_SINGLE_REMOTE_PORT = 0x50,
+    TD_TYPE_REMOTE_PORT_RANGE = 0x51,
+    TD_TYPE_SPI = 0x60,
+    TD_TYPE_TOS = 0x70,
+    TD_TYPE_FLOW_LABEL = 0x80,
+    TD_TYPE_DEST_MAC = 0x81,
+    TD_TYPE_C_TAG_VID = 0x83,
+    TD_TYPE_S_TAG_VID = 0x84,
+    TD_TYPE_C_TAG_PCP = 0x85,
+    TD_TYPE_S_TAG_PCP = 0x86,
+    TD_TYPE_ETHER_TYPE = 0x87,
+    TD_TYPE_DNN = 0x88,
+    TD_TYPE_CONN_CAPA = 0x90,
+    TD_TYPE_DEST_FQDN = 0x91,
+    TD_TYPE_APP_ID = 0xa0,
+} traffic_descriptor_component_type_enum;
+
+typedef enum {
+    RS_TYPE_SSC = 0x01,
+    RS_TYPE_SNSSAI = 0x02,
+    RS_TYPE_DNN = 0x04,
+    RS_TYPE_PDU_SESSION_TYPE = 0x08,
+    RS_TYPE_PREFER_ACCESS_TYPE = 0x10,
+    RS_TYPE_NON_SEAMLESS = 0x20,
+} route_selection_descriptor_component_type_enum;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+// Macro
+#define URSP_CID_BITMAP_SIZE    (D2PM_CID_BITMAP_SIZE)
+#define URSP_UE_POLICY_MAX_RULE_LIST_SIZE    (8)    // 'eight' refers to the maximum size of allowed NSSAI, i.e. at most eight different slices
+#define URSP_RULE_MAX_ROUTE_SEL_DESC_LIST_SIZE    (8)    // 'eight' refers to the maximum size of allowed NSSAI, i.e. at most eight different slices
+// => LADN
+#define URSP_MAX_LADN_DNN_NUM    (8)
+#define URSP_LADN_DNN_DELIM    "\x1F"
+#define URSP_LDAN_DNN_BITMAP_SIZE    (((URSP_MAX_LADN_DNN_NUM - 1) >> 3) + 1)
+// => Evaluation Flags
+#define URSP_EVAL_FLAG_NONE    (0x00000000)
+#define URSP_EVAL_MATCH_ALL_DISALLOW    (0x00000001)
+// => Route attributes
+#define URSP_ROUTE_ATTR_NONE    (0x00000000)
+#define URSP_ROUTE_ATTR_MATCH_ALL    (0x00000001)
+#define URSP_ROUTE_ATTR_UE_LOCAL_CONF    (0x00000002)
+// => Internal
+#define URSP_DNN_SIZE    (100)    // APN in TS 23.003
+// => => Traffic descriptor component type identifier
+#define URSP_TDC_TYPE_MATCH_ALL    (0x01)
+#define URSP_TDC_TYPE_OS_ID    (0x08)
+#define URSP_TDC_TYPE_IPV4_REMOTE_ADDR    (0x10)
+#define URSP_TDC_TYPE_IPV6_REMOTE_ADDR    (0x21)
+#define URSP_TDC_TYPE_IPV4_PROT_ID    (0x30)
+#define URSP_TDC_TYPE_IPV6_NEXT_HDR    (0x30)
+#define URSP_TDC_TYPE_SINGLE_REMOTE_PORT    (0x50)
+#define URSP_TDC_TYPE_REMOTE_PORT_RANGE    (0x51)
+#define URSP_TDC_TYPE_IP_3_TUPLE    (0x52)    // max{(IPV4_REMOTE_ADDR, IPV4_REMOTE_MASK), (IPV6_REMOTE_ADDR, IPV6_PREFIX_LEN)} + IPV4_PROT_ID/IPV6_NEXT_HDR  + max{SINGLE_REMOTE_PORT, (PORT_RANGE_LOW_LIMIT, PORT_RANGE_HIGH_LIMIT)}
+#define URSP_TDC_TYPE_SEC_PARAM_IDX    (0x60)
+#define URSP_TDC_TYPE_TYPE_OF_SVC    (0x70)
+#define URSP_TDC_TYPE_TFC_CLASS    (0x70)
+#define URSP_TDC_TYPE_FLOW_LABEL    (0x80)
+#define URSP_TDC_TYPE_DST_MAC_ADDR    (0x81)
+#define URSP_TDC_TYPE_C_TAG_VID    (0x83)
+#define URSP_TDC_TYPE_S_TAG_VID    (0x84)
+#define URSP_TDC_TYPE_C_TAG_PCP_DEI    (0x85)
+#define URSP_TDC_TYPE_S_TAG_PCP_DEI    (0x86)
+#define URSP_TDC_TYPE_ETH_TYPE    (0x87)
+#define URSP_TDC_TYPE_DNN    (0x88)
+#define URSP_TDC_TYPE_CONN_CAP    (0x90)
+#define URSP_TDC_TYPE_DST_FQDN    (0x91)
+#define URSP_TDC_TYPE_OS_APP_ID    (0xA0)
+// => => Length of traffic descriptor component value field
+#define URSP_TDC_LEN_MATCH_ALL    (0)
+#define URSP_TDC_LEN_OS_ID    (16)    // UUID in RFC 4122
+#define URSP_TDC_LEN_IPV4_REMOTE_ADDR    (4)
+#define URSP_TDC_LEN_IPV4_REMOTE_MASK    (4)
+#define URSP_TDC_LEN_IPV6_REMOTE_ADDR    (16)
+#define URSP_TDC_LEN_IPV6_PREFIX_LEN    (1)
+#define URSP_TDC_LEN_IPV4_PROT_ID    (1)
+#define URSP_TDC_LEN_IPV6_NEXT_HDR    (1)
+#define URSP_TDC_LEN_SINGLE_REMOTE_PORT    (2)
+#define URSP_TDC_LEN_PORT_RANGE_LOW_LIMIT    (2)
+#define URSP_TDC_LEN_PORT_RANGE_HIGH_LIMIT    (2)
+#define URSP_TDC_LEN_IP_3_TUPLE    (22)    // max{(IPV4_REMOTE_ADDR, IPV4_REMOTE_MASK), (IPV6_REMOTE_ADDR, IPV6_PREFIX_LEN)} + IPV4_PROT_ID/IPV6_NEXT_HDR  + max{SINGLE_REMOTE_PORT, (PORT_RANGE_LOW_LIMIT, PORT_RANGE_HIGH_LIMIT)}
+#define URSP_TDC_LEN_SEC_PARAM_IDX    (4)
+#define URSP_TDC_LEN_TYPE_OF_SVC    (1)
+#define URSP_TDC_LEN_TFC_CLASS    (1)
+#define URSP_TDC_LEN_TYPE_OF_SVC_MASK    (1)
+#define URSP_TDC_LEN_TFC_CLASS_MASK    (1)
+#define URSP_TDC_LEN_FLOW_LABEL    (3)
+#define URSP_TDC_LEN_DST_MAC_ADDR    (6)
+#define URSP_TDC_LEN_C_TAG_VID    (2)
+#define URSP_TDC_LEN_S_TAG_VID    (2)
+#define URSP_TDC_LEN_C_TAG_PCP_DEI    (1)
+#define URSP_TDC_LEN_S_TAG_PCP_DEI    (1)
+#define URSP_TDC_LEN_ETH_TYPE    (2)
+#define URSP_TDC_LEN_DNN    (URSP_DNN_SIZE)
+#define URSP_TDC_LEN_CONN_CAP    (255)
+#define URSP_TDC_LEN_DST_FQDN    (255)
+#define URSP_TDC_LEN_OS_APP_ID    (255)
+// => => Route selection descriptor component type identifier
+#define URSP_RSDC_TYPE_SSC_MODE    (0x01)
+#define URSP_RSDC_TYPE_S_NSSAI    (0x02)
+#define URSP_RSDC_TYPE_DNN    (0x04)
+#define URSP_RSDC_TYPE_PDU_SESSION_TYPE    (0x08)
+#define URSP_RSDC_TYPE_PREF_ACCESS_TYPE    (0x10)
+#define URSP_RSDC_TYPE_MULTI_ACCESS_PREF    (0x11)
+#define URSP_RSDC_TYPE_NON_SEAMLESS_NON_3GPP_OFFLOAD_IND    (0x20)
+#define URSP_RSDC_TYPE_LOC_CRITERIA    (0x40)
+#define URSP_RSDC_TYPE_TIME_WIN    (0x80)
+// => => Length of route selection descriptor component value field
+#define URSP_RSDC_LEN_SSC_MODE    (1)
+#define URSP_RSDC_LEN_S_NSSAI    (8)    // S-NSSAI in TS 24.501
+#define URSP_RSDC_LEN_DNN    (URSP_DNN_SIZE)
+#define URSP_RSDC_LEN_PDU_SESSION_TYPE    (1)
+#define URSP_RSDC_LEN_PREF_ACCESS_TYPE    (1)
+#define URSP_RSDC_LEN_NON_SEAMLESS_NON_3GPP_OFFLOAD_IND    (0)
+
+// APIs
+// N/A
+
+#endif