1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __LINUX_PKT_CLS_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __LINUX_PKT_CLS_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/pkt_sched.h> 23525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_COOKIE_MAX_SIZE 16 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 25d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ACT_UNSPEC, 26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ACT_KIND, 27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ACT_OPTIONS, 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ACT_INDEX, 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ACT_STATS, 30106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_ACT_PAD, 31525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_ACT_COOKIE, 32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_ACT_MAX 33106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_MAX __TCA_ACT_MAX 35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCA_OLD_COMPAT (TCA_ACT_MAX + 1) 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_MAX_PRIO 32 37106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_ACT_BIND 1 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_NOBIND 0 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_UNBIND 1 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ACT_NOUNBIND 0 41106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_ACT_REPLACE 1 4205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_ACT_NOREPLACE 0 43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_ACT_UNSPEC (- 1) 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_OK 0 45106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_ACT_RECLASSIFY 1 4605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_SHOT 2 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_PIPE 3 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_ACT_STOLEN 4 49106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_ACT_QUEUED 5 5005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_REPEAT 6 5105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TC_ACT_REDIRECT 7 521308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TC_ACT_TRAP 8 53525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define __TC_ACT_EXT_SHIFT 28 54525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT) 55525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1) 56525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_EXT_CMP(combined,opcode) (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode) 57525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TC_ACT_JUMP __TC_ACT_EXT(1) 581308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2) 59106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisenum { 60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ID_UNSPEC = 0, 61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ID_POLICE = 1, 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_ID_MAX = 255 63106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ID_MAX __TCA_ID_MAX 65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_police { 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 index; 67106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris int action; 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_UNSPEC TC_ACT_UNSPEC 69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_OK TC_ACT_OK 70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY 71106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_POLICE_SHOT TC_ACT_SHOT 72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_POLICE_PIPE TC_ACT_PIPE 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 limit; 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 burst; 75106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 mtu; 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct tc_ratespec rate; 77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct tc_ratespec peakrate; 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int refcnt; 79106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris int bindcnt; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 capab; 81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tcf_t { 83106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 install; 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 lastuse; 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 expires; 8649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u64 firstuse; 8749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 88106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct tc_cnt { 89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int refcnt; 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int bindcnt; 9149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 92106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt 93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_POLICE_UNSPEC, 9549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_POLICE_TBF, 96106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_POLICE_RATE, 97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_POLICE_PEAKRATE, 98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_POLICE_AVRATE, 9949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_POLICE_RESULT, 100106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_POLICE_TM, 101106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_POLICE_PAD, 102106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __TCA_POLICE_MAX 10349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_POLICE_RESULT TCA_POLICE_RESULT 104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) 106106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) 10749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_CLS_FLAGS_SKIP_SW (1 << 1) 108525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TCA_CLS_FLAGS_IN_HW (1 << 2) 109525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris#define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) 110106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_U32_HTID(h) ((h) & 0xFFF00000) 111d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20) 112d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TC_U32_HASH(h) (((h) >> 12) & 0xFF) 11349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_NODE(h) ((h) & 0xFFF) 114106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define TC_U32_KEY(h) ((h) & 0xFFFFF) 115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_UNSPEC 0 116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_ROOT (0xFFF00000) 11749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 118106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_U32_UNSPEC, 119d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_CLASSID, 120d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_HASH, 12149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_U32_LINK, 122106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_U32_DIVISOR, 123d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_SEL, 124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_POLICE, 12549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_U32_ACT, 126106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_U32_INDEV, 127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_PCNT, 128d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_U32_MARK, 12949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_U32_FLAGS, 130106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris TCA_U32_PAD, 131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_U32_MAX 132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 13349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_U32_MAX (__TCA_U32_MAX - 1) 134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_key { 135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 mask; 136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 val; 13749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris int off; 138d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int offmask; 139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_sel { 14149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris unsigned char flags; 142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned char offshift; 143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned char nkeys; 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 offmask; 14549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u16 off; 146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao short offoff; 147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao short hoff; 148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 hmask; 14949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris struct tc_u32_key keys[0]; 150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_mark { 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 val; 15349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u32 mask; 154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 success; 155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_u32_pcnt { 15749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u64 rcnt; 158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 rhit; 159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 kcnts[0]; 160655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 16149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_TERMINAL 1 162655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_OFFSET 2 163655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_VAROFFSET 4 164655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TC_U32_EAT 8 16549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TC_U32_MAXDEPTH 8 166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 167d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_RSVP_UNSPEC, 168d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_RSVP_CLASSID, 16949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_RSVP_DST, 170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_RSVP_SRC, 171d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_RSVP_PINFO, 172d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_RSVP_POLICE, 17349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_RSVP_ACT, 174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_RSVP_MAX 175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1) 17749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisstruct tc_rsvp_gpi { 178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 key; 179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 mask; 180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int offset; 18149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tc_rsvp_pinfo { 183d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct tc_rsvp_gpi dpi; 184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct tc_rsvp_gpi spi; 18549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u8 protocol; 186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 tunnelid; 187d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 tunnelhdr; 188d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 pad; 18949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 191d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ROUTE4_UNSPEC, 192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ROUTE4_CLASSID, 19349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_ROUTE4_TO, 194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ROUTE4_FROM, 195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ROUTE4_IIF, 196d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_ROUTE4_POLICE, 19749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_ROUTE4_ACT, 198d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_ROUTE4_MAX 199655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 200655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) 20149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 202d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FW_UNSPEC, 203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FW_CLASSID, 204d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FW_POLICE, 20549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FW_INDEV, 206d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FW_ACT, 207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FW_MASK, 208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_FW_MAX 20949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 210655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_FW_MAX (__TCA_FW_MAX - 1) 211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 212d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_UNSPEC, 21349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_TCINDEX_HASH, 214d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_MASK, 215d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_SHIFT, 216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_FALL_THROUGH, 21749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_TCINDEX_CLASSID, 218d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_POLICE, 219d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_TCINDEX_ACT, 220d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_TCINDEX_MAX 22149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 222655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1) 223655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 224d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_SRC, 22549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris FLOW_KEY_DST, 226d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_PROTO, 227d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_PROTO_SRC, 228d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_PROTO_DST, 22949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris FLOW_KEY_IIF, 230d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_PRIORITY, 231d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_MARK, 232d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_NFCT, 23349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris FLOW_KEY_NFCT_SRC, 234d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_NFCT_DST, 235d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_NFCT_PROTO_SRC, 236d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_NFCT_PROTO_DST, 23749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris FLOW_KEY_RTCLASSID, 238d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_SKUID, 239d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_SKGID, 240d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_KEY_VLAN_TAG, 24149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris FLOW_KEY_RXHASH, 242d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __FLOW_KEY_MAX, 243655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 244655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1) 24549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 246d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_MODE_MAP, 247d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao FLOW_MODE_HASH, 248655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 24949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 250d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_UNSPEC, 251d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_KEYS, 252d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_MODE, 25349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOW_BASECLASS, 254d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_RSHIFT, 255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_ADDEND, 256d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_MASK, 25749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOW_XOR, 258d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_DIVISOR, 259d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_ACT, 260d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_POLICE, 26149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOW_EMATCHES, 262d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_FLOW_PERTURB, 263d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_FLOW_MAX 264655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 26549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1) 266655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BASIC_UNSPEC, 268d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BASIC_CLASSID, 26949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_BASIC_EMATCHES, 270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BASIC_ACT, 271d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BASIC_POLICE, 272d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_BASIC_MAX 27349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 274655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) 275655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 276d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_CGROUP_UNSPEC, 27749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_CGROUP_ACT, 278d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_CGROUP_POLICE, 279d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_CGROUP_EMATCHES, 280d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __TCA_CGROUP_MAX, 28149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 282655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1) 28305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_BPF_FLAG_ACT_DIRECT (1 << 0) 28438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisenum { 28549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_BPF_UNSPEC, 286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BPF_ACT, 287d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BPF_POLICE, 288d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BPF_CLASSID, 28949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_BPF_OPS_LEN, 290d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_BPF_OPS, 29105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_BPF_FD, 29205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_BPF_NAME, 29349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_BPF_FLAGS, 2946a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_BPF_FLAGS_GEN, 29548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_BPF_TAG, 2961308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_BPF_ID, 29705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris __TCA_BPF_MAX, 29848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris}; 2996a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCA_BPF_MAX (__TCA_BPF_MAX - 1) 30049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 30105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_UNSPEC, 30248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_CLASSID, 3036a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_INDEV, 30449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOWER_ACT, 30505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_KEY_ETH_DST, 30648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ETH_DST_MASK, 3076a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ETH_SRC, 30849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOWER_KEY_ETH_SRC_MASK, 30905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_KEY_ETH_TYPE, 31048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_IP_PROTO, 3116a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_IPV4_SRC, 31249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOWER_KEY_IPV4_SRC_MASK, 31305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_KEY_IPV4_DST, 31448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_IPV4_DST_MASK, 3156a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_IPV6_SRC, 31649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOWER_KEY_IPV6_SRC_MASK, 31705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_KEY_IPV6_DST, 31848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_IPV6_DST_MASK, 3196a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_TCP_SRC, 32049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_FLOWER_KEY_TCP_DST, 32105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris TCA_FLOWER_KEY_UDP_SRC, 32248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_UDP_DST, 3236a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_FLAGS, 3246a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_VLAN_ID, 3256a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_VLAN_PRIO, 32648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_VLAN_ETH_TYPE, 3276a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_KEY_ID, 3286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV4_SRC, 3296a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK, 33048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_IPV4_DST, 3316a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV4_DST_MASK, 3326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV6_SRC, 3336a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK, 33448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_IPV6_DST, 3356a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_ENC_IPV6_DST_MASK, 3366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_TCP_SRC_MASK, 3376a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_TCP_DST_MASK, 33848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_UDP_SRC_MASK, 3396a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_FLOWER_KEY_UDP_DST_MASK, 34048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_SCTP_SRC_MASK, 34148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_SCTP_DST_MASK, 34248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_SCTP_SRC, 34348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_SCTP_DST, 34448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_UDP_SRC_PORT, 34548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK, 34648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_UDP_DST_PORT, 34748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK, 34848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_FLAGS, 34948af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_FLAGS_MASK, 35048af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV4_CODE, 35148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV4_CODE_MASK, 35248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV4_TYPE, 35348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV4_TYPE_MASK, 35448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV6_CODE, 35548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV6_CODE_MASK, 35648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV6_TYPE, 35748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_ICMPV6_TYPE_MASK, 358525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_SIP, 359525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_SIP_MASK, 360525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_TIP, 361525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_TIP_MASK, 362525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_OP, 363525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_OP_MASK, 364525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_SHA, 365525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_SHA_MASK, 366525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_THA, 367525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_ARP_THA_MASK, 368525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_MPLS_TTL, 369525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_MPLS_BOS, 370525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_MPLS_TC, 371525ce914edf136d2bd02ac8c404d56c52e737f4dChristopher Ferris TCA_FLOWER_KEY_MPLS_LABEL, 3721308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_TCP_FLAGS, 3731308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_TCP_FLAGS_MASK, 3741308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_IP_TOS, 3751308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_IP_TOS_MASK, 3761308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_IP_TTL, 3771308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris TCA_FLOWER_KEY_IP_TTL_MASK, 37849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __TCA_FLOWER_MAX, 37905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 38005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1) 38148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisenum { 38248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0), 38348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris}; 3846a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum { 38549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_MATCHALL_UNSPEC, 38649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_MATCHALL_CLASSID, 38749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_MATCHALL_ACT, 3886a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris TCA_MATCHALL_FLAGS, 38949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __TCA_MATCHALL_MAX, 39049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 39149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1) 3926a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisstruct tcf_ematch_tree_hdr { 39349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u16 nmatches; 394d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 progid; 395655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 3966a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum { 39749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCA_EMATCH_TREE_UNSPEC, 398d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_EMATCH_TREE_HDR, 399d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCA_EMATCH_TREE_LIST, 4006a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __TCA_EMATCH_TREE_MAX 40149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 402655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) 403655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tcf_ematch_hdr { 4046a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __u16 matchid; 40549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris __u16 kind; 406d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 flags; 407d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 pad; 4086a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris}; 40949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_REL_END 0 410d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCF_EM_REL_AND (1 << 0) 411d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define TCF_EM_REL_OR (1 << 1) 4126a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_INVERT (1 << 2) 41349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_SIMPLE (1 << 3) 414655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_REL_MASK 3 415655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) 4166a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum { 41749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCF_LAYER_LINK, 418d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCF_LAYER_NETWORK, 419d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCF_LAYER_TRANSPORT, 4206a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris __TCF_LAYER_MAX 42149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris}; 422655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) 423655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_CONTAINER 0 4246a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_CMP 1 42549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_NBYTE 2 426655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_U32 3 427655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_META 4 4286a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_TEXT 5 42949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#define TCF_EM_VLAN 6 430655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_CANID 7 431655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCF_EM_IPSET 8 4326a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris#define TCF_EM_MAX 8 43349f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum { 434d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCF_EM_PROG_TC 435655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 4366a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisenum { 43749f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris TCF_EM_OPND_EQ, 438d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCF_EM_OPND_GT, 439d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao TCF_EM_OPND_LT 4406a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris}; 44149f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris#endif 442