| .. | .. |
|---|
| 16 | 16 | TCA_ACT_STATS, |
|---|
| 17 | 17 | TCA_ACT_PAD, |
|---|
| 18 | 18 | TCA_ACT_COOKIE, |
|---|
| 19 | + TCA_ACT_FLAGS, |
|---|
| 20 | + TCA_ACT_HW_STATS, |
|---|
| 21 | + TCA_ACT_USED_HW_STATS, |
|---|
| 19 | 22 | __TCA_ACT_MAX |
|---|
| 20 | 23 | }; |
|---|
| 24 | + |
|---|
| 25 | +#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for |
|---|
| 26 | + * actions stats. |
|---|
| 27 | + */ |
|---|
| 28 | + |
|---|
| 29 | +/* tca HW stats type |
|---|
| 30 | + * When user does not pass the attribute, he does not care. |
|---|
| 31 | + * It is the same as if he would pass the attribute with |
|---|
| 32 | + * all supported bits set. |
|---|
| 33 | + * In case no bits are set, user is not interested in getting any HW statistics. |
|---|
| 34 | + */ |
|---|
| 35 | +#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user |
|---|
| 36 | + * gets the current HW stats |
|---|
| 37 | + * state from the device |
|---|
| 38 | + * queried at the dump time. |
|---|
| 39 | + */ |
|---|
| 40 | +#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets |
|---|
| 41 | + * HW stats that might be out of date |
|---|
| 42 | + * for some time, maybe couple of |
|---|
| 43 | + * seconds. This is the case when |
|---|
| 44 | + * driver polls stats updates |
|---|
| 45 | + * periodically or when it gets async |
|---|
| 46 | + * stats update from the device. |
|---|
| 47 | + */ |
|---|
| 21 | 48 | |
|---|
| 22 | 49 | #define TCA_ACT_MAX __TCA_ACT_MAX |
|---|
| 23 | 50 | #define TCA_OLD_COMPAT (TCA_ACT_MAX+1) |
|---|
| .. | .. |
|---|
| 63 | 90 | #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) |
|---|
| 64 | 91 | #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN |
|---|
| 65 | 92 | |
|---|
| 93 | +/* These macros are put here for binary compatibility with userspace apps that |
|---|
| 94 | + * make use of them. For kernel code and new userspace apps, use the TCA_ID_* |
|---|
| 95 | + * versions. |
|---|
| 96 | + */ |
|---|
| 97 | +#define TCA_ACT_GACT 5 |
|---|
| 98 | +#define TCA_ACT_IPT 6 |
|---|
| 99 | +#define TCA_ACT_PEDIT 7 |
|---|
| 100 | +#define TCA_ACT_MIRRED 8 |
|---|
| 101 | +#define TCA_ACT_NAT 9 |
|---|
| 102 | +#define TCA_ACT_XT 10 |
|---|
| 103 | +#define TCA_ACT_SKBEDIT 11 |
|---|
| 104 | +#define TCA_ACT_VLAN 12 |
|---|
| 105 | +#define TCA_ACT_BPF 13 |
|---|
| 106 | +#define TCA_ACT_CONNMARK 14 |
|---|
| 107 | +#define TCA_ACT_SKBMOD 15 |
|---|
| 108 | +#define TCA_ACT_CSUM 16 |
|---|
| 109 | +#define TCA_ACT_TUNNEL_KEY 17 |
|---|
| 110 | +#define TCA_ACT_SIMP 22 |
|---|
| 111 | +#define TCA_ACT_IFE 25 |
|---|
| 112 | +#define TCA_ACT_SAMPLE 26 |
|---|
| 113 | + |
|---|
| 66 | 114 | /* Action type identifiers*/ |
|---|
| 67 | | -enum { |
|---|
| 68 | | - TCA_ID_UNSPEC=0, |
|---|
| 69 | | - TCA_ID_POLICE=1, |
|---|
| 115 | +enum tca_id { |
|---|
| 116 | + TCA_ID_UNSPEC = 0, |
|---|
| 117 | + TCA_ID_POLICE = 1, |
|---|
| 118 | + TCA_ID_GACT = TCA_ACT_GACT, |
|---|
| 119 | + TCA_ID_IPT = TCA_ACT_IPT, |
|---|
| 120 | + TCA_ID_PEDIT = TCA_ACT_PEDIT, |
|---|
| 121 | + TCA_ID_MIRRED = TCA_ACT_MIRRED, |
|---|
| 122 | + TCA_ID_NAT = TCA_ACT_NAT, |
|---|
| 123 | + TCA_ID_XT = TCA_ACT_XT, |
|---|
| 124 | + TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT, |
|---|
| 125 | + TCA_ID_VLAN = TCA_ACT_VLAN, |
|---|
| 126 | + TCA_ID_BPF = TCA_ACT_BPF, |
|---|
| 127 | + TCA_ID_CONNMARK = TCA_ACT_CONNMARK, |
|---|
| 128 | + TCA_ID_SKBMOD = TCA_ACT_SKBMOD, |
|---|
| 129 | + TCA_ID_CSUM = TCA_ACT_CSUM, |
|---|
| 130 | + TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY, |
|---|
| 131 | + TCA_ID_SIMP = TCA_ACT_SIMP, |
|---|
| 132 | + TCA_ID_IFE = TCA_ACT_IFE, |
|---|
| 133 | + TCA_ID_SAMPLE = TCA_ACT_SAMPLE, |
|---|
| 134 | + TCA_ID_CTINFO, |
|---|
| 135 | + TCA_ID_MPLS, |
|---|
| 136 | + TCA_ID_CT, |
|---|
| 137 | + TCA_ID_GATE, |
|---|
| 70 | 138 | /* other actions go here */ |
|---|
| 71 | | - __TCA_ID_MAX=255 |
|---|
| 139 | + __TCA_ID_MAX = 255 |
|---|
| 72 | 140 | }; |
|---|
| 73 | 141 | |
|---|
| 74 | 142 | #define TCA_ID_MAX __TCA_ID_MAX |
|---|
| .. | .. |
|---|
| 120 | 188 | TCA_POLICE_RESULT, |
|---|
| 121 | 189 | TCA_POLICE_TM, |
|---|
| 122 | 190 | TCA_POLICE_PAD, |
|---|
| 191 | + TCA_POLICE_RATE64, |
|---|
| 192 | + TCA_POLICE_PEAKRATE64, |
|---|
| 123 | 193 | __TCA_POLICE_MAX |
|---|
| 124 | 194 | #define TCA_POLICE_RESULT TCA_POLICE_RESULT |
|---|
| 125 | 195 | }; |
|---|
| .. | .. |
|---|
| 257 | 327 | TCA_FW_UNSPEC, |
|---|
| 258 | 328 | TCA_FW_CLASSID, |
|---|
| 259 | 329 | TCA_FW_POLICE, |
|---|
| 260 | | - TCA_FW_INDEV, /* used by CONFIG_NET_CLS_IND */ |
|---|
| 330 | + TCA_FW_INDEV, |
|---|
| 261 | 331 | TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */ |
|---|
| 262 | 332 | TCA_FW_MASK, |
|---|
| 263 | 333 | __TCA_FW_MAX |
|---|
| .. | .. |
|---|
| 333 | 403 | |
|---|
| 334 | 404 | /* Basic filter */ |
|---|
| 335 | 405 | |
|---|
| 406 | +struct tc_basic_pcnt { |
|---|
| 407 | + __u64 rcnt; |
|---|
| 408 | + __u64 rhit; |
|---|
| 409 | +}; |
|---|
| 410 | + |
|---|
| 336 | 411 | enum { |
|---|
| 337 | 412 | TCA_BASIC_UNSPEC, |
|---|
| 338 | 413 | TCA_BASIC_CLASSID, |
|---|
| 339 | 414 | TCA_BASIC_EMATCHES, |
|---|
| 340 | 415 | TCA_BASIC_ACT, |
|---|
| 341 | 416 | TCA_BASIC_POLICE, |
|---|
| 417 | + TCA_BASIC_PCNT, |
|---|
| 418 | + TCA_BASIC_PAD, |
|---|
| 342 | 419 | __TCA_BASIC_MAX |
|---|
| 343 | 420 | }; |
|---|
| 344 | 421 | |
|---|
| .. | .. |
|---|
| 483 | 560 | TCA_FLOWER_KEY_ENC_OPTS, |
|---|
| 484 | 561 | TCA_FLOWER_KEY_ENC_OPTS_MASK, |
|---|
| 485 | 562 | |
|---|
| 563 | + TCA_FLOWER_IN_HW_COUNT, |
|---|
| 564 | + |
|---|
| 565 | + TCA_FLOWER_KEY_PORT_SRC_MIN, /* be16 */ |
|---|
| 566 | + TCA_FLOWER_KEY_PORT_SRC_MAX, /* be16 */ |
|---|
| 567 | + TCA_FLOWER_KEY_PORT_DST_MIN, /* be16 */ |
|---|
| 568 | + TCA_FLOWER_KEY_PORT_DST_MAX, /* be16 */ |
|---|
| 569 | + |
|---|
| 570 | + TCA_FLOWER_KEY_CT_STATE, /* u16 */ |
|---|
| 571 | + TCA_FLOWER_KEY_CT_STATE_MASK, /* u16 */ |
|---|
| 572 | + TCA_FLOWER_KEY_CT_ZONE, /* u16 */ |
|---|
| 573 | + TCA_FLOWER_KEY_CT_ZONE_MASK, /* u16 */ |
|---|
| 574 | + TCA_FLOWER_KEY_CT_MARK, /* u32 */ |
|---|
| 575 | + TCA_FLOWER_KEY_CT_MARK_MASK, /* u32 */ |
|---|
| 576 | + TCA_FLOWER_KEY_CT_LABELS, /* u128 */ |
|---|
| 577 | + TCA_FLOWER_KEY_CT_LABELS_MASK, /* u128 */ |
|---|
| 578 | + |
|---|
| 579 | + TCA_FLOWER_KEY_MPLS_OPTS, |
|---|
| 580 | + |
|---|
| 581 | + TCA_FLOWER_KEY_HASH, /* u32 */ |
|---|
| 582 | + TCA_FLOWER_KEY_HASH_MASK, /* u32 */ |
|---|
| 583 | + |
|---|
| 486 | 584 | __TCA_FLOWER_MAX, |
|---|
| 487 | 585 | }; |
|---|
| 488 | 586 | |
|---|
| 489 | 587 | #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) |
|---|
| 490 | 588 | |
|---|
| 491 | 589 | enum { |
|---|
| 590 | + TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0, /* Beginning of a new connection. */ |
|---|
| 591 | + TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1, /* Part of an existing connection. */ |
|---|
| 592 | + TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2, /* Related to an established connection. */ |
|---|
| 593 | + TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3, /* Conntrack has occurred. */ |
|---|
| 594 | + |
|---|
| 595 | + __TCA_FLOWER_KEY_CT_FLAGS_MAX, |
|---|
| 596 | +}; |
|---|
| 597 | + |
|---|
| 598 | +enum { |
|---|
| 492 | 599 | TCA_FLOWER_KEY_ENC_OPTS_UNSPEC, |
|---|
| 493 | 600 | TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested |
|---|
| 494 | 601 | * TCA_FLOWER_KEY_ENC_OPT_GENEVE_ |
|---|
| 602 | + * attributes |
|---|
| 603 | + */ |
|---|
| 604 | + TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested |
|---|
| 605 | + * TCA_FLOWER_KEY_ENC_OPT_VXLAN_ |
|---|
| 606 | + * attributes |
|---|
| 607 | + */ |
|---|
| 608 | + TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested |
|---|
| 609 | + * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_ |
|---|
| 495 | 610 | * attributes |
|---|
| 496 | 611 | */ |
|---|
| 497 | 612 | __TCA_FLOWER_KEY_ENC_OPTS_MAX, |
|---|
| .. | .. |
|---|
| 512 | 627 | (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1) |
|---|
| 513 | 628 | |
|---|
| 514 | 629 | enum { |
|---|
| 630 | + TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC, |
|---|
| 631 | + TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */ |
|---|
| 632 | + __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX, |
|---|
| 633 | +}; |
|---|
| 634 | + |
|---|
| 635 | +#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \ |
|---|
| 636 | + (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1) |
|---|
| 637 | + |
|---|
| 638 | +enum { |
|---|
| 639 | + TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC, |
|---|
| 640 | + TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */ |
|---|
| 641 | + TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */ |
|---|
| 642 | + TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */ |
|---|
| 643 | + TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */ |
|---|
| 644 | + __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX, |
|---|
| 645 | +}; |
|---|
| 646 | + |
|---|
| 647 | +#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \ |
|---|
| 648 | + (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1) |
|---|
| 649 | + |
|---|
| 650 | +enum { |
|---|
| 651 | + TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC, |
|---|
| 652 | + TCA_FLOWER_KEY_MPLS_OPTS_LSE, |
|---|
| 653 | + __TCA_FLOWER_KEY_MPLS_OPTS_MAX, |
|---|
| 654 | +}; |
|---|
| 655 | + |
|---|
| 656 | +#define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1) |
|---|
| 657 | + |
|---|
| 658 | +enum { |
|---|
| 659 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC, |
|---|
| 660 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH, |
|---|
| 661 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL, |
|---|
| 662 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS, |
|---|
| 663 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_TC, |
|---|
| 664 | + TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL, |
|---|
| 665 | + __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX, |
|---|
| 666 | +}; |
|---|
| 667 | + |
|---|
| 668 | +#define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX \ |
|---|
| 669 | + (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1) |
|---|
| 670 | + |
|---|
| 671 | +enum { |
|---|
| 515 | 672 | TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), |
|---|
| 516 | 673 | TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1), |
|---|
| 517 | 674 | }; |
|---|
| 518 | 675 | |
|---|
| 676 | +#define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0) /* Range-based match */ |
|---|
| 677 | + |
|---|
| 519 | 678 | /* Match-all classifier */ |
|---|
| 679 | + |
|---|
| 680 | +struct tc_matchall_pcnt { |
|---|
| 681 | + __u64 rhit; |
|---|
| 682 | +}; |
|---|
| 520 | 683 | |
|---|
| 521 | 684 | enum { |
|---|
| 522 | 685 | TCA_MATCHALL_UNSPEC, |
|---|
| 523 | 686 | TCA_MATCHALL_CLASSID, |
|---|
| 524 | 687 | TCA_MATCHALL_ACT, |
|---|
| 525 | 688 | TCA_MATCHALL_FLAGS, |
|---|
| 689 | + TCA_MATCHALL_PCNT, |
|---|
| 690 | + TCA_MATCHALL_PAD, |
|---|
| 526 | 691 | __TCA_MATCHALL_MAX, |
|---|
| 527 | 692 | }; |
|---|
| 528 | 693 | |
|---|