1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef __LINUX_PKT_CLS_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __LINUX_PKT_CLS_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/pkt_sched.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _TC_MAKE32(x) ((x))
18951a39d68df598db08dfced8b4707755864a0492Ying Wang
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n))
20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n))
21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n))
22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n))
23951a39d68df598db08dfced8b4707755864a0492Ying Wang
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_MUNGED _TC_MAKEMASK1(0)
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED))
26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED)
27951a39d68df598db08dfced8b4707755864a0492Ying Wang
28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_OK2MUNGE _TC_MAKEMASK1(1)
29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE))
30951a39d68df598db08dfced8b4707755864a0492Ying Wang#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE)
31951a39d68df598db08dfced8b4707755864a0492Ying Wang
32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define S_TC_VERD _TC_MAKE32(2)
33951a39d68df598db08dfced8b4707755864a0492Ying Wang#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD)
34951a39d68df598db08dfced8b4707755864a0492Ying Wang#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD)
35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD)
36951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD))
37951a39d68df598db08dfced8b4707755864a0492Ying Wang
38951a39d68df598db08dfced8b4707755864a0492Ying Wang#define S_TC_FROM _TC_MAKE32(6)
39951a39d68df598db08dfced8b4707755864a0492Ying Wang#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
40951a39d68df598db08dfced8b4707755864a0492Ying Wang#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM)
42951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM))
43951a39d68df598db08dfced8b4707755864a0492Ying Wang#define AT_STACK 0x0
44951a39d68df598db08dfced8b4707755864a0492Ying Wang#define AT_INGRESS 0x1
45951a39d68df598db08dfced8b4707755864a0492Ying Wang#define AT_EGRESS 0x2
46951a39d68df598db08dfced8b4707755864a0492Ying Wang
47951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_NCLS _TC_MAKEMASK1(8)
48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
49951a39d68df598db08dfced8b4707755864a0492Ying Wang#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
50951a39d68df598db08dfced8b4707755864a0492Ying Wang
51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define S_TC_RTTL _TC_MAKE32(9)
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL)
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL)
54951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL)
55951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL))
56951a39d68df598db08dfced8b4707755864a0492Ying Wang
57951a39d68df598db08dfced8b4707755864a0492Ying Wang#define S_TC_AT _TC_MAKE32(12)
58951a39d68df598db08dfced8b4707755864a0492Ying Wang#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
60951a39d68df598db08dfced8b4707755864a0492Ying Wang#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
61951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
62951a39d68df598db08dfced8b4707755864a0492Ying Wang
63951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
64951a39d68df598db08dfced8b4707755864a0492Ying Wang{
65951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ACT_UNSPEC,
66951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ACT_KIND,
67951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ACT_OPTIONS,
68951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ACT_INDEX,
69951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ACT_STATS,
70951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_ACT_MAX
71951a39d68df598db08dfced8b4707755864a0492Ying Wang};
72951a39d68df598db08dfced8b4707755864a0492Ying Wang
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_MAX __TCA_ACT_MAX
74951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_MAX_PRIO 32
76951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_BIND 1
77951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_NOBIND 0
78951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_UNBIND 1
79951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_NOUNBIND 0
80951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_REPLACE 1
81951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ACT_NOREPLACE 0
82951a39d68df598db08dfced8b4707755864a0492Ying Wang#define MAX_REC_LOOP 4
83951a39d68df598db08dfced8b4707755864a0492Ying Wang#define MAX_RED_LOOP 4
84951a39d68df598db08dfced8b4707755864a0492Ying Wang
85951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_UNSPEC (-1)
86951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_OK 0
87951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_RECLASSIFY 1
88951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_SHOT 2
89951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_PIPE 3
90951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_STOLEN 4
91951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_QUEUED 5
92951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_REPEAT 6
93951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_ACT_JUMP 0x10000000
94951a39d68df598db08dfced8b4707755864a0492Ying Wang
95951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
96951a39d68df598db08dfced8b4707755864a0492Ying Wang{
97951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ID_UNSPEC=0,
98951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ID_POLICE=1,
99951a39d68df598db08dfced8b4707755864a0492Ying Wang
100951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_ID_MAX=255
101951a39d68df598db08dfced8b4707755864a0492Ying Wang};
102951a39d68df598db08dfced8b4707755864a0492Ying Wang
103951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ID_MAX __TCA_ID_MAX
104951a39d68df598db08dfced8b4707755864a0492Ying Wang
105951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_police
106951a39d68df598db08dfced8b4707755864a0492Ying Wang{
107951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 index;
108951a39d68df598db08dfced8b4707755864a0492Ying Wang int action;
109951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_POLICE_UNSPEC TC_ACT_UNSPEC
110951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_POLICE_OK TC_ACT_OK
111951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
112951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_POLICE_SHOT TC_ACT_SHOT
113951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_POLICE_PIPE TC_ACT_PIPE
114951a39d68df598db08dfced8b4707755864a0492Ying Wang
115951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 limit;
116951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 burst;
117951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mtu;
118951a39d68df598db08dfced8b4707755864a0492Ying Wang struct tc_ratespec rate;
119951a39d68df598db08dfced8b4707755864a0492Ying Wang struct tc_ratespec peakrate;
120951a39d68df598db08dfced8b4707755864a0492Ying Wang int refcnt;
121951a39d68df598db08dfced8b4707755864a0492Ying Wang int bindcnt;
122951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 capab;
123951a39d68df598db08dfced8b4707755864a0492Ying Wang};
124951a39d68df598db08dfced8b4707755864a0492Ying Wang
125951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tcf_t
126951a39d68df598db08dfced8b4707755864a0492Ying Wang{
127951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 install;
128951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 lastuse;
129951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 expires;
130951a39d68df598db08dfced8b4707755864a0492Ying Wang};
131951a39d68df598db08dfced8b4707755864a0492Ying Wang
132951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_cnt
133951a39d68df598db08dfced8b4707755864a0492Ying Wang{
134951a39d68df598db08dfced8b4707755864a0492Ying Wang int refcnt;
135951a39d68df598db08dfced8b4707755864a0492Ying Wang int bindcnt;
136951a39d68df598db08dfced8b4707755864a0492Ying Wang};
137951a39d68df598db08dfced8b4707755864a0492Ying Wang
138951a39d68df598db08dfced8b4707755864a0492Ying Wang#define tc_gen   __u32 index;   __u32 capab;   int action;   int refcnt;   int bindcnt
139951a39d68df598db08dfced8b4707755864a0492Ying Wang
140951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
141951a39d68df598db08dfced8b4707755864a0492Ying Wang{
142951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_UNSPEC,
143951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_TBF,
144951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_RATE,
145951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_PEAKRATE,
146951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_AVRATE,
147951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_POLICE_RESULT,
148951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_POLICE_MAX
149951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_POLICE_RESULT TCA_POLICE_RESULT
150951a39d68df598db08dfced8b4707755864a0492Ying Wang};
151951a39d68df598db08dfced8b4707755864a0492Ying Wang
152951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
153951a39d68df598db08dfced8b4707755864a0492Ying Wang
154951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_HTID(h) ((h)&0xFFF00000)
155951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20)
156951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_HASH(h) (((h)>>12)&0xFF)
157951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_NODE(h) ((h)&0xFFF)
158951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_KEY(h) ((h)&0xFFFFF)
159951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_UNSPEC 0
160951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_ROOT (0xFFF00000)
161951a39d68df598db08dfced8b4707755864a0492Ying Wang
162951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
163951a39d68df598db08dfced8b4707755864a0492Ying Wang{
164951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_UNSPEC,
165951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_CLASSID,
166951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_HASH,
167951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_LINK,
168951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_DIVISOR,
169951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_SEL,
170951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_POLICE,
171951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_ACT,
172951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_INDEV,
173951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_PCNT,
174951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_U32_MARK,
175951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_U32_MAX
176951a39d68df598db08dfced8b4707755864a0492Ying Wang};
177951a39d68df598db08dfced8b4707755864a0492Ying Wang
178951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_U32_MAX (__TCA_U32_MAX - 1)
179951a39d68df598db08dfced8b4707755864a0492Ying Wang
180951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_u32_key
181951a39d68df598db08dfced8b4707755864a0492Ying Wang{
182951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mask;
183951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 val;
184951a39d68df598db08dfced8b4707755864a0492Ying Wang int off;
185951a39d68df598db08dfced8b4707755864a0492Ying Wang int offmask;
186951a39d68df598db08dfced8b4707755864a0492Ying Wang};
187951a39d68df598db08dfced8b4707755864a0492Ying Wang
188951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_u32_sel
189951a39d68df598db08dfced8b4707755864a0492Ying Wang{
190951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned char flags;
191951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned char offshift;
192951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned char nkeys;
193951a39d68df598db08dfced8b4707755864a0492Ying Wang
194951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 offmask;
195951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 off;
196951a39d68df598db08dfced8b4707755864a0492Ying Wang short offoff;
197951a39d68df598db08dfced8b4707755864a0492Ying Wang
198951a39d68df598db08dfced8b4707755864a0492Ying Wang short hoff;
199951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 hmask;
200951a39d68df598db08dfced8b4707755864a0492Ying Wang struct tc_u32_key keys[0];
201951a39d68df598db08dfced8b4707755864a0492Ying Wang};
202951a39d68df598db08dfced8b4707755864a0492Ying Wang
203951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_u32_mark
204951a39d68df598db08dfced8b4707755864a0492Ying Wang{
205951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 val;
206951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mask;
207951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 success;
208951a39d68df598db08dfced8b4707755864a0492Ying Wang};
209951a39d68df598db08dfced8b4707755864a0492Ying Wang
210951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_u32_pcnt
211951a39d68df598db08dfced8b4707755864a0492Ying Wang{
212951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 rcnt;
213951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 rhit;
214951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 kcnts[0];
215951a39d68df598db08dfced8b4707755864a0492Ying Wang};
216951a39d68df598db08dfced8b4707755864a0492Ying Wang
217951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_TERMINAL 1
218951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_OFFSET 2
219951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_VAROFFSET 4
220951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_EAT 8
221951a39d68df598db08dfced8b4707755864a0492Ying Wang
222951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TC_U32_MAXDEPTH 8
223951a39d68df598db08dfced8b4707755864a0492Ying Wang
224951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
225951a39d68df598db08dfced8b4707755864a0492Ying Wang{
226951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_UNSPEC,
227951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_CLASSID,
228951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_DST,
229951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_SRC,
230951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_PINFO,
231951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_POLICE,
232951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_RSVP_ACT,
233951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_RSVP_MAX
234951a39d68df598db08dfced8b4707755864a0492Ying Wang};
235951a39d68df598db08dfced8b4707755864a0492Ying Wang
236951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
237951a39d68df598db08dfced8b4707755864a0492Ying Wang
238951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_rsvp_gpi
239951a39d68df598db08dfced8b4707755864a0492Ying Wang{
240951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 key;
241951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 mask;
242951a39d68df598db08dfced8b4707755864a0492Ying Wang int offset;
243951a39d68df598db08dfced8b4707755864a0492Ying Wang};
244951a39d68df598db08dfced8b4707755864a0492Ying Wang
245951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tc_rsvp_pinfo
246951a39d68df598db08dfced8b4707755864a0492Ying Wang{
247951a39d68df598db08dfced8b4707755864a0492Ying Wang struct tc_rsvp_gpi dpi;
248951a39d68df598db08dfced8b4707755864a0492Ying Wang struct tc_rsvp_gpi spi;
249951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 protocol;
250951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 tunnelid;
251951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 tunnelhdr;
252951a39d68df598db08dfced8b4707755864a0492Ying Wang __u8 pad;
253951a39d68df598db08dfced8b4707755864a0492Ying Wang};
254951a39d68df598db08dfced8b4707755864a0492Ying Wang
255951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
256951a39d68df598db08dfced8b4707755864a0492Ying Wang{
257951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_UNSPEC,
258951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_CLASSID,
259951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_TO,
260951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_FROM,
261951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_IIF,
262951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_POLICE,
263951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_ROUTE4_ACT,
264951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_ROUTE4_MAX
265951a39d68df598db08dfced8b4707755864a0492Ying Wang};
266951a39d68df598db08dfced8b4707755864a0492Ying Wang
267951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
268951a39d68df598db08dfced8b4707755864a0492Ying Wang
269951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
270951a39d68df598db08dfced8b4707755864a0492Ying Wang{
271951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_FW_UNSPEC,
272951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_FW_CLASSID,
273951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_FW_POLICE,
274951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_FW_INDEV,
275951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_FW_ACT,
276951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_FW_MAX
277951a39d68df598db08dfced8b4707755864a0492Ying Wang};
278951a39d68df598db08dfced8b4707755864a0492Ying Wang
279951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_FW_MAX (__TCA_FW_MAX - 1)
280951a39d68df598db08dfced8b4707755864a0492Ying Wang
281951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
282951a39d68df598db08dfced8b4707755864a0492Ying Wang{
283951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_UNSPEC,
284951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_HASH,
285951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_MASK,
286951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_SHIFT,
287951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_FALL_THROUGH,
288951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_CLASSID,
289951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_POLICE,
290951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_TCINDEX_ACT,
291951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_TCINDEX_MAX
292951a39d68df598db08dfced8b4707755864a0492Ying Wang};
293951a39d68df598db08dfced8b4707755864a0492Ying Wang
294951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
295951a39d68df598db08dfced8b4707755864a0492Ying Wang
296951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
297951a39d68df598db08dfced8b4707755864a0492Ying Wang{
298951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_BASIC_UNSPEC,
299951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_BASIC_CLASSID,
300951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_BASIC_EMATCHES,
301951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_BASIC_ACT,
302951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_BASIC_POLICE,
303951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_BASIC_MAX
304951a39d68df598db08dfced8b4707755864a0492Ying Wang};
305951a39d68df598db08dfced8b4707755864a0492Ying Wang
306951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
307951a39d68df598db08dfced8b4707755864a0492Ying Wang
308951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tcf_ematch_tree_hdr
309951a39d68df598db08dfced8b4707755864a0492Ying Wang{
310951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 nmatches;
311951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 progid;
312951a39d68df598db08dfced8b4707755864a0492Ying Wang};
313951a39d68df598db08dfced8b4707755864a0492Ying Wang
314951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
315951a39d68df598db08dfced8b4707755864a0492Ying Wang{
316951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_EMATCH_TREE_UNSPEC,
317951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_EMATCH_TREE_HDR,
318951a39d68df598db08dfced8b4707755864a0492Ying Wang TCA_EMATCH_TREE_LIST,
319951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCA_EMATCH_TREE_MAX
320951a39d68df598db08dfced8b4707755864a0492Ying Wang};
321951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
322951a39d68df598db08dfced8b4707755864a0492Ying Wang
323951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct tcf_ematch_hdr
324951a39d68df598db08dfced8b4707755864a0492Ying Wang{
325951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 matchid;
326951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 kind;
327951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 flags;
328951a39d68df598db08dfced8b4707755864a0492Ying Wang __u16 pad;
329951a39d68df598db08dfced8b4707755864a0492Ying Wang};
330951a39d68df598db08dfced8b4707755864a0492Ying Wang
331951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_REL_END 0
332951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_REL_AND (1<<0)
333951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_REL_OR (1<<1)
334951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_INVERT (1<<2)
335951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_SIMPLE (1<<3)
336951a39d68df598db08dfced8b4707755864a0492Ying Wang
337951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_REL_MASK 3
338951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
339951a39d68df598db08dfced8b4707755864a0492Ying Wang
340951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
341951a39d68df598db08dfced8b4707755864a0492Ying Wang{
342951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_LAYER_LINK,
343951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_LAYER_NETWORK,
344951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_LAYER_TRANSPORT,
345951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCF_LAYER_MAX
346951a39d68df598db08dfced8b4707755864a0492Ying Wang};
347951a39d68df598db08dfced8b4707755864a0492Ying Wang#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
348951a39d68df598db08dfced8b4707755864a0492Ying Wang
349951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
350951a39d68df598db08dfced8b4707755864a0492Ying Wang{
351951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_CONTAINER,
352951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_CMP,
353951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_NBYTE,
354951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_U32,
355951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_META,
356951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_TEXT,
357951a39d68df598db08dfced8b4707755864a0492Ying Wang __TCF_EM_MAX
358951a39d68df598db08dfced8b4707755864a0492Ying Wang};
359951a39d68df598db08dfced8b4707755864a0492Ying Wang
360951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
361951a39d68df598db08dfced8b4707755864a0492Ying Wang{
362951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_PROG_TC
363951a39d68df598db08dfced8b4707755864a0492Ying Wang};
364951a39d68df598db08dfced8b4707755864a0492Ying Wang
365951a39d68df598db08dfced8b4707755864a0492Ying Wangenum
366951a39d68df598db08dfced8b4707755864a0492Ying Wang{
367951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_OPND_EQ,
368951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_OPND_GT,
369951a39d68df598db08dfced8b4707755864a0492Ying Wang TCF_EM_OPND_LT
370951a39d68df598db08dfced8b4707755864a0492Ying Wang};
371951a39d68df598db08dfced8b4707755864a0492Ying Wang
372951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
373