• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI__LINUX_OPENVSWITCH_H
20 #define _UAPI__LINUX_OPENVSWITCH_H 1
21 #include <linux/types.h>
22 #include <linux/if_ether.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 struct ovs_header {
25   int dp_ifindex;
26 };
27 #define OVS_DATAPATH_FAMILY "ovs_datapath"
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define OVS_DATAPATH_MCGROUP "ovs_datapath"
30 #define OVS_DATAPATH_VERSION 2
31 #define OVS_DP_VER_FEATURES 2
32 enum ovs_datapath_cmd {
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34   OVS_DP_CMD_UNSPEC,
35   OVS_DP_CMD_NEW,
36   OVS_DP_CMD_DEL,
37   OVS_DP_CMD_GET,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   OVS_DP_CMD_SET
40 };
41 enum ovs_datapath_attr {
42   OVS_DP_ATTR_UNSPEC,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44   OVS_DP_ATTR_NAME,
45   OVS_DP_ATTR_UPCALL_PID,
46   OVS_DP_ATTR_STATS,
47   OVS_DP_ATTR_MEGAFLOW_STATS,
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49   OVS_DP_ATTR_USER_FEATURES,
50   OVS_DP_ATTR_PAD,
51   __OVS_DP_ATTR_MAX
52 };
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
55 struct ovs_dp_stats {
56   __u64 n_hit;
57   __u64 n_missed;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   __u64 n_lost;
60   __u64 n_flows;
61 };
62 struct ovs_dp_megaflow_stats {
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   __u64 n_mask_hit;
65   __u32 n_masks;
66   __u32 pad0;
67   __u64 pad1;
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69   __u64 pad2;
70 };
71 struct ovs_vport_stats {
72   __u64 rx_packets;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74   __u64 tx_packets;
75   __u64 rx_bytes;
76   __u64 tx_bytes;
77   __u64 rx_errors;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   __u64 tx_errors;
80   __u64 rx_dropped;
81   __u64 tx_dropped;
82 };
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 #define OVS_DP_F_UNALIGNED (1 << 0)
85 #define OVS_DP_F_VPORT_PIDS (1 << 1)
86 #define OVSP_LOCAL ((__u32) 0)
87 #define OVS_PACKET_FAMILY "ovs_packet"
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define OVS_PACKET_VERSION 0x1
90 enum ovs_packet_cmd {
91   OVS_PACKET_CMD_UNSPEC,
92   OVS_PACKET_CMD_MISS,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   OVS_PACKET_CMD_ACTION,
95   OVS_PACKET_CMD_EXECUTE
96 };
97 enum ovs_packet_attr {
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   OVS_PACKET_ATTR_UNSPEC,
100   OVS_PACKET_ATTR_PACKET,
101   OVS_PACKET_ATTR_KEY,
102   OVS_PACKET_ATTR_ACTIONS,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   OVS_PACKET_ATTR_USERDATA,
105   OVS_PACKET_ATTR_EGRESS_TUN_KEY,
106   OVS_PACKET_ATTR_UNUSED1,
107   OVS_PACKET_ATTR_UNUSED2,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109   OVS_PACKET_ATTR_PROBE,
110   OVS_PACKET_ATTR_MRU,
111   OVS_PACKET_ATTR_LEN,
112   __OVS_PACKET_ATTR_MAX
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 };
115 #define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1)
116 #define OVS_VPORT_FAMILY "ovs_vport"
117 #define OVS_VPORT_MCGROUP "ovs_vport"
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define OVS_VPORT_VERSION 0x1
120 enum ovs_vport_cmd {
121   OVS_VPORT_CMD_UNSPEC,
122   OVS_VPORT_CMD_NEW,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   OVS_VPORT_CMD_DEL,
125   OVS_VPORT_CMD_GET,
126   OVS_VPORT_CMD_SET
127 };
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 enum ovs_vport_type {
130   OVS_VPORT_TYPE_UNSPEC,
131   OVS_VPORT_TYPE_NETDEV,
132   OVS_VPORT_TYPE_INTERNAL,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   OVS_VPORT_TYPE_GRE,
135   OVS_VPORT_TYPE_VXLAN,
136   OVS_VPORT_TYPE_GENEVE,
137   __OVS_VPORT_TYPE_MAX
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 };
140 #define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1)
141 enum ovs_vport_attr {
142   OVS_VPORT_ATTR_UNSPEC,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   OVS_VPORT_ATTR_PORT_NO,
145   OVS_VPORT_ATTR_TYPE,
146   OVS_VPORT_ATTR_NAME,
147   OVS_VPORT_ATTR_OPTIONS,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   OVS_VPORT_ATTR_UPCALL_PID,
150   OVS_VPORT_ATTR_STATS,
151   OVS_VPORT_ATTR_PAD,
152   __OVS_VPORT_ATTR_MAX
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 };
155 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
156 enum {
157   OVS_VXLAN_EXT_UNSPEC,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   OVS_VXLAN_EXT_GBP,
160   __OVS_VXLAN_EXT_MAX,
161 };
162 #define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1)
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 enum {
165   OVS_TUNNEL_ATTR_UNSPEC,
166   OVS_TUNNEL_ATTR_DST_PORT,
167   OVS_TUNNEL_ATTR_EXTENSION,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   __OVS_TUNNEL_ATTR_MAX
170 };
171 #define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1)
172 #define OVS_FLOW_FAMILY "ovs_flow"
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 #define OVS_FLOW_MCGROUP "ovs_flow"
175 #define OVS_FLOW_VERSION 0x1
176 enum ovs_flow_cmd {
177   OVS_FLOW_CMD_UNSPEC,
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   OVS_FLOW_CMD_NEW,
180   OVS_FLOW_CMD_DEL,
181   OVS_FLOW_CMD_GET,
182   OVS_FLOW_CMD_SET
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184 };
185 struct ovs_flow_stats {
186   __u64 n_packets;
187   __u64 n_bytes;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 };
190 enum ovs_key_attr {
191   OVS_KEY_ATTR_UNSPEC,
192   OVS_KEY_ATTR_ENCAP,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   OVS_KEY_ATTR_PRIORITY,
195   OVS_KEY_ATTR_IN_PORT,
196   OVS_KEY_ATTR_ETHERNET,
197   OVS_KEY_ATTR_VLAN,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   OVS_KEY_ATTR_ETHERTYPE,
200   OVS_KEY_ATTR_IPV4,
201   OVS_KEY_ATTR_IPV6,
202   OVS_KEY_ATTR_TCP,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   OVS_KEY_ATTR_UDP,
205   OVS_KEY_ATTR_ICMP,
206   OVS_KEY_ATTR_ICMPV6,
207   OVS_KEY_ATTR_ARP,
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   OVS_KEY_ATTR_ND,
210   OVS_KEY_ATTR_SKB_MARK,
211   OVS_KEY_ATTR_TUNNEL,
212   OVS_KEY_ATTR_SCTP,
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214   OVS_KEY_ATTR_TCP_FLAGS,
215   OVS_KEY_ATTR_DP_HASH,
216   OVS_KEY_ATTR_RECIRC_ID,
217   OVS_KEY_ATTR_MPLS,
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219   OVS_KEY_ATTR_CT_STATE,
220   OVS_KEY_ATTR_CT_ZONE,
221   OVS_KEY_ATTR_CT_MARK,
222   OVS_KEY_ATTR_CT_LABELS,
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224   __OVS_KEY_ATTR_MAX
225 };
226 #define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
227 enum ovs_tunnel_key_attr {
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229   OVS_TUNNEL_KEY_ATTR_ID,
230   OVS_TUNNEL_KEY_ATTR_IPV4_SRC,
231   OVS_TUNNEL_KEY_ATTR_IPV4_DST,
232   OVS_TUNNEL_KEY_ATTR_TOS,
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   OVS_TUNNEL_KEY_ATTR_TTL,
235   OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT,
236   OVS_TUNNEL_KEY_ATTR_CSUM,
237   OVS_TUNNEL_KEY_ATTR_OAM,
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS,
240   OVS_TUNNEL_KEY_ATTR_TP_SRC,
241   OVS_TUNNEL_KEY_ATTR_TP_DST,
242   OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS,
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244   OVS_TUNNEL_KEY_ATTR_IPV6_SRC,
245   OVS_TUNNEL_KEY_ATTR_IPV6_DST,
246   OVS_TUNNEL_KEY_ATTR_PAD,
247   __OVS_TUNNEL_KEY_ATTR_MAX
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 };
250 #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
251 enum ovs_frag_type {
252   OVS_FRAG_TYPE_NONE,
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   OVS_FRAG_TYPE_FIRST,
255   OVS_FRAG_TYPE_LATER,
256   __OVS_FRAG_TYPE_MAX
257 };
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 #define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1)
260 struct ovs_key_ethernet {
261   __u8 eth_src[ETH_ALEN];
262   __u8 eth_dst[ETH_ALEN];
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264 };
265 struct ovs_key_mpls {
266   __be32 mpls_lse;
267 };
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269 struct ovs_key_ipv4 {
270   __be32 ipv4_src;
271   __be32 ipv4_dst;
272   __u8 ipv4_proto;
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   __u8 ipv4_tos;
275   __u8 ipv4_ttl;
276   __u8 ipv4_frag;
277 };
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279 struct ovs_key_ipv6 {
280   __be32 ipv6_src[4];
281   __be32 ipv6_dst[4];
282   __be32 ipv6_label;
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   __u8 ipv6_proto;
285   __u8 ipv6_tclass;
286   __u8 ipv6_hlimit;
287   __u8 ipv6_frag;
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 };
290 struct ovs_key_tcp {
291   __be16 tcp_src;
292   __be16 tcp_dst;
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 };
295 struct ovs_key_udp {
296   __be16 udp_src;
297   __be16 udp_dst;
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 };
300 struct ovs_key_sctp {
301   __be16 sctp_src;
302   __be16 sctp_dst;
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 };
305 struct ovs_key_icmp {
306   __u8 icmp_type;
307   __u8 icmp_code;
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 };
310 struct ovs_key_icmpv6 {
311   __u8 icmpv6_type;
312   __u8 icmpv6_code;
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 };
315 struct ovs_key_arp {
316   __be32 arp_sip;
317   __be32 arp_tip;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   __be16 arp_op;
320   __u8 arp_sha[ETH_ALEN];
321   __u8 arp_tha[ETH_ALEN];
322 };
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324 struct ovs_key_nd {
325   __be32 nd_target[4];
326   __u8 nd_sll[ETH_ALEN];
327   __u8 nd_tll[ETH_ALEN];
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329 };
330 #define OVS_CT_LABELS_LEN 16
331 struct ovs_key_ct_labels {
332   __u8 ct_labels[OVS_CT_LABELS_LEN];
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334 };
335 #define OVS_CS_F_NEW 0x01
336 #define OVS_CS_F_ESTABLISHED 0x02
337 #define OVS_CS_F_RELATED 0x04
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 #define OVS_CS_F_REPLY_DIR 0x08
340 #define OVS_CS_F_INVALID 0x10
341 #define OVS_CS_F_TRACKED 0x20
342 #define OVS_CS_F_SRC_NAT 0x40
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344 #define OVS_CS_F_DST_NAT 0x80
345 #define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)
346 enum ovs_flow_attr {
347   OVS_FLOW_ATTR_UNSPEC,
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   OVS_FLOW_ATTR_KEY,
350   OVS_FLOW_ATTR_ACTIONS,
351   OVS_FLOW_ATTR_STATS,
352   OVS_FLOW_ATTR_TCP_FLAGS,
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   OVS_FLOW_ATTR_USED,
355   OVS_FLOW_ATTR_CLEAR,
356   OVS_FLOW_ATTR_MASK,
357   OVS_FLOW_ATTR_PROBE,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   OVS_FLOW_ATTR_UFID,
360   OVS_FLOW_ATTR_UFID_FLAGS,
361   OVS_FLOW_ATTR_PAD,
362   __OVS_FLOW_ATTR_MAX
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364 };
365 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
366 #define OVS_UFID_F_OMIT_KEY (1 << 0)
367 #define OVS_UFID_F_OMIT_MASK (1 << 1)
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369 #define OVS_UFID_F_OMIT_ACTIONS (1 << 2)
370 enum ovs_sample_attr {
371   OVS_SAMPLE_ATTR_UNSPEC,
372   OVS_SAMPLE_ATTR_PROBABILITY,
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374   OVS_SAMPLE_ATTR_ACTIONS,
375   __OVS_SAMPLE_ATTR_MAX,
376 };
377 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 enum ovs_userspace_attr {
380   OVS_USERSPACE_ATTR_UNSPEC,
381   OVS_USERSPACE_ATTR_PID,
382   OVS_USERSPACE_ATTR_USERDATA,
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384   OVS_USERSPACE_ATTR_EGRESS_TUN_PORT,
385   OVS_USERSPACE_ATTR_ACTIONS,
386   __OVS_USERSPACE_ATTR_MAX
387 };
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
390 struct ovs_action_trunc {
391   __u32 max_len;
392 };
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 struct ovs_action_push_mpls {
395   __be32 mpls_lse;
396   __be16 mpls_ethertype;
397 };
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 struct ovs_action_push_vlan {
400   __be16 vlan_tpid;
401   __be16 vlan_tci;
402 };
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 enum ovs_hash_alg {
405   OVS_HASH_ALG_L4,
406 };
407 struct ovs_action_hash {
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409   __u32 hash_alg;
410   __u32 hash_basis;
411 };
412 enum ovs_ct_attr {
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414   OVS_CT_ATTR_UNSPEC,
415   OVS_CT_ATTR_COMMIT,
416   OVS_CT_ATTR_ZONE,
417   OVS_CT_ATTR_MARK,
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419   OVS_CT_ATTR_LABELS,
420   OVS_CT_ATTR_HELPER,
421   OVS_CT_ATTR_NAT,
422   __OVS_CT_ATTR_MAX
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 };
425 #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
426 enum ovs_nat_attr {
427   OVS_NAT_ATTR_UNSPEC,
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429   OVS_NAT_ATTR_SRC,
430   OVS_NAT_ATTR_DST,
431   OVS_NAT_ATTR_IP_MIN,
432   OVS_NAT_ATTR_IP_MAX,
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   OVS_NAT_ATTR_PROTO_MIN,
435   OVS_NAT_ATTR_PROTO_MAX,
436   OVS_NAT_ATTR_PERSISTENT,
437   OVS_NAT_ATTR_PROTO_HASH,
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   OVS_NAT_ATTR_PROTO_RANDOM,
440   __OVS_NAT_ATTR_MAX,
441 };
442 #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444 struct ovs_action_push_eth {
445   struct ovs_key_ethernet addresses;
446 };
447 enum ovs_action_attr {
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   OVS_ACTION_ATTR_UNSPEC,
450   OVS_ACTION_ATTR_OUTPUT,
451   OVS_ACTION_ATTR_USERSPACE,
452   OVS_ACTION_ATTR_SET,
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454   OVS_ACTION_ATTR_PUSH_VLAN,
455   OVS_ACTION_ATTR_POP_VLAN,
456   OVS_ACTION_ATTR_SAMPLE,
457   OVS_ACTION_ATTR_RECIRC,
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459   OVS_ACTION_ATTR_HASH,
460   OVS_ACTION_ATTR_PUSH_MPLS,
461   OVS_ACTION_ATTR_POP_MPLS,
462   OVS_ACTION_ATTR_SET_MASKED,
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   OVS_ACTION_ATTR_CT,
465   OVS_ACTION_ATTR_TRUNC,
466   OVS_ACTION_ATTR_PUSH_ETH,
467   OVS_ACTION_ATTR_POP_ETH,
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   __OVS_ACTION_ATTR_MAX,
470 };
471 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
472 #endif
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474