111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_PKT_CLS_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_PKT_CLS_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/pkt_sched.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _TC_MAKE32(x) ((x)) 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n)) 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n)) 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n)) 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n)) 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_MUNGED _TC_MAKEMASK1(0) 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED)) 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED) 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_OK2MUNGE _TC_MAKEMASK1(1) 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE)) 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE) 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S_TC_VERD _TC_MAKE32(2) 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD) 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD) 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD) 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD)) 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S_TC_FROM _TC_MAKE32(6) 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM) 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM) 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM) 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM)) 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AT_STACK 0x0 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AT_INGRESS 0x1 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define AT_EGRESS 0x2 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_NCLS _TC_MAKEMASK1(8) 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS)) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CLR_TC_NCLS(v) ( v & ~TC_NCLS) 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S_TC_RTTL _TC_MAKE32(9) 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL) 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL) 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL) 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL)) 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define S_TC_AT _TC_MAKE32(12) 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT) 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT) 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT) 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT)) 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ACT_UNSPEC, 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ACT_KIND, 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ACT_OPTIONS, 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ACT_INDEX, 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ACT_STATS, 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_ACT_MAX 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_MAX __TCA_ACT_MAX 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_OLD_COMPAT (TCA_ACT_MAX+1) 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_MAX_PRIO 32 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_BIND 1 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_NOBIND 0 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_UNBIND 1 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_NOUNBIND 0 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_REPLACE 1 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ACT_NOREPLACE 0 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MAX_REC_LOOP 4 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MAX_RED_LOOP 4 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_UNSPEC (-1) 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_OK 0 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_RECLASSIFY 1 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_SHOT 2 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_PIPE 3 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_STOLEN 4 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_QUEUED 5 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_REPEAT 6 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_ACT_JUMP 0x10000000 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ID_UNSPEC=0, 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ID_POLICE=1, 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_ID_MAX=255 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ID_MAX __TCA_ID_MAX 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_police 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 index; 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int action; 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_POLICE_UNSPEC TC_ACT_UNSPEC 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_POLICE_OK TC_ACT_OK 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_POLICE_SHOT TC_ACT_SHOT 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_POLICE_PIPE TC_ACT_PIPE 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 limit; 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 burst; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mtu; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec rate; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_ratespec peakrate; 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int refcnt; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int bindcnt; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 capab; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tcf_t 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 install; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 lastuse; 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 expires; 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_cnt 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int refcnt; 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int bindcnt; 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_UNSPEC, 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_TBF, 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_RATE, 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_PEAKRATE, 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_AVRATE, 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_POLICE_RESULT, 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_POLICE_MAX 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_POLICE_RESULT TCA_POLICE_RESULT 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_HTID(h) ((h)&0xFFF00000) 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20) 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_HASH(h) (((h)>>12)&0xFF) 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_NODE(h) ((h)&0xFFF) 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_KEY(h) ((h)&0xFFFFF) 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_UNSPEC 0 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_ROOT (0xFFF00000) 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_UNSPEC, 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_CLASSID, 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_HASH, 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_LINK, 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_DIVISOR, 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_SEL, 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_POLICE, 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_ACT, 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_INDEV, 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_PCNT, 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_U32_MARK, 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_U32_MAX 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_U32_MAX (__TCA_U32_MAX - 1) 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_u32_key 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mask; 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 val; 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int off; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int offmask; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_u32_sel 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char flags; 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char offshift; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char nkeys; 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 offmask; 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 off; 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short offoff; 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short hoff; 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 hmask; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_u32_key keys[0]; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_u32_mark 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 val; 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mask; 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 success; 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_u32_pcnt 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 rcnt; 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 rhit; 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 kcnts[0]; 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_TERMINAL 1 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_OFFSET 2 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_VAROFFSET 4 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_EAT 8 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TC_U32_MAXDEPTH 8 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_UNSPEC, 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_CLASSID, 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_DST, 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_SRC, 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_PINFO, 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_POLICE, 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_RSVP_ACT, 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_RSVP_MAX 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 ) 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_rsvp_gpi 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 key; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 mask; 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int offset; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tc_rsvp_pinfo 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_rsvp_gpi dpi; 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct tc_rsvp_gpi spi; 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 protocol; 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 tunnelid; 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 tunnelhdr; 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 pad; 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_UNSPEC, 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_CLASSID, 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_TO, 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_FROM, 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_IIF, 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_POLICE, 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_ROUTE4_ACT, 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_ROUTE4_MAX 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1) 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FW_UNSPEC, 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FW_CLASSID, 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FW_POLICE, 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FW_INDEV, 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_FW_ACT, 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_FW_MAX 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_FW_MAX (__TCA_FW_MAX - 1) 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_UNSPEC, 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_HASH, 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_MASK, 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_SHIFT, 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_FALL_THROUGH, 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_CLASSID, 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_POLICE, 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_TCINDEX_ACT, 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_TCINDEX_MAX 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1) 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_BASIC_UNSPEC, 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_BASIC_CLASSID, 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_BASIC_EMATCHES, 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_BASIC_ACT, 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_BASIC_POLICE, 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_BASIC_MAX 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1) 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tcf_ematch_tree_hdr 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 nmatches; 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 progid; 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_EMATCH_TREE_UNSPEC, 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_EMATCH_TREE_HDR, 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCA_EMATCH_TREE_LIST, 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCA_EMATCH_TREE_MAX 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1) 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct tcf_ematch_hdr 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 matchid; 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 kind; 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 flags; 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 pad; 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_REL_END 0 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_REL_AND (1<<0) 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_REL_OR (1<<1) 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_INVERT (1<<2) 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_SIMPLE (1<<3) 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_REL_MASK 3 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK) 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_LAYER_LINK, 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_LAYER_NETWORK, 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_LAYER_TRANSPORT, 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCF_LAYER_MAX 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1) 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_CONTAINER, 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_CMP, 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_NBYTE, 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_U32, 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_META, 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_TEXT, 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __TCF_EM_MAX 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_PROG_TC 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_OPND_EQ, 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_OPND_GT, 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert TCF_EM_OPND_LT 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 373