|
| 1 | +// SPDX-License-Identifier: MIT |
| 2 | + |
| 3 | +/// Handles |
| 4 | +pub const TC_H_MAJ_MASK: u32 = 0xFFFF0000; |
| 5 | +pub const TC_H_MIN_MASK: u32 = 0x0000FFFF; |
| 6 | + |
| 7 | +#[macro_export] |
| 8 | +macro_rules! TC_H_MAKE { |
| 9 | + ($maj: expr, $min: expr) => { |
| 10 | + ($maj & TC_H_MAJ_MASK) | ($min & TC_H_MIN_MASK) |
| 11 | + }; |
| 12 | +} |
| 13 | + |
| 14 | +pub const TC_H_UNSPEC: u32 = 0; |
| 15 | +pub const TC_H_ROOT: u32 = 0xFFFFFFFF; |
| 16 | +pub const TC_H_INGRESS: u32 = 0xFFFFFFF1; |
| 17 | +pub const TC_H_CLSACT: u32 = TC_H_INGRESS; |
| 18 | + |
| 19 | +pub const TC_H_MIN_PRIORITY: u32 = 0xFFE0; |
| 20 | +pub const TC_H_MIN_INGRESS: u32 = 0xFFF2; |
| 21 | +pub const TC_H_MIN_EGRESS: u32 = 0xFFF3; |
| 22 | + |
| 23 | +/// U32 filters |
| 24 | +pub const TCA_U32_UNSPEC: u16 = 0; |
| 25 | +pub const TCA_U32_CLASSID: u16 = 1; |
| 26 | +pub const TCA_U32_HASH: u16 = 2; |
| 27 | +pub const TCA_U32_LINK: u16 = 3; |
| 28 | +pub const TCA_U32_DIVISOR: u16 = 4; |
| 29 | +pub const TCA_U32_SEL: u16 = 5; |
| 30 | +pub const TCA_U32_POLICE: u16 = 6; |
| 31 | +pub const TCA_U32_ACT: u16 = 7; |
| 32 | +pub const TCA_U32_INDEV: u16 = 8; |
| 33 | +pub const TCA_U32_PCNT: u16 = 9; |
| 34 | +pub const TCA_U32_MARK: u16 = 10; |
| 35 | +pub const TCA_U32_FLAGS: u16 = 11; |
| 36 | +pub const TCA_U32_PAD: u16 = 12; |
| 37 | +pub const TCA_U32_MAX: u16 = TCA_U32_PAD; |
| 38 | + |
| 39 | +/// U32 Flags |
| 40 | +pub const TC_U32_TERMINAL: u8 = 1; |
| 41 | +pub const TC_U32_OFFSET: u8 = 2; |
| 42 | +pub const TC_U32_VAROFFSET: u8 = 4; |
| 43 | +pub const TC_U32_EAT: u8 = 8; |
| 44 | +pub const TC_U32_MAXDEPTH: u8 = 8; |
| 45 | + |
| 46 | +/// Action attributes |
| 47 | +pub const TCA_ACT_UNSPEC: u16 = 0; |
| 48 | +pub const TCA_ACT_KIND: u16 = 1; |
| 49 | +pub const TCA_ACT_OPTIONS: u16 = 2; |
| 50 | +pub const TCA_ACT_INDEX: u16 = 3; |
| 51 | +pub const TCA_ACT_STATS: u16 = 4; |
| 52 | +pub const TCA_ACT_PAD: u16 = 5; |
| 53 | +pub const TCA_ACT_COOKIE: u16 = 6; |
| 54 | + |
| 55 | +//TODO(wllenyj): Why not subtract 1? See `linux/pkt_cls.h` for original definition. |
| 56 | +pub const TCA_ACT_MAX: u16 = 7; |
| 57 | +pub const TCA_OLD_COMPAT: u16 = TCA_ACT_MAX + 1; |
| 58 | +pub const TCA_ACT_MAX_PRIO: u16 = 32; |
| 59 | +pub const TCA_ACT_BIND: u16 = 1; |
| 60 | +pub const TCA_ACT_NOBIND: u16 = 0; |
| 61 | +pub const TCA_ACT_UNBIND: u16 = 1; |
| 62 | +pub const TCA_ACT_NOUNBIND: u16 = 0; |
| 63 | +pub const TCA_ACT_REPLACE: u16 = 1; |
| 64 | +pub const TCA_ACT_NOREPLACE: u16 = 0; |
| 65 | + |
| 66 | +pub const TC_ACT_UNSPEC: i32 = -1; |
| 67 | +pub const TC_ACT_OK: i32 = 0; |
| 68 | +pub const TC_ACT_RECLASSIFY: i32 = 1; |
| 69 | +pub const TC_ACT_SHOT: i32 = 2; |
| 70 | +pub const TC_ACT_PIPE: i32 = 3; |
| 71 | +pub const TC_ACT_STOLEN: i32 = 4; |
| 72 | +pub const TC_ACT_QUEUED: i32 = 5; |
| 73 | +pub const TC_ACT_REPEAT: i32 = 6; |
| 74 | +pub const TC_ACT_REDIRECT: i32 = 7; |
| 75 | +pub const TC_ACT_TRAP: i32 = 8; |
| 76 | + |
| 77 | +pub const TC_ACT_VALUE_MAX: i32 = TC_ACT_TRAP; |
| 78 | + |
| 79 | +pub const TC_ACT_JUMP: i32 = 0x10000000; |
| 80 | + |
| 81 | +pub const TCA_ACT_TAB: u16 = 1; // TCA_ROOT_TAB |
| 82 | +pub const TCAA_MAX: u16 = 1; |
| 83 | + |
| 84 | +/// Mirred action attr |
| 85 | +pub const TCA_MIRRED_UNSPEC: u16 = 0; |
| 86 | +pub const TCA_MIRRED_TM: u16 = 1; |
| 87 | +pub const TCA_MIRRED_PARMS: u16 = 2; |
| 88 | +pub const TCA_MIRRED_PAD: u16 = 3; |
| 89 | +pub const TCA_MIRRED_MAX: u16 = TCA_MIRRED_PAD; |
| 90 | + |
| 91 | +pub const TCA_EGRESS_REDIR: i32 = 1; /* packet redirect to EGRESS */ |
| 92 | +pub const TCA_EGRESS_MIRROR: i32 = 2; /* mirror packet to EGRESS */ |
| 93 | +pub const TCA_INGRESS_REDIR: i32 = 3; /* packet redirect to INGRESS */ |
| 94 | +pub const TCA_INGRESS_MIRROR: i32 = 4; /* mirror packet to INGRESS */ |
0 commit comments