1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef __LINUX_PKT_CLS_H 8 #define __LINUX_PKT_CLS_H 9 #include <linux/types.h> 10 #include <linux/pkt_sched.h> 11 #define TC_COOKIE_MAX_SIZE 16 12 enum { 13 TCA_ACT_UNSPEC, 14 TCA_ACT_KIND, 15 TCA_ACT_OPTIONS, 16 TCA_ACT_INDEX, 17 TCA_ACT_STATS, 18 TCA_ACT_PAD, 19 TCA_ACT_COOKIE, 20 TCA_ACT_FLAGS, 21 TCA_ACT_HW_STATS, 22 TCA_ACT_USED_HW_STATS, 23 TCA_ACT_IN_HW_COUNT, 24 __TCA_ACT_MAX 25 }; 26 #define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0) 27 #define TCA_ACT_FLAGS_SKIP_HW (1 << 1) 28 #define TCA_ACT_FLAGS_SKIP_SW (1 << 2) 29 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) 30 #define TCA_ACT_HW_STATS_DELAYED (1 << 1) 31 #define TCA_ACT_MAX __TCA_ACT_MAX 32 #define TCA_OLD_COMPAT (TCA_ACT_MAX + 1) 33 #define TCA_ACT_MAX_PRIO 32 34 #define TCA_ACT_BIND 1 35 #define TCA_ACT_NOBIND 0 36 #define TCA_ACT_UNBIND 1 37 #define TCA_ACT_NOUNBIND 0 38 #define TCA_ACT_REPLACE 1 39 #define TCA_ACT_NOREPLACE 0 40 #define TC_ACT_UNSPEC (- 1) 41 #define TC_ACT_OK 0 42 #define TC_ACT_RECLASSIFY 1 43 #define TC_ACT_SHOT 2 44 #define TC_ACT_PIPE 3 45 #define TC_ACT_STOLEN 4 46 #define TC_ACT_QUEUED 5 47 #define TC_ACT_REPEAT 6 48 #define TC_ACT_REDIRECT 7 49 #define TC_ACT_TRAP 8 50 #define TC_ACT_VALUE_MAX TC_ACT_TRAP 51 #define __TC_ACT_EXT_SHIFT 28 52 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) 53 #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) 54 #define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK)) 55 #define TC_ACT_EXT_CMP(combined,opcode) (TC_ACT_EXT_OPCODE(combined) == opcode) 56 #define TC_ACT_JUMP __TC_ACT_EXT(1) 57 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) 58 #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN 59 #define TCA_ACT_GACT 5 60 #define TCA_ACT_IPT 6 61 #define TCA_ACT_PEDIT 7 62 #define TCA_ACT_MIRRED 8 63 #define TCA_ACT_NAT 9 64 #define TCA_ACT_XT 10 65 #define TCA_ACT_SKBEDIT 11 66 #define TCA_ACT_VLAN 12 67 #define TCA_ACT_BPF 13 68 #define TCA_ACT_CONNMARK 14 69 #define TCA_ACT_SKBMOD 15 70 #define TCA_ACT_CSUM 16 71 #define TCA_ACT_TUNNEL_KEY 17 72 #define TCA_ACT_SIMP 22 73 #define TCA_ACT_IFE 25 74 #define TCA_ACT_SAMPLE 26 75 enum tca_id { 76 TCA_ID_UNSPEC = 0, 77 TCA_ID_POLICE = 1, 78 TCA_ID_GACT = TCA_ACT_GACT, 79 TCA_ID_IPT = TCA_ACT_IPT, 80 TCA_ID_PEDIT = TCA_ACT_PEDIT, 81 TCA_ID_MIRRED = TCA_ACT_MIRRED, 82 TCA_ID_NAT = TCA_ACT_NAT, 83 TCA_ID_XT = TCA_ACT_XT, 84 TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT, 85 TCA_ID_VLAN = TCA_ACT_VLAN, 86 TCA_ID_BPF = TCA_ACT_BPF, 87 TCA_ID_CONNMARK = TCA_ACT_CONNMARK, 88 TCA_ID_SKBMOD = TCA_ACT_SKBMOD, 89 TCA_ID_CSUM = TCA_ACT_CSUM, 90 TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY, 91 TCA_ID_SIMP = TCA_ACT_SIMP, 92 TCA_ID_IFE = TCA_ACT_IFE, 93 TCA_ID_SAMPLE = TCA_ACT_SAMPLE, 94 TCA_ID_CTINFO, 95 TCA_ID_MPLS, 96 TCA_ID_CT, 97 TCA_ID_GATE, 98 __TCA_ID_MAX = 255 99 }; 100 #define TCA_ID_MAX __TCA_ID_MAX 101 struct tc_police { 102 __u32 index; 103 int action; 104 #define TC_POLICE_UNSPEC TC_ACT_UNSPEC 105 #define TC_POLICE_OK TC_ACT_OK 106 #define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY 107 #define TC_POLICE_SHOT TC_ACT_SHOT 108 #define TC_POLICE_PIPE TC_ACT_PIPE 109 __u32 limit; 110 __u32 burst; 111 __u32 mtu; 112 struct tc_ratespec rate; 113 struct tc_ratespec peakrate; 114 int refcnt; 115 int bindcnt; 116 __u32 capab; 117 }; 118 struct tcf_t { 119 __u64 install; 120 __u64 lastuse; 121 __u64 expires; 122 __u64 firstuse; 123 }; 124 struct tc_cnt { 125 int refcnt; 126 int bindcnt; 127 }; 128 #define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt 129 enum { 130 TCA_POLICE_UNSPEC, 131 TCA_POLICE_TBF, 132 TCA_POLICE_RATE, 133 TCA_POLICE_PEAKRATE, 134 TCA_POLICE_AVRATE, 135 TCA_POLICE_RESULT, 136 TCA_POLICE_TM, 137 TCA_POLICE_PAD, 138 TCA_POLICE_RATE64, 139 TCA_POLICE_PEAKRATE64, 140 TCA_POLICE_PKTRATE64, 141 TCA_POLICE_PKTBURST64, 142 __TCA_POLICE_MAX 143 #define TCA_POLICE_RESULT TCA_POLICE_RESULT 144 }; 145 #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) 146 #define TCA_CLS_FLAGS_SKIP_HW (1 << 0) 147 #define TCA_CLS_FLAGS_SKIP_SW (1 << 1) 148 #define TCA_CLS_FLAGS_IN_HW (1 << 2) 149 #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) 150 #define TCA_CLS_FLAGS_VERBOSE (1 << 4) 151 #define TC_U32_HTID(h) ((h) & 0xFFF00000) 152 #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20) 153 #define TC_U32_HASH(h) (((h) >> 12) & 0xFF) 154 #define TC_U32_NODE(h) ((h) & 0xFFF) 155 #define TC_U32_KEY(h) ((h) & 0xFFFFF) 156 #define TC_U32_UNSPEC 0 157 #define TC_U32_ROOT (0xFFF00000) 158 enum { 159 TCA_U32_UNSPEC, 160 TCA_U32_CLASSID, 161 TCA_U32_HASH, 162 TCA_U32_LINK, 163 TCA_U32_DIVISOR, 164 TCA_U32_SEL, 165 TCA_U32_POLICE, 166 TCA_U32_ACT, 167 TCA_U32_INDEV, 168 TCA_U32_PCNT, 169 TCA_U32_MARK, 170 TCA_U32_FLAGS, 171 TCA_U32_PAD, 172 __TCA_U32_MAX 173 }; 174 #define TCA_U32_MAX (__TCA_U32_MAX - 1) 175 struct tc_u32_key { 176 __be32 mask; 177 __be32 val; 178 int off; 179 int offmask; 180 }; 181 struct tc_u32_sel { 182 /** 183 ** ANDROID FIX: Comment out TAG value to avoid C++ error about using 184 ** a type declared in an anonymous union. This is being fixed upstream 185 ** and should be corrected by the next kernel import. 186 */ 187 __struct_group(/*tc_u32_sel_hdr*/, hdr,, unsigned char flags; 188 unsigned char offshift; 189 unsigned char nkeys; 190 __be16 offmask; 191 __u16 off; 192 short offoff; 193 short hoff; 194 __be32 hmask; 195 ); 196 struct tc_u32_key keys[]; 197 }; 198 struct tc_u32_mark { 199 __u32 val; 200 __u32 mask; 201 __u32 success; 202 }; 203 struct tc_u32_pcnt { 204 __u64 rcnt; 205 __u64 rhit; 206 __u64 kcnts[]; 207 }; 208 #define TC_U32_TERMINAL 1 209 #define TC_U32_OFFSET 2 210 #define TC_U32_VAROFFSET 4 211 #define TC_U32_EAT 8 212 #define TC_U32_MAXDEPTH 8 213 enum { 214 TCA_ROUTE4_UNSPEC, 215 TCA_ROUTE4_CLASSID, 216 TCA_ROUTE4_TO, 217 TCA_ROUTE4_FROM, 218 TCA_ROUTE4_IIF, 219 TCA_ROUTE4_POLICE, 220 TCA_ROUTE4_ACT, 221 __TCA_ROUTE4_MAX 222 }; 223 #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) 224 enum { 225 TCA_FW_UNSPEC, 226 TCA_FW_CLASSID, 227 TCA_FW_POLICE, 228 TCA_FW_INDEV, 229 TCA_FW_ACT, 230 TCA_FW_MASK, 231 __TCA_FW_MAX 232 }; 233 #define TCA_FW_MAX (__TCA_FW_MAX - 1) 234 enum { 235 FLOW_KEY_SRC, 236 FLOW_KEY_DST, 237 FLOW_KEY_PROTO, 238 FLOW_KEY_PROTO_SRC, 239 FLOW_KEY_PROTO_DST, 240 FLOW_KEY_IIF, 241 FLOW_KEY_PRIORITY, 242 FLOW_KEY_MARK, 243 FLOW_KEY_NFCT, 244 FLOW_KEY_NFCT_SRC, 245 FLOW_KEY_NFCT_DST, 246 FLOW_KEY_NFCT_PROTO_SRC, 247 FLOW_KEY_NFCT_PROTO_DST, 248 FLOW_KEY_RTCLASSID, 249 FLOW_KEY_SKUID, 250 FLOW_KEY_SKGID, 251 FLOW_KEY_VLAN_TAG, 252 FLOW_KEY_RXHASH, 253 __FLOW_KEY_MAX, 254 }; 255 #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1) 256 enum { 257 FLOW_MODE_MAP, 258 FLOW_MODE_HASH, 259 }; 260 enum { 261 TCA_FLOW_UNSPEC, 262 TCA_FLOW_KEYS, 263 TCA_FLOW_MODE, 264 TCA_FLOW_BASECLASS, 265 TCA_FLOW_RSHIFT, 266 TCA_FLOW_ADDEND, 267 TCA_FLOW_MASK, 268 TCA_FLOW_XOR, 269 TCA_FLOW_DIVISOR, 270 TCA_FLOW_ACT, 271 TCA_FLOW_POLICE, 272 TCA_FLOW_EMATCHES, 273 TCA_FLOW_PERTURB, 274 __TCA_FLOW_MAX 275 }; 276 #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1) 277 struct tc_basic_pcnt { 278 __u64 rcnt; 279 __u64 rhit; 280 }; 281 enum { 282 TCA_BASIC_UNSPEC, 283 TCA_BASIC_CLASSID, 284 TCA_BASIC_EMATCHES, 285 TCA_BASIC_ACT, 286 TCA_BASIC_POLICE, 287 TCA_BASIC_PCNT, 288 TCA_BASIC_PAD, 289 __TCA_BASIC_MAX 290 }; 291 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) 292 enum { 293 TCA_CGROUP_UNSPEC, 294 TCA_CGROUP_ACT, 295 TCA_CGROUP_POLICE, 296 TCA_CGROUP_EMATCHES, 297 __TCA_CGROUP_MAX, 298 }; 299 #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1) 300 #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0) 301 enum { 302 TCA_BPF_UNSPEC, 303 TCA_BPF_ACT, 304 TCA_BPF_POLICE, 305 TCA_BPF_CLASSID, 306 TCA_BPF_OPS_LEN, 307 TCA_BPF_OPS, 308 TCA_BPF_FD, 309 TCA_BPF_NAME, 310 TCA_BPF_FLAGS, 311 TCA_BPF_FLAGS_GEN, 312 TCA_BPF_TAG, 313 TCA_BPF_ID, 314 __TCA_BPF_MAX, 315 }; 316 #define TCA_BPF_MAX (__TCA_BPF_MAX - 1) 317 enum { 318 TCA_FLOWER_UNSPEC, 319 TCA_FLOWER_CLASSID, 320 TCA_FLOWER_INDEV, 321 TCA_FLOWER_ACT, 322 TCA_FLOWER_KEY_ETH_DST, 323 TCA_FLOWER_KEY_ETH_DST_MASK, 324 TCA_FLOWER_KEY_ETH_SRC, 325 TCA_FLOWER_KEY_ETH_SRC_MASK, 326 TCA_FLOWER_KEY_ETH_TYPE, 327 TCA_FLOWER_KEY_IP_PROTO, 328 TCA_FLOWER_KEY_IPV4_SRC, 329 TCA_FLOWER_KEY_IPV4_SRC_MASK, 330 TCA_FLOWER_KEY_IPV4_DST, 331 TCA_FLOWER_KEY_IPV4_DST_MASK, 332 TCA_FLOWER_KEY_IPV6_SRC, 333 TCA_FLOWER_KEY_IPV6_SRC_MASK, 334 TCA_FLOWER_KEY_IPV6_DST, 335 TCA_FLOWER_KEY_IPV6_DST_MASK, 336 TCA_FLOWER_KEY_TCP_SRC, 337 TCA_FLOWER_KEY_TCP_DST, 338 TCA_FLOWER_KEY_UDP_SRC, 339 TCA_FLOWER_KEY_UDP_DST, 340 TCA_FLOWER_FLAGS, 341 TCA_FLOWER_KEY_VLAN_ID, 342 TCA_FLOWER_KEY_VLAN_PRIO, 343 TCA_FLOWER_KEY_VLAN_ETH_TYPE, 344 TCA_FLOWER_KEY_ENC_KEY_ID, 345 TCA_FLOWER_KEY_ENC_IPV4_SRC, 346 TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK, 347 TCA_FLOWER_KEY_ENC_IPV4_DST, 348 TCA_FLOWER_KEY_ENC_IPV4_DST_MASK, 349 TCA_FLOWER_KEY_ENC_IPV6_SRC, 350 TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK, 351 TCA_FLOWER_KEY_ENC_IPV6_DST, 352 TCA_FLOWER_KEY_ENC_IPV6_DST_MASK, 353 TCA_FLOWER_KEY_TCP_SRC_MASK, 354 TCA_FLOWER_KEY_TCP_DST_MASK, 355 TCA_FLOWER_KEY_UDP_SRC_MASK, 356 TCA_FLOWER_KEY_UDP_DST_MASK, 357 TCA_FLOWER_KEY_SCTP_SRC_MASK, 358 TCA_FLOWER_KEY_SCTP_DST_MASK, 359 TCA_FLOWER_KEY_SCTP_SRC, 360 TCA_FLOWER_KEY_SCTP_DST, 361 TCA_FLOWER_KEY_ENC_UDP_SRC_PORT, 362 TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK, 363 TCA_FLOWER_KEY_ENC_UDP_DST_PORT, 364 TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK, 365 TCA_FLOWER_KEY_FLAGS, 366 TCA_FLOWER_KEY_FLAGS_MASK, 367 TCA_FLOWER_KEY_ICMPV4_CODE, 368 TCA_FLOWER_KEY_ICMPV4_CODE_MASK, 369 TCA_FLOWER_KEY_ICMPV4_TYPE, 370 TCA_FLOWER_KEY_ICMPV4_TYPE_MASK, 371 TCA_FLOWER_KEY_ICMPV6_CODE, 372 TCA_FLOWER_KEY_ICMPV6_CODE_MASK, 373 TCA_FLOWER_KEY_ICMPV6_TYPE, 374 TCA_FLOWER_KEY_ICMPV6_TYPE_MASK, 375 TCA_FLOWER_KEY_ARP_SIP, 376 TCA_FLOWER_KEY_ARP_SIP_MASK, 377 TCA_FLOWER_KEY_ARP_TIP, 378 TCA_FLOWER_KEY_ARP_TIP_MASK, 379 TCA_FLOWER_KEY_ARP_OP, 380 TCA_FLOWER_KEY_ARP_OP_MASK, 381 TCA_FLOWER_KEY_ARP_SHA, 382 TCA_FLOWER_KEY_ARP_SHA_MASK, 383 TCA_FLOWER_KEY_ARP_THA, 384 TCA_FLOWER_KEY_ARP_THA_MASK, 385 TCA_FLOWER_KEY_MPLS_TTL, 386 TCA_FLOWER_KEY_MPLS_BOS, 387 TCA_FLOWER_KEY_MPLS_TC, 388 TCA_FLOWER_KEY_MPLS_LABEL, 389 TCA_FLOWER_KEY_TCP_FLAGS, 390 TCA_FLOWER_KEY_TCP_FLAGS_MASK, 391 TCA_FLOWER_KEY_IP_TOS, 392 TCA_FLOWER_KEY_IP_TOS_MASK, 393 TCA_FLOWER_KEY_IP_TTL, 394 TCA_FLOWER_KEY_IP_TTL_MASK, 395 TCA_FLOWER_KEY_CVLAN_ID, 396 TCA_FLOWER_KEY_CVLAN_PRIO, 397 TCA_FLOWER_KEY_CVLAN_ETH_TYPE, 398 TCA_FLOWER_KEY_ENC_IP_TOS, 399 TCA_FLOWER_KEY_ENC_IP_TOS_MASK, 400 TCA_FLOWER_KEY_ENC_IP_TTL, 401 TCA_FLOWER_KEY_ENC_IP_TTL_MASK, 402 TCA_FLOWER_KEY_ENC_OPTS, 403 TCA_FLOWER_KEY_ENC_OPTS_MASK, 404 TCA_FLOWER_IN_HW_COUNT, 405 TCA_FLOWER_KEY_PORT_SRC_MIN, 406 TCA_FLOWER_KEY_PORT_SRC_MAX, 407 TCA_FLOWER_KEY_PORT_DST_MIN, 408 TCA_FLOWER_KEY_PORT_DST_MAX, 409 TCA_FLOWER_KEY_CT_STATE, 410 TCA_FLOWER_KEY_CT_STATE_MASK, 411 TCA_FLOWER_KEY_CT_ZONE, 412 TCA_FLOWER_KEY_CT_ZONE_MASK, 413 TCA_FLOWER_KEY_CT_MARK, 414 TCA_FLOWER_KEY_CT_MARK_MASK, 415 TCA_FLOWER_KEY_CT_LABELS, 416 TCA_FLOWER_KEY_CT_LABELS_MASK, 417 TCA_FLOWER_KEY_MPLS_OPTS, 418 TCA_FLOWER_KEY_HASH, 419 TCA_FLOWER_KEY_HASH_MASK, 420 TCA_FLOWER_KEY_NUM_OF_VLANS, 421 TCA_FLOWER_KEY_PPPOE_SID, 422 TCA_FLOWER_KEY_PPP_PROTO, 423 TCA_FLOWER_KEY_L2TPV3_SID, 424 TCA_FLOWER_L2_MISS, 425 TCA_FLOWER_KEY_CFM, 426 TCA_FLOWER_KEY_SPI, 427 TCA_FLOWER_KEY_SPI_MASK, 428 TCA_FLOWER_KEY_ENC_FLAGS, 429 TCA_FLOWER_KEY_ENC_FLAGS_MASK, 430 __TCA_FLOWER_MAX, 431 }; 432 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) 433 enum { 434 TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0, 435 TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, 436 TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, 437 TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, 438 TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4, 439 TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5, 440 __TCA_FLOWER_KEY_CT_FLAGS_MAX, 441 }; 442 enum { 443 TCA_FLOWER_KEY_ENC_OPTS_UNSPEC, 444 TCA_FLOWER_KEY_ENC_OPTS_GENEVE, 445 TCA_FLOWER_KEY_ENC_OPTS_VXLAN, 446 TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, 447 TCA_FLOWER_KEY_ENC_OPTS_GTP, 448 TCA_FLOWER_KEY_ENC_OPTS_PFCP, 449 __TCA_FLOWER_KEY_ENC_OPTS_MAX, 450 }; 451 #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1) 452 enum { 453 TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC, 454 TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, 455 TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, 456 TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, 457 __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX, 458 }; 459 #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) 460 enum { 461 TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC, 462 TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, 463 __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX, 464 }; 465 #define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1) 466 enum { 467 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC, 468 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, 469 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, 470 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, 471 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, 472 __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX, 473 }; 474 #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1) 475 enum { 476 TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC, 477 TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE, 478 TCA_FLOWER_KEY_ENC_OPT_GTP_QFI, 479 __TCA_FLOWER_KEY_ENC_OPT_GTP_MAX, 480 }; 481 #define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1) 482 enum { 483 TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC, 484 TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE, 485 TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID, 486 __TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX, 487 }; 488 #define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX (__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1) 489 enum { 490 TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC, 491 TCA_FLOWER_KEY_MPLS_OPTS_LSE, 492 __TCA_FLOWER_KEY_MPLS_OPTS_MAX, 493 }; 494 #define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1) 495 enum { 496 TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC, 497 TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH, 498 TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL, 499 TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS, 500 TCA_FLOWER_KEY_MPLS_OPT_LSE_TC, 501 TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL, 502 __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX, 503 }; 504 #define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1) 505 enum { 506 TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), 507 TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), 508 TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2), 509 TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3), 510 TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4), 511 TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5), 512 __TCA_FLOWER_KEY_FLAGS_MAX, 513 }; 514 #define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1) 515 enum { 516 TCA_FLOWER_KEY_CFM_OPT_UNSPEC, 517 TCA_FLOWER_KEY_CFM_MD_LEVEL, 518 TCA_FLOWER_KEY_CFM_OPCODE, 519 __TCA_FLOWER_KEY_CFM_OPT_MAX, 520 }; 521 #define TCA_FLOWER_KEY_CFM_OPT_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1) 522 #define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0) 523 struct tc_matchall_pcnt { 524 __u64 rhit; 525 }; 526 enum { 527 TCA_MATCHALL_UNSPEC, 528 TCA_MATCHALL_CLASSID, 529 TCA_MATCHALL_ACT, 530 TCA_MATCHALL_FLAGS, 531 TCA_MATCHALL_PCNT, 532 TCA_MATCHALL_PAD, 533 __TCA_MATCHALL_MAX, 534 }; 535 #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1) 536 struct tcf_ematch_tree_hdr { 537 __u16 nmatches; 538 __u16 progid; 539 }; 540 enum { 541 TCA_EMATCH_TREE_UNSPEC, 542 TCA_EMATCH_TREE_HDR, 543 TCA_EMATCH_TREE_LIST, 544 __TCA_EMATCH_TREE_MAX 545 }; 546 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) 547 struct tcf_ematch_hdr { 548 __u16 matchid; 549 __u16 kind; 550 __u16 flags; 551 __u16 pad; 552 }; 553 #define TCF_EM_REL_END 0 554 #define TCF_EM_REL_AND (1 << 0) 555 #define TCF_EM_REL_OR (1 << 1) 556 #define TCF_EM_INVERT (1 << 2) 557 #define TCF_EM_SIMPLE (1 << 3) 558 #define TCF_EM_REL_MASK 3 559 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) 560 enum { 561 TCF_LAYER_LINK, 562 TCF_LAYER_NETWORK, 563 TCF_LAYER_TRANSPORT, 564 __TCF_LAYER_MAX 565 }; 566 #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) 567 #define TCF_EM_CONTAINER 0 568 #define TCF_EM_CMP 1 569 #define TCF_EM_NBYTE 2 570 #define TCF_EM_U32 3 571 #define TCF_EM_META 4 572 #define TCF_EM_TEXT 5 573 #define TCF_EM_VLAN 6 574 #define TCF_EM_CANID 7 575 #define TCF_EM_IPSET 8 576 #define TCF_EM_IPT 9 577 #define TCF_EM_MAX 9 578 enum { 579 TCF_EM_PROG_TC 580 }; 581 enum { 582 TCF_EM_OPND_EQ, 583 TCF_EM_OPND_GT, 584 TCF_EM_OPND_LT 585 }; 586 #endif 587