rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | #ifndef __URSP_PUBLIC_DEFS_H__ |
| 2 | #define __URSP_PUBLIC_DEFS_H__ |
| 3 | |
| 4 | #include "d2pm_public_defs.h" |
| 5 | |
| 6 | // Type denifitions |
| 7 | typedef enum |
| 8 | { |
| 9 | URSP_RES_FAIL = -1, |
| 10 | URSP_RES_NONE, |
| 11 | URSP_RES_SUCC, |
| 12 | URSP_RES_MAX = 0x7FFFFFFF |
| 13 | }ursp_res_enum; |
| 14 | |
| 15 | typedef enum |
| 16 | { |
| 17 | URSP_ROUTE_SUPP_PROFILE_TYPE_NONE = 0, |
| 18 | URSP_ROUTE_SUPP_PROFILE_TYPE_REQ, |
| 19 | URSP_ROUTE_SUPP_PROFILE_TYPE_MAX = 0x7FFFFFFF |
| 20 | }ursp_route_supp_profile_type_enum; |
| 21 | |
| 22 | typedef enum |
| 23 | { |
| 24 | URSP_REEVAL_EVENT_NONE = 0, |
| 25 | URSP_REEVAL_EVENT_PERIODIC, |
| 26 | URSP_REEVAL_EVENT_PDU_REL, |
| 27 | URSP_REEVAL_EVENT_PCF_UPDATE, |
| 28 | URSP_REEVAL_EVENT_INTER_SYS, |
| 29 | URSP_REEVAL_EVENT_REG, |
| 30 | URSP_REEVAL_EVENT_WLAN_EST, |
| 31 | URSP_REEVAL_EVENT_WLAN_REL, |
| 32 | URSP_REEVAL_EVENT_ALLOWED_NSSAI, |
| 33 | URSP_REEVAL_EVENT_LADN, |
| 34 | URSP_REEVAL_EVENT_MAX = 0x7FFFFFFF |
| 35 | }ursp_reeval_event_enum; |
| 36 | |
| 37 | // => Internal |
| 38 | typedef enum { |
| 39 | TD_TYPE_MATACH_ALL = 0x00, |
| 40 | TD_TYPE_OS_APP_ID = 0x08, |
| 41 | TD_TYPE_IPV4_REMOTE_ADDR = 0x10, |
| 42 | TD_TYPE_IPV6_REMOTE_ADDR = 0x21, |
| 43 | TD_TYPE_PROTOCOL_ID = 0x30, |
| 44 | TD_TYPE_SINGLE_REMOTE_PORT = 0x50, |
| 45 | TD_TYPE_REMOTE_PORT_RANGE = 0x51, |
| 46 | TD_TYPE_SPI = 0x60, |
| 47 | TD_TYPE_TOS = 0x70, |
| 48 | TD_TYPE_FLOW_LABEL = 0x80, |
| 49 | TD_TYPE_DEST_MAC = 0x81, |
| 50 | TD_TYPE_C_TAG_VID = 0x83, |
| 51 | TD_TYPE_S_TAG_VID = 0x84, |
| 52 | TD_TYPE_C_TAG_PCP = 0x85, |
| 53 | TD_TYPE_S_TAG_PCP = 0x86, |
| 54 | TD_TYPE_ETHER_TYPE = 0x87, |
| 55 | TD_TYPE_DNN = 0x88, |
| 56 | TD_TYPE_CONN_CAPA = 0x90, |
| 57 | TD_TYPE_DEST_FQDN = 0x91, |
| 58 | TD_TYPE_APP_ID = 0xa0, |
| 59 | } traffic_descriptor_component_type_enum; |
| 60 | |
| 61 | typedef enum { |
| 62 | RS_TYPE_SSC = 0x01, |
| 63 | RS_TYPE_SNSSAI = 0x02, |
| 64 | RS_TYPE_DNN = 0x04, |
| 65 | RS_TYPE_PDU_SESSION_TYPE = 0x08, |
| 66 | RS_TYPE_PREFER_ACCESS_TYPE = 0x10, |
| 67 | RS_TYPE_NON_SEAMLESS = 0x20, |
| 68 | } route_selection_descriptor_component_type_enum; |
| 69 | |
| 70 | #if 0 |
| 71 | /* under construction !*/ |
| 72 | /* under construction !*/ |
| 73 | /* under construction !*/ |
| 74 | /* under construction !*/ |
| 75 | /* under construction !*/ |
| 76 | /* under construction !*/ |
| 77 | /* under construction !*/ |
| 78 | /* under construction !*/ |
| 79 | /* under construction !*/ |
| 80 | #endif |
| 81 | |
| 82 | // Macro |
| 83 | #define URSP_CID_BITMAP_SIZE (D2PM_CID_BITMAP_SIZE) |
| 84 | #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 |
| 85 | #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 |
| 86 | // => LADN |
| 87 | #define URSP_MAX_LADN_DNN_NUM (8) |
| 88 | #define URSP_LADN_DNN_DELIM "\x1F" |
| 89 | #define URSP_LDAN_DNN_BITMAP_SIZE (((URSP_MAX_LADN_DNN_NUM - 1) >> 3) + 1) |
| 90 | // => Evaluation Flags |
| 91 | #define URSP_EVAL_FLAG_NONE (0x00000000) |
| 92 | #define URSP_EVAL_MATCH_ALL_DISALLOW (0x00000001) |
| 93 | // => Route attributes |
| 94 | #define URSP_ROUTE_ATTR_NONE (0x00000000) |
| 95 | #define URSP_ROUTE_ATTR_MATCH_ALL (0x00000001) |
| 96 | #define URSP_ROUTE_ATTR_UE_LOCAL_CONF (0x00000002) |
| 97 | // => Internal |
| 98 | #define URSP_DNN_SIZE (100) // APN in TS 23.003 |
| 99 | // => => Traffic descriptor component type identifier |
| 100 | #define URSP_TDC_TYPE_MATCH_ALL (0x01) |
| 101 | #define URSP_TDC_TYPE_OS_ID (0x08) |
| 102 | #define URSP_TDC_TYPE_IPV4_REMOTE_ADDR (0x10) |
| 103 | #define URSP_TDC_TYPE_IPV6_REMOTE_ADDR (0x21) |
| 104 | #define URSP_TDC_TYPE_IPV4_PROT_ID (0x30) |
| 105 | #define URSP_TDC_TYPE_IPV6_NEXT_HDR (0x30) |
| 106 | #define URSP_TDC_TYPE_SINGLE_REMOTE_PORT (0x50) |
| 107 | #define URSP_TDC_TYPE_REMOTE_PORT_RANGE (0x51) |
| 108 | #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)} |
| 109 | #define URSP_TDC_TYPE_SEC_PARAM_IDX (0x60) |
| 110 | #define URSP_TDC_TYPE_TYPE_OF_SVC (0x70) |
| 111 | #define URSP_TDC_TYPE_TFC_CLASS (0x70) |
| 112 | #define URSP_TDC_TYPE_FLOW_LABEL (0x80) |
| 113 | #define URSP_TDC_TYPE_DST_MAC_ADDR (0x81) |
| 114 | #define URSP_TDC_TYPE_C_TAG_VID (0x83) |
| 115 | #define URSP_TDC_TYPE_S_TAG_VID (0x84) |
| 116 | #define URSP_TDC_TYPE_C_TAG_PCP_DEI (0x85) |
| 117 | #define URSP_TDC_TYPE_S_TAG_PCP_DEI (0x86) |
| 118 | #define URSP_TDC_TYPE_ETH_TYPE (0x87) |
| 119 | #define URSP_TDC_TYPE_DNN (0x88) |
| 120 | #define URSP_TDC_TYPE_CONN_CAP (0x90) |
| 121 | #define URSP_TDC_TYPE_DST_FQDN (0x91) |
| 122 | #define URSP_TDC_TYPE_OS_APP_ID (0xA0) |
| 123 | // => => Length of traffic descriptor component value field |
| 124 | #define URSP_TDC_LEN_MATCH_ALL (0) |
| 125 | #define URSP_TDC_LEN_OS_ID (16) // UUID in RFC 4122 |
| 126 | #define URSP_TDC_LEN_IPV4_REMOTE_ADDR (4) |
| 127 | #define URSP_TDC_LEN_IPV4_REMOTE_MASK (4) |
| 128 | #define URSP_TDC_LEN_IPV6_REMOTE_ADDR (16) |
| 129 | #define URSP_TDC_LEN_IPV6_PREFIX_LEN (1) |
| 130 | #define URSP_TDC_LEN_IPV4_PROT_ID (1) |
| 131 | #define URSP_TDC_LEN_IPV6_NEXT_HDR (1) |
| 132 | #define URSP_TDC_LEN_SINGLE_REMOTE_PORT (2) |
| 133 | #define URSP_TDC_LEN_PORT_RANGE_LOW_LIMIT (2) |
| 134 | #define URSP_TDC_LEN_PORT_RANGE_HIGH_LIMIT (2) |
| 135 | #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)} |
| 136 | #define URSP_TDC_LEN_SEC_PARAM_IDX (4) |
| 137 | #define URSP_TDC_LEN_TYPE_OF_SVC (1) |
| 138 | #define URSP_TDC_LEN_TFC_CLASS (1) |
| 139 | #define URSP_TDC_LEN_TYPE_OF_SVC_MASK (1) |
| 140 | #define URSP_TDC_LEN_TFC_CLASS_MASK (1) |
| 141 | #define URSP_TDC_LEN_FLOW_LABEL (3) |
| 142 | #define URSP_TDC_LEN_DST_MAC_ADDR (6) |
| 143 | #define URSP_TDC_LEN_C_TAG_VID (2) |
| 144 | #define URSP_TDC_LEN_S_TAG_VID (2) |
| 145 | #define URSP_TDC_LEN_C_TAG_PCP_DEI (1) |
| 146 | #define URSP_TDC_LEN_S_TAG_PCP_DEI (1) |
| 147 | #define URSP_TDC_LEN_ETH_TYPE (2) |
| 148 | #define URSP_TDC_LEN_DNN (URSP_DNN_SIZE) |
| 149 | #define URSP_TDC_LEN_CONN_CAP (255) |
| 150 | #define URSP_TDC_LEN_DST_FQDN (255) |
| 151 | #define URSP_TDC_LEN_OS_APP_ID (255) |
| 152 | // => => Route selection descriptor component type identifier |
| 153 | #define URSP_RSDC_TYPE_SSC_MODE (0x01) |
| 154 | #define URSP_RSDC_TYPE_S_NSSAI (0x02) |
| 155 | #define URSP_RSDC_TYPE_DNN (0x04) |
| 156 | #define URSP_RSDC_TYPE_PDU_SESSION_TYPE (0x08) |
| 157 | #define URSP_RSDC_TYPE_PREF_ACCESS_TYPE (0x10) |
| 158 | #define URSP_RSDC_TYPE_MULTI_ACCESS_PREF (0x11) |
| 159 | #define URSP_RSDC_TYPE_NON_SEAMLESS_NON_3GPP_OFFLOAD_IND (0x20) |
| 160 | #define URSP_RSDC_TYPE_LOC_CRITERIA (0x40) |
| 161 | #define URSP_RSDC_TYPE_TIME_WIN (0x80) |
| 162 | // => => Length of route selection descriptor component value field |
| 163 | #define URSP_RSDC_LEN_SSC_MODE (1) |
| 164 | #define URSP_RSDC_LEN_S_NSSAI (8) // S-NSSAI in TS 24.501 |
| 165 | #define URSP_RSDC_LEN_DNN (URSP_DNN_SIZE) |
| 166 | #define URSP_RSDC_LEN_PDU_SESSION_TYPE (1) |
| 167 | #define URSP_RSDC_LEN_PREF_ACCESS_TYPE (1) |
| 168 | #define URSP_RSDC_LEN_NON_SEAMLESS_NON_3GPP_OFFLOAD_IND (0) |
| 169 | |
| 170 | // APIs |
| 171 | // N/A |
| 172 | |
| 173 | #endif |