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