.. | .. |
---|
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 | |
---|