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