1840d95d348b8d1ee880424cb1aef4b64cb3b379bStephen Hemminger/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#ifndef __LINUX_PKT_CLS_H 368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define __LINUX_PKT_CLS_H 468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 567881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger#include <linux/types.h> 6d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#include <linux/pkt_sched.h> 7d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 8b479a7d75bfceea62f57bcd5445481026b3e3d01Stephen Hemminger#define TC_COOKIE_MAX_SIZE 16 9b479a7d75bfceea62f57bcd5445481026b3e3d01Stephen Hemminger 1068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* Action attributes */ 11ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 1268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ACT_UNSPEC, 1368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ACT_KIND, 1468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ACT_OPTIONS, 1568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ACT_INDEX, 16451d3b81e6abb5b7126e42c9334634305dc95fbeosdl.net!shemminger TCA_ACT_STATS, 1731ce6e010195d049ec3f8415e03d2951f494bf1dStephen Hemminger TCA_ACT_PAD, 18b479a7d75bfceea62f57bcd5445481026b3e3d01Stephen Hemminger TCA_ACT_COOKIE, 1968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_ACT_MAX 2068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 2168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 2268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_MAX __TCA_ACT_MAX 2368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_OLD_COMPAT (TCA_ACT_MAX+1) 2468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_MAX_PRIO 32 2568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_BIND 1 2668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_NOBIND 0 2768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_UNBIND 1 2868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_NOUNBIND 0 2968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_REPLACE 1 3068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ACT_NOREPLACE 0 3168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 3268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_UNSPEC (-1) 3368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_OK 0 3468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_RECLASSIFY 1 3568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_SHOT 2 3668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_PIPE 3 3768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_STOLEN 4 3868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_QUEUED 5 3968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_ACT_REPEAT 6 404e39bfb93a94098601699ea3f5de31c02cda1bf4Stephen Hemminger#define TC_ACT_REDIRECT 7 41410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger#define TC_ACT_TRAP 8 /* For hw path, this means "trap to cpu" 42410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger * and don't further process the frame 43410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger * in hardware. For sw path, this is 44410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger * equivalent of TC_ACT_STOLEN - drop 45410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger * the skb and act like everything 46410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger * is alright. 47410556ad996d38f49fe8e91cd0e10561cb6a7811Stephen Hemminger */ 4876557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger 4976557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger/* There is a special kind of actions called "extended actions", 5076557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger * which need a value parameter. These have a local opcode located in 5176557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger * the highest nibble, starting from 1. The rest of the bits 5276557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger * are used to carry the value. These two parts together make 5376557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger * a combined opcode. 5476557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger */ 5576557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger#define __TC_ACT_EXT_SHIFT 28 5676557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger#define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) 5776557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger#define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) 5876557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger#define TC_ACT_EXT_CMP(combined, opcode) \ 5976557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode) 6076557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger 6176557951f5bc0eb3fb9cbf72e36efe9c7a443fcaStephen Hemminger#define TC_ACT_JUMP __TC_ACT_EXT(1) 62d4473c0257eec10f452459b2e706ecf2e1ec43f1Stephen Hemminger#define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) 6368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 6468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* Action type identifiers*/ 65ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 6668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ID_UNSPEC=0, 6768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ID_POLICE=1, 6868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger /* other actions go here */ 6968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_ID_MAX=255 7068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 7168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 7268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ID_MAX __TCA_ID_MAX 7368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 74ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_police { 7568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 index; 7668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int action; 7768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_POLICE_UNSPEC TC_ACT_UNSPEC 7868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_POLICE_OK TC_ACT_OK 7968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY 8068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_POLICE_SHOT TC_ACT_SHOT 8168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_POLICE_PIPE TC_ACT_PIPE 8268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 8368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 limit; 8468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 burst; 8568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 mtu; 8668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger struct tc_ratespec rate; 8768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger struct tc_ratespec peakrate; 88c68780826d7255ae80ee7834117958f5ba97ebe5Stephen Hemminger int refcnt; 89c68780826d7255ae80ee7834117958f5ba97ebe5Stephen Hemminger int bindcnt; 9068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 capab; 9168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 9268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 93ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tcf_t { 94d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u64 install; 95d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u64 lastuse; 96d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u64 expires; 97c68780826d7255ae80ee7834117958f5ba97ebe5Stephen Hemminger __u64 firstuse; 9868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 9968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 100ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_cnt { 101c68780826d7255ae80ee7834117958f5ba97ebe5Stephen Hemminger int refcnt; 10268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int bindcnt; 10368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 10468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 10568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define tc_gen \ 10668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 index; \ 10768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 capab; \ 10868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int action; \ 10968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int refcnt; \ 11068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int bindcnt 11168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 112ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 11368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_UNSPEC, 11468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_TBF, 11568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_RATE, 11668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_PEAKRATE, 11768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_AVRATE, 11868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_POLICE_RESULT, 119de70bd2f6b81dc3f5cb029875fbae93714c4b6b6Stephen Hemminger TCA_POLICE_TM, 120de70bd2f6b81dc3f5cb029875fbae93714c4b6b6Stephen Hemminger TCA_POLICE_PAD, 12168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_POLICE_MAX 12268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_POLICE_RESULT TCA_POLICE_RESULT 12368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 12468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 12568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) 12668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 1270a99e7badf3c301791f1dedf2877231759eb0a94Stephen Hemminger/* tca flags definitions */ 128cad54934480870d262b7200decff9889b1b7e58cStephen Hemminger#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) /* don't offload filter to HW */ 129cad54934480870d262b7200decff9889b1b7e58cStephen Hemminger#define TCA_CLS_FLAGS_SKIP_SW (1 << 1) /* don't use filter in SW */ 130cad54934480870d262b7200decff9889b1b7e58cStephen Hemminger#define TCA_CLS_FLAGS_IN_HW (1 << 2) /* filter is offloaded to HW */ 131cad54934480870d262b7200decff9889b1b7e58cStephen Hemminger#define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) /* filter isn't offloaded to HW */ 1320a99e7badf3c301791f1dedf2877231759eb0a94Stephen Hemminger 13368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* U32 filters */ 13468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 13568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_HTID(h) ((h)&0xFFF00000) 13668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20) 13768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_HASH(h) (((h)>>12)&0xFF) 13868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_NODE(h) ((h)&0xFFF) 13968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_KEY(h) ((h)&0xFFFFF) 14068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_UNSPEC 0 14168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_ROOT (0xFFF00000) 14268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 143ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 14468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_UNSPEC, 14568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_CLASSID, 14668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_HASH, 14768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_LINK, 14868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_DIVISOR, 14968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_SEL, 15068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_POLICE, 151de70bd2f6b81dc3f5cb029875fbae93714c4b6b6Stephen Hemminger TCA_U32_ACT, 15268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_INDEV, 15368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_U32_PCNT, 1546f0ba88be018dee5feb08e7b125b10b633bb000cnet[shemminger]!shemminger TCA_U32_MARK, 1552421ab750a11a0800f693a682a6dff573d093ee1Stephen Hemminger TCA_U32_FLAGS, 15631ce6e010195d049ec3f8415e03d2951f494bf1dStephen Hemminger TCA_U32_PAD, 15768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_U32_MAX 15868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 15968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 16068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_U32_MAX (__TCA_U32_MAX - 1) 16168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 162ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_u32_key { 1635344bb287cbf6bb68741a19c2dc66b3fd33e9258Stephen Hemminger __be32 mask; 1645344bb287cbf6bb68741a19c2dc66b3fd33e9258Stephen Hemminger __be32 val; 16568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int off; 16668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int offmask; 16768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 16868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 169ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_u32_sel { 17068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger unsigned char flags; 17168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger unsigned char offshift; 17268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger unsigned char nkeys; 17368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 1745344bb287cbf6bb68741a19c2dc66b3fd33e9258Stephen Hemminger __be16 offmask; 17568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u16 off; 17668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger short offoff; 17768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 17868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger short hoff; 1795344bb287cbf6bb68741a19c2dc66b3fd33e9258Stephen Hemminger __be32 hmask; 18068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger struct tc_u32_key keys[0]; 18168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 18268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 183ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_u32_mark { 184d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u32 val; 185d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u32 mask; 186d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u32 success; 187d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 188d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 189ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_u32_pcnt { 19068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u64 rcnt; 19168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u64 rhit; 19268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u64 kcnts[0]; 19368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 1946f0ba88be018dee5feb08e7b125b10b633bb000cnet[shemminger]!shemminger 19568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* Flags */ 19668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 19768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_TERMINAL 1 19868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_OFFSET 2 19968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_VAROFFSET 4 20068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_EAT 8 20168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 20268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TC_U32_MAXDEPTH 8 20368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 20468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 20568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* RSVP filter */ 20668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 207ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 20868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_UNSPEC, 20968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_CLASSID, 21068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_DST, 21168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_SRC, 21268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_PINFO, 21368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_RSVP_POLICE, 214d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_RSVP_ACT, 21568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_RSVP_MAX 21668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 21768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 21868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 ) 21968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 220ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_rsvp_gpi { 22168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 key; 22268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u32 mask; 22368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger int offset; 22468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 22568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 226ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tc_rsvp_pinfo { 22768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger struct tc_rsvp_gpi dpi; 22868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger struct tc_rsvp_gpi spi; 22968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u8 protocol; 23068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u8 tunnelid; 23168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __u8 tunnelhdr; 2326864c1e7890c65dd2ee037809f772790b04792b4shemminger __u8 pad; 23368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 23468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 23568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* ROUTE filter */ 23668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 237ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 23868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_UNSPEC, 23968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_CLASSID, 24068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_TO, 24168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_FROM, 24268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_IIF, 24368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_ROUTE4_POLICE, 244d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_ROUTE4_ACT, 24568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_ROUTE4_MAX 24668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 24768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 24868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) 24968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 25068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 25168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* FW filter */ 25268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 253ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 25468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_FW_UNSPEC, 25568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_FW_CLASSID, 25668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_FW_POLICE, 25768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_FW_INDEV, /* used by CONFIG_NET_CLS_IND */ 25868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_FW_ACT, /* used by CONFIG_NET_CLS_ACT */ 259ead2ba7008c9db02954dae6f180aed8770a0560dStephen Hemminger TCA_FW_MASK, 26068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_FW_MAX 26168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 26268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 26368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_FW_MAX (__TCA_FW_MAX - 1) 26468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 26568d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger/* TC index filter */ 26668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 267ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 26868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_UNSPEC, 26968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_HASH, 27068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_MASK, 27168d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_SHIFT, 27268d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_FALL_THROUGH, 27368d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_CLASSID, 27468d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger TCA_TCINDEX_POLICE, 275d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_TCINDEX_ACT, 27668d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger __TCA_TCINDEX_MAX 27768d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger}; 27868d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 27968d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1) 28068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger 2819932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy/* Flow filter */ 2829932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 283ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 2849932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_SRC, 2859932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_DST, 2869932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_PROTO, 2879932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_PROTO_SRC, 2889932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_PROTO_DST, 2899932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_IIF, 2909932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_PRIORITY, 2919932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_MARK, 2929932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_NFCT, 2939932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_NFCT_SRC, 2949932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_NFCT_DST, 2959932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_NFCT_PROTO_SRC, 2969932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_NFCT_PROTO_DST, 2979932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_RTCLASSID, 2989932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_SKUID, 2999932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_KEY_SKGID, 30066862d3cc704973a3fde309e05912328480745bdPatrick McHardy FLOW_KEY_VLAN_TAG, 3017162c921488de9093c522b858a1ab488b8f50c96Changli Gao FLOW_KEY_RXHASH, 3029932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy __FLOW_KEY_MAX, 3039932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy}; 3049932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 3059932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1) 3069932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 307ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 3089932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_MODE_MAP, 3099932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy FLOW_MODE_HASH, 3109932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy}; 3119932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 312ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 3139932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_UNSPEC, 3149932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_KEYS, 3159932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_MODE, 3169932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_BASECLASS, 3179932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_RSHIFT, 3189932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_ADDEND, 3199932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_MASK, 3209932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_XOR, 3219932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_DIVISOR, 3229932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_ACT, 3239932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_POLICE, 3249932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy TCA_FLOW_EMATCHES, 32519ecc16d72bb5767b1427a7579e5884813f2c9e8Stephen Hemminger TCA_FLOW_PERTURB, 3269932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy __TCA_FLOW_MAX 3279932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy}; 3289932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 3299932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy#define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1) 3309932abb498ca5280027ff57c92a4e948eac41652Patrick McHardy 331d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger/* Basic filter */ 332d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 333ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 334d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_BASIC_UNSPEC, 335d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_BASIC_CLASSID, 336d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_BASIC_EMATCHES, 337d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_BASIC_ACT, 338d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_BASIC_POLICE, 339d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __TCA_BASIC_MAX 340d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 341d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 342d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) 343d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 34467881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger 34567881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger/* Cgroup classifier */ 34667881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger 347ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 34867881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger TCA_CGROUP_UNSPEC, 34967881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger TCA_CGROUP_ACT, 35067881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger TCA_CGROUP_POLICE, 35167881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger TCA_CGROUP_EMATCHES, 35267881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger __TCA_CGROUP_MAX, 35367881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger}; 35467881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger 35567881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1) 35667881151423f1173ddc31e4f27d736044c2c9a96Stephen Hemminger 357793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger/* BPF classifier */ 358793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger 3594e39bfb93a94098601699ea3f5de31c02cda1bf4Stephen Hemminger#define TCA_BPF_FLAG_ACT_DIRECT (1 << 0) 3604e39bfb93a94098601699ea3f5de31c02cda1bf4Stephen Hemminger 361793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemmingerenum { 362793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_UNSPEC, 363793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_ACT, 364793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_POLICE, 365793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_CLASSID, 366793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_OPS_LEN, 367793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger TCA_BPF_OPS, 36861333d24428835c1b9d517993a4e7ef08849deceStephen Hemminger TCA_BPF_FD, 36961333d24428835c1b9d517993a4e7ef08849deceStephen Hemminger TCA_BPF_NAME, 3704e39bfb93a94098601699ea3f5de31c02cda1bf4Stephen Hemminger TCA_BPF_FLAGS, 371d99272470a0f691d592626d4d33fedf6cb647f92Stephen Hemminger TCA_BPF_FLAGS_GEN, 3726166cc35be0fc8124c4232397e27759170c6b0f7Stephen Hemminger TCA_BPF_TAG, 37335a004dc8adcc4e535989b3e1b8c1759191c3819Stephen Hemminger TCA_BPF_ID, 374793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger __TCA_BPF_MAX, 375793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger}; 376793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger 377793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger#define TCA_BPF_MAX (__TCA_BPF_MAX - 1) 378793da0e7023ce29e32914af477fdbcc4bdbb022fStephen Hemminger 3798f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger/* Flower classifier */ 3808f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger 3818f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemmingerenum { 3828f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_UNSPEC, 3838f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_CLASSID, 3848f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_INDEV, 3858f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_ACT, 3868f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_ETH_DST, /* ETH_ALEN */ 3878f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_ETH_DST_MASK, /* ETH_ALEN */ 3888f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_ETH_SRC, /* ETH_ALEN */ 3898f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_ETH_SRC_MASK, /* ETH_ALEN */ 3908f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_ETH_TYPE, /* be16 */ 3918f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IP_PROTO, /* u8 */ 3928f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV4_SRC, /* be32 */ 3938f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV4_SRC_MASK, /* be32 */ 3948f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV4_DST, /* be32 */ 3958f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV4_DST_MASK, /* be32 */ 3968f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV6_SRC, /* struct in6_addr */ 3978f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV6_SRC_MASK, /* struct in6_addr */ 3988f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV6_DST, /* struct in6_addr */ 3998f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_IPV6_DST_MASK, /* struct in6_addr */ 4008f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_TCP_SRC, /* be16 */ 4018f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_TCP_DST, /* be16 */ 4028f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_UDP_SRC, /* be16 */ 4038f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger TCA_FLOWER_KEY_UDP_DST, /* be16 */ 404b7e0091a920f92d867cb8be0e19ea15c3e2e29a5Stephen Hemminger 405b7e0091a920f92d867cb8be0e19ea15c3e2e29a5Stephen Hemminger TCA_FLOWER_FLAGS, 406e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_VLAN_ID, /* be16 */ 407e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_VLAN_PRIO, /* u8 */ 408e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_VLAN_ETH_TYPE, /* be16 */ 409e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger 410e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_KEY_ID, /* be32 */ 411e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV4_SRC, /* be32 */ 412e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,/* be32 */ 413e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV4_DST, /* be32 */ 414e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,/* be32 */ 415e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV6_SRC, /* struct in6_addr */ 416e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,/* struct in6_addr */ 417e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV6_DST, /* struct in6_addr */ 418e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,/* struct in6_addr */ 419e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger 420e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_TCP_SRC_MASK, /* be16 */ 421e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_TCP_DST_MASK, /* be16 */ 422e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_UDP_SRC_MASK, /* be16 */ 423e8a67bc4cf3cb35984ce394089ce89daee41ba81Stephen Hemminger TCA_FLOWER_KEY_UDP_DST_MASK, /* be16 */ 4241a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_SCTP_SRC_MASK, /* be16 */ 4251a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_SCTP_DST_MASK, /* be16 */ 4261a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger 4271a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_SCTP_SRC, /* be16 */ 4281a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_SCTP_DST, /* be16 */ 4291a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger 4301a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_ENC_UDP_SRC_PORT, /* be16 */ 4311a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK, /* be16 */ 4321a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_ENC_UDP_DST_PORT, /* be16 */ 4331a97748be4a5e91913977cc6d0ac4a2286594708Stephen Hemminger TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK, /* be16 */ 4343dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger 4353dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_FLAGS, /* be32 */ 4363dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_FLAGS_MASK, /* be32 */ 4373dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger 4383dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV4_CODE, /* u8 */ 4393dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV4_CODE_MASK,/* u8 */ 4403dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV4_TYPE, /* u8 */ 4413dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,/* u8 */ 4423dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV6_CODE, /* u8 */ 4433dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV6_CODE_MASK,/* u8 */ 4443dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */ 4453dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */ 4463dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger 447e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_SIP, /* be32 */ 448e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_SIP_MASK, /* be32 */ 449e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_TIP, /* be32 */ 450e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_TIP_MASK, /* be32 */ 451e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_OP, /* u8 */ 452e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_OP_MASK, /* u8 */ 453e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_SHA, /* ETH_ALEN */ 454e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_SHA_MASK, /* ETH_ALEN */ 455e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_THA, /* ETH_ALEN */ 456e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger TCA_FLOWER_KEY_ARP_THA_MASK, /* ETH_ALEN */ 457e2ade8cefb7ffe7d53b21a73b88a627d555c0371Stephen Hemminger 4587ff1fce5490b8c5c13de614529f82fd1a89b868fStephen Hemminger TCA_FLOWER_KEY_MPLS_TTL, /* u8 - 8 bits */ 4597ff1fce5490b8c5c13de614529f82fd1a89b868fStephen Hemminger TCA_FLOWER_KEY_MPLS_BOS, /* u8 - 1 bit */ 4607ff1fce5490b8c5c13de614529f82fd1a89b868fStephen Hemminger TCA_FLOWER_KEY_MPLS_TC, /* u8 - 3 bits */ 4617ff1fce5490b8c5c13de614529f82fd1a89b868fStephen Hemminger TCA_FLOWER_KEY_MPLS_LABEL, /* be32 - 20 bits */ 4627ff1fce5490b8c5c13de614529f82fd1a89b868fStephen Hemminger 4630071f3d058d3ae3365f0e046a1eff7e82a1e8ad3Stephen Hemminger TCA_FLOWER_KEY_TCP_FLAGS, /* be16 */ 4640071f3d058d3ae3365f0e046a1eff7e82a1e8ad3Stephen Hemminger TCA_FLOWER_KEY_TCP_FLAGS_MASK, /* be16 */ 4650071f3d058d3ae3365f0e046a1eff7e82a1e8ad3Stephen Hemminger 466d9bcafb4fe2e066e2c597b5b32356ed3f2b12bdaStephen Hemminger TCA_FLOWER_KEY_IP_TOS, /* u8 */ 467d9bcafb4fe2e066e2c597b5b32356ed3f2b12bdaStephen Hemminger TCA_FLOWER_KEY_IP_TOS_MASK, /* u8 */ 468d9bcafb4fe2e066e2c597b5b32356ed3f2b12bdaStephen Hemminger TCA_FLOWER_KEY_IP_TTL, /* u8 */ 469d9bcafb4fe2e066e2c597b5b32356ed3f2b12bdaStephen Hemminger TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */ 470d9bcafb4fe2e066e2c597b5b32356ed3f2b12bdaStephen Hemminger 4718f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger __TCA_FLOWER_MAX, 4728f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger}; 4738f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger 4748f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) 4758f42ceaf249189abe1891e622455813e7439b1b7Stephen Hemminger 4763dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemmingerenum { 4773dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), 4783dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger}; 4793dd0bb51d72adfbb2eac82cf1296c1bdfed16cd0Stephen Hemminger 480dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger/* Match-all classifier */ 481dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger 482dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemmingerenum { 483dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger TCA_MATCHALL_UNSPEC, 484dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger TCA_MATCHALL_CLASSID, 485dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger TCA_MATCHALL_ACT, 486dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger TCA_MATCHALL_FLAGS, 487dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger __TCA_MATCHALL_MAX, 488dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger}; 489dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger 490dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger#define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1) 491dc00db9e84ff36fefe313ee4a3f5097b088567b9Stephen Hemminger 492d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger/* Extended Matches */ 493d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 494ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tcf_ematch_tree_hdr { 495d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 nmatches; 496d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 progid; 497d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 498d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 499ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 500d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_EMATCH_TREE_UNSPEC, 501d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_EMATCH_TREE_HDR, 502d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCA_EMATCH_TREE_LIST, 503d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __TCA_EMATCH_TREE_MAX 504d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 505d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) 506d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 507ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerstruct tcf_ematch_hdr { 508d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 matchid; 509d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 kind; 510d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 flags; 511d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __u16 pad; /* currently unused */ 512d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 513d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 514d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger/* 0 1 515d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 516d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * +-----------------------+-+-+---+ 517d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * | Unused |S|I| R | 518d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * +-----------------------+-+-+---+ 519d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 520d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * R(2) ::= relation to next ematch 521d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * where: 0 0 END (last ematch) 522d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 0 1 AND 523d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 1 0 OR 524d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 1 1 Unused (invalid) 525d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * I(1) ::= invert result 526d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * S(1) ::= simple payload 527d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger */ 528d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_REL_END 0 529d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_REL_AND (1<<0) 530d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_REL_OR (1<<1) 531d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_INVERT (1<<2) 532d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_SIMPLE (1<<3) 533d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 534d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_REL_MASK 3 535d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) 536d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 537ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 538d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_LAYER_LINK, 539d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_LAYER_NETWORK, 540d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_LAYER_TRANSPORT, 541d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger __TCF_LAYER_MAX 542d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 543d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) 544d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 545d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger/* Ematch type assignments 546d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 1..32767 Reserved for ematches inside kernel tree 547d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger * 32768..65535 Free to use, not reliable 548d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger */ 549a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_CONTAINER 0 550a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_CMP 1 551a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_NBYTE 2 552a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_U32 3 553a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_META 4 554a6ffa8b00d60c1fff5d197575c2e5a896e2e15b0Stephen Hemminger#define TCF_EM_TEXT 5 555a564b709426ed8b481dd1548ba72a007c6c73c70Stephen Hemminger#define TCF_EM_VLAN 6 556a564b709426ed8b481dd1548ba72a007c6c73c70Stephen Hemminger#define TCF_EM_CANID 7 557a564b709426ed8b481dd1548ba72a007c6c73c70Stephen Hemminger#define TCF_EM_IPSET 8 558a564b709426ed8b481dd1548ba72a007c6c73c70Stephen Hemminger#define TCF_EM_MAX 8 559d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 560ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 561d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_EM_PROG_TC 562d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 563d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 564ab322673298bd0b8927cdd9d11f3d36af5941b93Stephen Hemmingerenum { 565d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_EM_OPND_EQ, 566d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_EM_OPND_GT, 567d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger TCF_EM_OPND_LT 568d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger}; 569d639d9d18b2ef5a43cda5424830005333acfb288osdl.net!shemminger 57068d5ba54296ba689ec96e20c82bc5936d63ecc66osdl.net!shemminger#endif 571