xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/pkt_cls.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __LINUX_PKT_CLS_H
8*8d67ca89SAndroid Build Coastguard Worker #define __LINUX_PKT_CLS_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/pkt_sched.h>
11*8d67ca89SAndroid Build Coastguard Worker #define TC_COOKIE_MAX_SIZE 16
12*8d67ca89SAndroid Build Coastguard Worker enum {
13*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_UNSPEC,
14*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_KIND,
15*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_OPTIONS,
16*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_INDEX,
17*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_STATS,
18*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_PAD,
19*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_COOKIE,
20*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_FLAGS,
21*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_HW_STATS,
22*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_USED_HW_STATS,
23*8d67ca89SAndroid Build Coastguard Worker   TCA_ACT_IN_HW_COUNT,
24*8d67ca89SAndroid Build Coastguard Worker   __TCA_ACT_MAX
25*8d67ca89SAndroid Build Coastguard Worker };
26*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
27*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
28*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
29*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
30*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
31*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_MAX __TCA_ACT_MAX
32*8d67ca89SAndroid Build Coastguard Worker #define TCA_OLD_COMPAT (TCA_ACT_MAX + 1)
33*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_MAX_PRIO 32
34*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_BIND 1
35*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_NOBIND 0
36*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_UNBIND 1
37*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_NOUNBIND 0
38*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_REPLACE 1
39*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_NOREPLACE 0
40*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_UNSPEC (- 1)
41*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_OK 0
42*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_RECLASSIFY 1
43*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_SHOT 2
44*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_PIPE 3
45*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_STOLEN 4
46*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_QUEUED 5
47*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_REPEAT 6
48*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_REDIRECT 7
49*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_TRAP 8
50*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_VALUE_MAX TC_ACT_TRAP
51*8d67ca89SAndroid Build Coastguard Worker #define __TC_ACT_EXT_SHIFT 28
52*8d67ca89SAndroid Build Coastguard Worker #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
53*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
54*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK))
55*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_EXT_CMP(combined,opcode) (TC_ACT_EXT_OPCODE(combined) == opcode)
56*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_JUMP __TC_ACT_EXT(1)
57*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
58*8d67ca89SAndroid Build Coastguard Worker #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
59*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_GACT 5
60*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_IPT 6
61*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_PEDIT 7
62*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_MIRRED 8
63*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_NAT 9
64*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_XT 10
65*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_SKBEDIT 11
66*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_VLAN 12
67*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_BPF 13
68*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_CONNMARK 14
69*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_SKBMOD 15
70*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_CSUM 16
71*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_TUNNEL_KEY 17
72*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_SIMP 22
73*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_IFE 25
74*8d67ca89SAndroid Build Coastguard Worker #define TCA_ACT_SAMPLE 26
75*8d67ca89SAndroid Build Coastguard Worker enum tca_id {
76*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_UNSPEC = 0,
77*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_POLICE = 1,
78*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_GACT = TCA_ACT_GACT,
79*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_IPT = TCA_ACT_IPT,
80*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_PEDIT = TCA_ACT_PEDIT,
81*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_MIRRED = TCA_ACT_MIRRED,
82*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_NAT = TCA_ACT_NAT,
83*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_XT = TCA_ACT_XT,
84*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT,
85*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_VLAN = TCA_ACT_VLAN,
86*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_BPF = TCA_ACT_BPF,
87*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_CONNMARK = TCA_ACT_CONNMARK,
88*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_SKBMOD = TCA_ACT_SKBMOD,
89*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_CSUM = TCA_ACT_CSUM,
90*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY,
91*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_SIMP = TCA_ACT_SIMP,
92*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_IFE = TCA_ACT_IFE,
93*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
94*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_CTINFO,
95*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_MPLS,
96*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_CT,
97*8d67ca89SAndroid Build Coastguard Worker   TCA_ID_GATE,
98*8d67ca89SAndroid Build Coastguard Worker   __TCA_ID_MAX = 255
99*8d67ca89SAndroid Build Coastguard Worker };
100*8d67ca89SAndroid Build Coastguard Worker #define TCA_ID_MAX __TCA_ID_MAX
101*8d67ca89SAndroid Build Coastguard Worker struct tc_police {
102*8d67ca89SAndroid Build Coastguard Worker   __u32 index;
103*8d67ca89SAndroid Build Coastguard Worker   int action;
104*8d67ca89SAndroid Build Coastguard Worker #define TC_POLICE_UNSPEC TC_ACT_UNSPEC
105*8d67ca89SAndroid Build Coastguard Worker #define TC_POLICE_OK TC_ACT_OK
106*8d67ca89SAndroid Build Coastguard Worker #define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
107*8d67ca89SAndroid Build Coastguard Worker #define TC_POLICE_SHOT TC_ACT_SHOT
108*8d67ca89SAndroid Build Coastguard Worker #define TC_POLICE_PIPE TC_ACT_PIPE
109*8d67ca89SAndroid Build Coastguard Worker   __u32 limit;
110*8d67ca89SAndroid Build Coastguard Worker   __u32 burst;
111*8d67ca89SAndroid Build Coastguard Worker   __u32 mtu;
112*8d67ca89SAndroid Build Coastguard Worker   struct tc_ratespec rate;
113*8d67ca89SAndroid Build Coastguard Worker   struct tc_ratespec peakrate;
114*8d67ca89SAndroid Build Coastguard Worker   int refcnt;
115*8d67ca89SAndroid Build Coastguard Worker   int bindcnt;
116*8d67ca89SAndroid Build Coastguard Worker   __u32 capab;
117*8d67ca89SAndroid Build Coastguard Worker };
118*8d67ca89SAndroid Build Coastguard Worker struct tcf_t {
119*8d67ca89SAndroid Build Coastguard Worker   __u64 install;
120*8d67ca89SAndroid Build Coastguard Worker   __u64 lastuse;
121*8d67ca89SAndroid Build Coastguard Worker   __u64 expires;
122*8d67ca89SAndroid Build Coastguard Worker   __u64 firstuse;
123*8d67ca89SAndroid Build Coastguard Worker };
124*8d67ca89SAndroid Build Coastguard Worker struct tc_cnt {
125*8d67ca89SAndroid Build Coastguard Worker   int refcnt;
126*8d67ca89SAndroid Build Coastguard Worker   int bindcnt;
127*8d67ca89SAndroid Build Coastguard Worker };
128*8d67ca89SAndroid Build Coastguard Worker #define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt
129*8d67ca89SAndroid Build Coastguard Worker enum {
130*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_UNSPEC,
131*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_TBF,
132*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_RATE,
133*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_PEAKRATE,
134*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_AVRATE,
135*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_RESULT,
136*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_TM,
137*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_PAD,
138*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_RATE64,
139*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_PEAKRATE64,
140*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_PKTRATE64,
141*8d67ca89SAndroid Build Coastguard Worker   TCA_POLICE_PKTBURST64,
142*8d67ca89SAndroid Build Coastguard Worker   __TCA_POLICE_MAX
143*8d67ca89SAndroid Build Coastguard Worker #define TCA_POLICE_RESULT TCA_POLICE_RESULT
144*8d67ca89SAndroid Build Coastguard Worker };
145*8d67ca89SAndroid Build Coastguard Worker #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
146*8d67ca89SAndroid Build Coastguard Worker #define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
147*8d67ca89SAndroid Build Coastguard Worker #define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
148*8d67ca89SAndroid Build Coastguard Worker #define TCA_CLS_FLAGS_IN_HW (1 << 2)
149*8d67ca89SAndroid Build Coastguard Worker #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3)
150*8d67ca89SAndroid Build Coastguard Worker #define TCA_CLS_FLAGS_VERBOSE (1 << 4)
151*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_HTID(h) ((h) & 0xFFF00000)
152*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20)
153*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_HASH(h) (((h) >> 12) & 0xFF)
154*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_NODE(h) ((h) & 0xFFF)
155*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_KEY(h) ((h) & 0xFFFFF)
156*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_UNSPEC 0
157*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_ROOT (0xFFF00000)
158*8d67ca89SAndroid Build Coastguard Worker enum {
159*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_UNSPEC,
160*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_CLASSID,
161*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_HASH,
162*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_LINK,
163*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_DIVISOR,
164*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_SEL,
165*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_POLICE,
166*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_ACT,
167*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_INDEV,
168*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_PCNT,
169*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_MARK,
170*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_FLAGS,
171*8d67ca89SAndroid Build Coastguard Worker   TCA_U32_PAD,
172*8d67ca89SAndroid Build Coastguard Worker   __TCA_U32_MAX
173*8d67ca89SAndroid Build Coastguard Worker };
174*8d67ca89SAndroid Build Coastguard Worker #define TCA_U32_MAX (__TCA_U32_MAX - 1)
175*8d67ca89SAndroid Build Coastguard Worker struct tc_u32_key {
176*8d67ca89SAndroid Build Coastguard Worker   __be32 mask;
177*8d67ca89SAndroid Build Coastguard Worker   __be32 val;
178*8d67ca89SAndroid Build Coastguard Worker   int off;
179*8d67ca89SAndroid Build Coastguard Worker   int offmask;
180*8d67ca89SAndroid Build Coastguard Worker };
181*8d67ca89SAndroid Build Coastguard Worker struct tc_u32_sel {
182*8d67ca89SAndroid Build Coastguard Worker   unsigned char flags;
183*8d67ca89SAndroid Build Coastguard Worker   unsigned char offshift;
184*8d67ca89SAndroid Build Coastguard Worker   unsigned char nkeys;
185*8d67ca89SAndroid Build Coastguard Worker   __be16 offmask;
186*8d67ca89SAndroid Build Coastguard Worker   __u16 off;
187*8d67ca89SAndroid Build Coastguard Worker   short offoff;
188*8d67ca89SAndroid Build Coastguard Worker   short hoff;
189*8d67ca89SAndroid Build Coastguard Worker   __be32 hmask;
190*8d67ca89SAndroid Build Coastguard Worker   struct tc_u32_key keys[];
191*8d67ca89SAndroid Build Coastguard Worker };
192*8d67ca89SAndroid Build Coastguard Worker struct tc_u32_mark {
193*8d67ca89SAndroid Build Coastguard Worker   __u32 val;
194*8d67ca89SAndroid Build Coastguard Worker   __u32 mask;
195*8d67ca89SAndroid Build Coastguard Worker   __u32 success;
196*8d67ca89SAndroid Build Coastguard Worker };
197*8d67ca89SAndroid Build Coastguard Worker struct tc_u32_pcnt {
198*8d67ca89SAndroid Build Coastguard Worker   __u64 rcnt;
199*8d67ca89SAndroid Build Coastguard Worker   __u64 rhit;
200*8d67ca89SAndroid Build Coastguard Worker   __u64 kcnts[];
201*8d67ca89SAndroid Build Coastguard Worker };
202*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_TERMINAL 1
203*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_OFFSET 2
204*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_VAROFFSET 4
205*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_EAT 8
206*8d67ca89SAndroid Build Coastguard Worker #define TC_U32_MAXDEPTH 8
207*8d67ca89SAndroid Build Coastguard Worker enum {
208*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_UNSPEC,
209*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_CLASSID,
210*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_TO,
211*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_FROM,
212*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_IIF,
213*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_POLICE,
214*8d67ca89SAndroid Build Coastguard Worker   TCA_ROUTE4_ACT,
215*8d67ca89SAndroid Build Coastguard Worker   __TCA_ROUTE4_MAX
216*8d67ca89SAndroid Build Coastguard Worker };
217*8d67ca89SAndroid Build Coastguard Worker #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
218*8d67ca89SAndroid Build Coastguard Worker enum {
219*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_UNSPEC,
220*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_CLASSID,
221*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_POLICE,
222*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_INDEV,
223*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_ACT,
224*8d67ca89SAndroid Build Coastguard Worker   TCA_FW_MASK,
225*8d67ca89SAndroid Build Coastguard Worker   __TCA_FW_MAX
226*8d67ca89SAndroid Build Coastguard Worker };
227*8d67ca89SAndroid Build Coastguard Worker #define TCA_FW_MAX (__TCA_FW_MAX - 1)
228*8d67ca89SAndroid Build Coastguard Worker enum {
229*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_SRC,
230*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_DST,
231*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_PROTO,
232*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_PROTO_SRC,
233*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_PROTO_DST,
234*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_IIF,
235*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_PRIORITY,
236*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_MARK,
237*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_NFCT,
238*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_NFCT_SRC,
239*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_NFCT_DST,
240*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_NFCT_PROTO_SRC,
241*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_NFCT_PROTO_DST,
242*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_RTCLASSID,
243*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_SKUID,
244*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_SKGID,
245*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_VLAN_TAG,
246*8d67ca89SAndroid Build Coastguard Worker   FLOW_KEY_RXHASH,
247*8d67ca89SAndroid Build Coastguard Worker   __FLOW_KEY_MAX,
248*8d67ca89SAndroid Build Coastguard Worker };
249*8d67ca89SAndroid Build Coastguard Worker #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
250*8d67ca89SAndroid Build Coastguard Worker enum {
251*8d67ca89SAndroid Build Coastguard Worker   FLOW_MODE_MAP,
252*8d67ca89SAndroid Build Coastguard Worker   FLOW_MODE_HASH,
253*8d67ca89SAndroid Build Coastguard Worker };
254*8d67ca89SAndroid Build Coastguard Worker enum {
255*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_UNSPEC,
256*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_KEYS,
257*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_MODE,
258*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_BASECLASS,
259*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_RSHIFT,
260*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_ADDEND,
261*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_MASK,
262*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_XOR,
263*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_DIVISOR,
264*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_ACT,
265*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_POLICE,
266*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_EMATCHES,
267*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOW_PERTURB,
268*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOW_MAX
269*8d67ca89SAndroid Build Coastguard Worker };
270*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
271*8d67ca89SAndroid Build Coastguard Worker struct tc_basic_pcnt {
272*8d67ca89SAndroid Build Coastguard Worker   __u64 rcnt;
273*8d67ca89SAndroid Build Coastguard Worker   __u64 rhit;
274*8d67ca89SAndroid Build Coastguard Worker };
275*8d67ca89SAndroid Build Coastguard Worker enum {
276*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_UNSPEC,
277*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_CLASSID,
278*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_EMATCHES,
279*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_ACT,
280*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_POLICE,
281*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_PCNT,
282*8d67ca89SAndroid Build Coastguard Worker   TCA_BASIC_PAD,
283*8d67ca89SAndroid Build Coastguard Worker   __TCA_BASIC_MAX
284*8d67ca89SAndroid Build Coastguard Worker };
285*8d67ca89SAndroid Build Coastguard Worker #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
286*8d67ca89SAndroid Build Coastguard Worker enum {
287*8d67ca89SAndroid Build Coastguard Worker   TCA_CGROUP_UNSPEC,
288*8d67ca89SAndroid Build Coastguard Worker   TCA_CGROUP_ACT,
289*8d67ca89SAndroid Build Coastguard Worker   TCA_CGROUP_POLICE,
290*8d67ca89SAndroid Build Coastguard Worker   TCA_CGROUP_EMATCHES,
291*8d67ca89SAndroid Build Coastguard Worker   __TCA_CGROUP_MAX,
292*8d67ca89SAndroid Build Coastguard Worker };
293*8d67ca89SAndroid Build Coastguard Worker #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
294*8d67ca89SAndroid Build Coastguard Worker #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
295*8d67ca89SAndroid Build Coastguard Worker enum {
296*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_UNSPEC,
297*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_ACT,
298*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_POLICE,
299*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_CLASSID,
300*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_OPS_LEN,
301*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_OPS,
302*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_FD,
303*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_NAME,
304*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_FLAGS,
305*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_FLAGS_GEN,
306*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_TAG,
307*8d67ca89SAndroid Build Coastguard Worker   TCA_BPF_ID,
308*8d67ca89SAndroid Build Coastguard Worker   __TCA_BPF_MAX,
309*8d67ca89SAndroid Build Coastguard Worker };
310*8d67ca89SAndroid Build Coastguard Worker #define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
311*8d67ca89SAndroid Build Coastguard Worker enum {
312*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_UNSPEC,
313*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_CLASSID,
314*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_INDEV,
315*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_ACT,
316*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ETH_DST,
317*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ETH_DST_MASK,
318*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ETH_SRC,
319*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ETH_SRC_MASK,
320*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ETH_TYPE,
321*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IP_PROTO,
322*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV4_SRC,
323*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV4_SRC_MASK,
324*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV4_DST,
325*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV4_DST_MASK,
326*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV6_SRC,
327*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV6_SRC_MASK,
328*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV6_DST,
329*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IPV6_DST_MASK,
330*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_SRC,
331*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_DST,
332*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_UDP_SRC,
333*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_UDP_DST,
334*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_FLAGS,
335*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_VLAN_ID,
336*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_VLAN_PRIO,
337*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_VLAN_ETH_TYPE,
338*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_KEY_ID,
339*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV4_SRC,
340*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
341*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV4_DST,
342*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
343*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV6_SRC,
344*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
345*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV6_DST,
346*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
347*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_SRC_MASK,
348*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_DST_MASK,
349*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_UDP_SRC_MASK,
350*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_UDP_DST_MASK,
351*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SCTP_SRC_MASK,
352*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SCTP_DST_MASK,
353*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SCTP_SRC,
354*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SCTP_DST,
355*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
356*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
357*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
358*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
359*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS,
360*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_MASK,
361*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV4_CODE,
362*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
363*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV4_TYPE,
364*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
365*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV6_CODE,
366*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
367*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV6_TYPE,
368*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
369*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_SIP,
370*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_SIP_MASK,
371*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_TIP,
372*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_TIP_MASK,
373*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_OP,
374*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_OP_MASK,
375*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_SHA,
376*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_SHA_MASK,
377*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_THA,
378*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ARP_THA_MASK,
379*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_TTL,
380*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_BOS,
381*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_TC,
382*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_LABEL,
383*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_FLAGS,
384*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_TCP_FLAGS_MASK,
385*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IP_TOS,
386*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IP_TOS_MASK,
387*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IP_TTL,
388*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_IP_TTL_MASK,
389*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CVLAN_ID,
390*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CVLAN_PRIO,
391*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CVLAN_ETH_TYPE,
392*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IP_TOS,
393*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IP_TOS_MASK,
394*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IP_TTL,
395*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_IP_TTL_MASK,
396*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS,
397*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_MASK,
398*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_IN_HW_COUNT,
399*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PORT_SRC_MIN,
400*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PORT_SRC_MAX,
401*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PORT_DST_MIN,
402*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PORT_DST_MAX,
403*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_STATE,
404*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_STATE_MASK,
405*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_ZONE,
406*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_ZONE_MASK,
407*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_MARK,
408*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_MARK_MASK,
409*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_LABELS,
410*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_LABELS_MASK,
411*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPTS,
412*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_HASH,
413*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_HASH_MASK,
414*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_NUM_OF_VLANS,
415*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PPPOE_SID,
416*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_PPP_PROTO,
417*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_L2TPV3_SID,
418*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_L2_MISS,
419*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CFM,
420*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SPI,
421*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_SPI_MASK,
422*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_FLAGS,
423*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_FLAGS_MASK,
424*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_MAX,
425*8d67ca89SAndroid Build Coastguard Worker };
426*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
427*8d67ca89SAndroid Build Coastguard Worker enum {
428*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_NEW = 1 << 0,
429*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 1 << 1,
430*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_RELATED = 1 << 2,
431*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 1 << 3,
432*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_INVALID = 1 << 4,
433*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CT_FLAGS_REPLY = 1 << 5,
434*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_CT_FLAGS_MAX,
435*8d67ca89SAndroid Build Coastguard Worker };
436*8d67ca89SAndroid Build Coastguard Worker enum {
437*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
438*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_GENEVE,
439*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_VXLAN,
440*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,
441*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_GTP,
442*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPTS_PFCP,
443*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPTS_MAX,
444*8d67ca89SAndroid Build Coastguard Worker };
445*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
446*8d67ca89SAndroid Build Coastguard Worker enum {
447*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
448*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS,
449*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE,
450*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA,
451*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
452*8d67ca89SAndroid Build Coastguard Worker };
453*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
454*8d67ca89SAndroid Build Coastguard Worker enum {
455*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
456*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP,
457*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
458*8d67ca89SAndroid Build Coastguard Worker };
459*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
460*8d67ca89SAndroid Build Coastguard Worker enum {
461*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
462*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER,
463*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX,
464*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR,
465*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID,
466*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
467*8d67ca89SAndroid Build Coastguard Worker };
468*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
469*8d67ca89SAndroid Build Coastguard Worker enum {
470*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC,
471*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE,
472*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_GTP_QFI,
473*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPT_GTP_MAX,
474*8d67ca89SAndroid Build Coastguard Worker };
475*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
476*8d67ca89SAndroid Build Coastguard Worker enum {
477*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC,
478*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE,
479*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID,
480*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX,
481*8d67ca89SAndroid Build Coastguard Worker };
482*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX (__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1)
483*8d67ca89SAndroid Build Coastguard Worker enum {
484*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
485*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPTS_LSE,
486*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
487*8d67ca89SAndroid Build Coastguard Worker };
488*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_MPLS_OPTS_MAX (__TCA_FLOWER_KEY_MPLS_OPTS_MAX - 1)
489*8d67ca89SAndroid Build Coastguard Worker enum {
490*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC,
491*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH,
492*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL,
493*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS,
494*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_TC,
495*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL,
496*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX,
497*8d67ca89SAndroid Build Coastguard Worker };
498*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX (__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX - 1)
499*8d67ca89SAndroid Build Coastguard Worker enum {
500*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
501*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
502*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_TUNNEL_CSUM = (1 << 2),
503*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_TUNNEL_DONT_FRAGMENT = (1 << 3),
504*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_TUNNEL_OAM = (1 << 4),
505*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_FLAGS_TUNNEL_CRIT_OPT = (1 << 5),
506*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_FLAGS_MAX,
507*8d67ca89SAndroid Build Coastguard Worker };
508*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_FLAGS_MAX (__TCA_FLOWER_KEY_FLAGS_MAX - 1)
509*8d67ca89SAndroid Build Coastguard Worker enum {
510*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CFM_OPT_UNSPEC,
511*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CFM_MD_LEVEL,
512*8d67ca89SAndroid Build Coastguard Worker   TCA_FLOWER_KEY_CFM_OPCODE,
513*8d67ca89SAndroid Build Coastguard Worker   __TCA_FLOWER_KEY_CFM_OPT_MAX,
514*8d67ca89SAndroid Build Coastguard Worker };
515*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_KEY_CFM_OPT_MAX (__TCA_FLOWER_KEY_CFM_OPT_MAX - 1)
516*8d67ca89SAndroid Build Coastguard Worker #define TCA_FLOWER_MASK_FLAGS_RANGE (1 << 0)
517*8d67ca89SAndroid Build Coastguard Worker struct tc_matchall_pcnt {
518*8d67ca89SAndroid Build Coastguard Worker   __u64 rhit;
519*8d67ca89SAndroid Build Coastguard Worker };
520*8d67ca89SAndroid Build Coastguard Worker enum {
521*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_UNSPEC,
522*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_CLASSID,
523*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_ACT,
524*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_FLAGS,
525*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_PCNT,
526*8d67ca89SAndroid Build Coastguard Worker   TCA_MATCHALL_PAD,
527*8d67ca89SAndroid Build Coastguard Worker   __TCA_MATCHALL_MAX,
528*8d67ca89SAndroid Build Coastguard Worker };
529*8d67ca89SAndroid Build Coastguard Worker #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
530*8d67ca89SAndroid Build Coastguard Worker struct tcf_ematch_tree_hdr {
531*8d67ca89SAndroid Build Coastguard Worker   __u16 nmatches;
532*8d67ca89SAndroid Build Coastguard Worker   __u16 progid;
533*8d67ca89SAndroid Build Coastguard Worker };
534*8d67ca89SAndroid Build Coastguard Worker enum {
535*8d67ca89SAndroid Build Coastguard Worker   TCA_EMATCH_TREE_UNSPEC,
536*8d67ca89SAndroid Build Coastguard Worker   TCA_EMATCH_TREE_HDR,
537*8d67ca89SAndroid Build Coastguard Worker   TCA_EMATCH_TREE_LIST,
538*8d67ca89SAndroid Build Coastguard Worker   __TCA_EMATCH_TREE_MAX
539*8d67ca89SAndroid Build Coastguard Worker };
540*8d67ca89SAndroid Build Coastguard Worker #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
541*8d67ca89SAndroid Build Coastguard Worker struct tcf_ematch_hdr {
542*8d67ca89SAndroid Build Coastguard Worker   __u16 matchid;
543*8d67ca89SAndroid Build Coastguard Worker   __u16 kind;
544*8d67ca89SAndroid Build Coastguard Worker   __u16 flags;
545*8d67ca89SAndroid Build Coastguard Worker   __u16 pad;
546*8d67ca89SAndroid Build Coastguard Worker };
547*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_REL_END 0
548*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_REL_AND (1 << 0)
549*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_REL_OR (1 << 1)
550*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_INVERT (1 << 2)
551*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_SIMPLE (1 << 3)
552*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_REL_MASK 3
553*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
554*8d67ca89SAndroid Build Coastguard Worker enum {
555*8d67ca89SAndroid Build Coastguard Worker   TCF_LAYER_LINK,
556*8d67ca89SAndroid Build Coastguard Worker   TCF_LAYER_NETWORK,
557*8d67ca89SAndroid Build Coastguard Worker   TCF_LAYER_TRANSPORT,
558*8d67ca89SAndroid Build Coastguard Worker   __TCF_LAYER_MAX
559*8d67ca89SAndroid Build Coastguard Worker };
560*8d67ca89SAndroid Build Coastguard Worker #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
561*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_CONTAINER 0
562*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_CMP 1
563*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_NBYTE 2
564*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_U32 3
565*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_META 4
566*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_TEXT 5
567*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_VLAN 6
568*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_CANID 7
569*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_IPSET 8
570*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_IPT 9
571*8d67ca89SAndroid Build Coastguard Worker #define TCF_EM_MAX 9
572*8d67ca89SAndroid Build Coastguard Worker enum {
573*8d67ca89SAndroid Build Coastguard Worker   TCF_EM_PROG_TC
574*8d67ca89SAndroid Build Coastguard Worker };
575*8d67ca89SAndroid Build Coastguard Worker enum {
576*8d67ca89SAndroid Build Coastguard Worker   TCF_EM_OPND_EQ,
577*8d67ca89SAndroid Build Coastguard Worker   TCF_EM_OPND_GT,
578*8d67ca89SAndroid Build Coastguard Worker   TCF_EM_OPND_LT
579*8d67ca89SAndroid Build Coastguard Worker };
580*8d67ca89SAndroid Build Coastguard Worker #endif
581