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 */
24struct 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
32enum 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};
41enum 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_MAX
51};
52#define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54struct ovs_dp_stats {
55  __u64 n_hit;
56  __u64 n_missed;
57  __u64 n_lost;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  __u64 n_flows;
60};
61struct ovs_dp_megaflow_stats {
62  __u64 n_mask_hit;
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  __u32 n_masks;
65  __u32 pad0;
66  __u64 pad1;
67  __u64 pad2;
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69};
70struct ovs_vport_stats {
71  __u64 rx_packets;
72  __u64 tx_packets;
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  __u64 rx_bytes;
75  __u64 tx_bytes;
76  __u64 rx_errors;
77  __u64 tx_errors;
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  __u64 rx_dropped;
80  __u64 tx_dropped;
81};
82#define OVS_DP_F_UNALIGNED (1 << 0)
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84#define OVS_DP_F_VPORT_PIDS (1 << 1)
85#define OVSP_LOCAL ((__u32) 0)
86#define OVS_PACKET_FAMILY "ovs_packet"
87#define OVS_PACKET_VERSION 0x1
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89enum ovs_packet_cmd {
90  OVS_PACKET_CMD_UNSPEC,
91  OVS_PACKET_CMD_MISS,
92  OVS_PACKET_CMD_ACTION,
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  OVS_PACKET_CMD_EXECUTE
95};
96enum ovs_packet_attr {
97  OVS_PACKET_ATTR_UNSPEC,
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  OVS_PACKET_ATTR_PACKET,
100  OVS_PACKET_ATTR_KEY,
101  OVS_PACKET_ATTR_ACTIONS,
102  OVS_PACKET_ATTR_USERDATA,
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  OVS_PACKET_ATTR_EGRESS_TUN_KEY,
105  OVS_PACKET_ATTR_UNUSED1,
106  OVS_PACKET_ATTR_UNUSED2,
107  OVS_PACKET_ATTR_PROBE,
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  OVS_PACKET_ATTR_MRU,
110  __OVS_PACKET_ATTR_MAX
111};
112#define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1)
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114#define OVS_VPORT_FAMILY "ovs_vport"
115#define OVS_VPORT_MCGROUP "ovs_vport"
116#define OVS_VPORT_VERSION 0x1
117enum ovs_vport_cmd {
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  OVS_VPORT_CMD_UNSPEC,
120  OVS_VPORT_CMD_NEW,
121  OVS_VPORT_CMD_DEL,
122  OVS_VPORT_CMD_GET,
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  OVS_VPORT_CMD_SET
125};
126enum ovs_vport_type {
127  OVS_VPORT_TYPE_UNSPEC,
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  OVS_VPORT_TYPE_NETDEV,
130  OVS_VPORT_TYPE_INTERNAL,
131  OVS_VPORT_TYPE_GRE,
132  OVS_VPORT_TYPE_VXLAN,
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  OVS_VPORT_TYPE_GENEVE,
135  __OVS_VPORT_TYPE_MAX
136};
137#define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1)
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139enum ovs_vport_attr {
140  OVS_VPORT_ATTR_UNSPEC,
141  OVS_VPORT_ATTR_PORT_NO,
142  OVS_VPORT_ATTR_TYPE,
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  OVS_VPORT_ATTR_NAME,
145  OVS_VPORT_ATTR_OPTIONS,
146  OVS_VPORT_ATTR_UPCALL_PID,
147  OVS_VPORT_ATTR_STATS,
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  __OVS_VPORT_ATTR_MAX
150};
151#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
152enum {
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  OVS_VXLAN_EXT_UNSPEC,
155  OVS_VXLAN_EXT_GBP,
156  __OVS_VXLAN_EXT_MAX,
157};
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159#define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1)
160enum {
161  OVS_TUNNEL_ATTR_UNSPEC,
162  OVS_TUNNEL_ATTR_DST_PORT,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  OVS_TUNNEL_ATTR_EXTENSION,
165  __OVS_TUNNEL_ATTR_MAX
166};
167#define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1)
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169#define OVS_FLOW_FAMILY "ovs_flow"
170#define OVS_FLOW_MCGROUP "ovs_flow"
171#define OVS_FLOW_VERSION 0x1
172enum ovs_flow_cmd {
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174  OVS_FLOW_CMD_UNSPEC,
175  OVS_FLOW_CMD_NEW,
176  OVS_FLOW_CMD_DEL,
177  OVS_FLOW_CMD_GET,
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  OVS_FLOW_CMD_SET
180};
181struct ovs_flow_stats {
182  __u64 n_packets;
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  __u64 n_bytes;
185};
186enum ovs_key_attr {
187  OVS_KEY_ATTR_UNSPEC,
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  OVS_KEY_ATTR_ENCAP,
190  OVS_KEY_ATTR_PRIORITY,
191  OVS_KEY_ATTR_IN_PORT,
192  OVS_KEY_ATTR_ETHERNET,
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  OVS_KEY_ATTR_VLAN,
195  OVS_KEY_ATTR_ETHERTYPE,
196  OVS_KEY_ATTR_IPV4,
197  OVS_KEY_ATTR_IPV6,
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  OVS_KEY_ATTR_TCP,
200  OVS_KEY_ATTR_UDP,
201  OVS_KEY_ATTR_ICMP,
202  OVS_KEY_ATTR_ICMPV6,
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  OVS_KEY_ATTR_ARP,
205  OVS_KEY_ATTR_ND,
206  OVS_KEY_ATTR_SKB_MARK,
207  OVS_KEY_ATTR_TUNNEL,
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  OVS_KEY_ATTR_SCTP,
210  OVS_KEY_ATTR_TCP_FLAGS,
211  OVS_KEY_ATTR_DP_HASH,
212  OVS_KEY_ATTR_RECIRC_ID,
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  OVS_KEY_ATTR_MPLS,
215  OVS_KEY_ATTR_CT_STATE,
216  OVS_KEY_ATTR_CT_ZONE,
217  OVS_KEY_ATTR_CT_MARK,
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  OVS_KEY_ATTR_CT_LABELS,
220  __OVS_KEY_ATTR_MAX
221};
222#define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224enum ovs_tunnel_key_attr {
225  OVS_TUNNEL_KEY_ATTR_ID,
226  OVS_TUNNEL_KEY_ATTR_IPV4_SRC,
227  OVS_TUNNEL_KEY_ATTR_IPV4_DST,
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  OVS_TUNNEL_KEY_ATTR_TOS,
230  OVS_TUNNEL_KEY_ATTR_TTL,
231  OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT,
232  OVS_TUNNEL_KEY_ATTR_CSUM,
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  OVS_TUNNEL_KEY_ATTR_OAM,
235  OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS,
236  OVS_TUNNEL_KEY_ATTR_TP_SRC,
237  OVS_TUNNEL_KEY_ATTR_TP_DST,
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239  OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS,
240  OVS_TUNNEL_KEY_ATTR_IPV6_SRC,
241  OVS_TUNNEL_KEY_ATTR_IPV6_DST,
242  __OVS_TUNNEL_KEY_ATTR_MAX
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244};
245#define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
246enum ovs_frag_type {
247  OVS_FRAG_TYPE_NONE,
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249  OVS_FRAG_TYPE_FIRST,
250  OVS_FRAG_TYPE_LATER,
251  __OVS_FRAG_TYPE_MAX
252};
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254#define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1)
255struct ovs_key_ethernet {
256  __u8 eth_src[ETH_ALEN];
257  __u8 eth_dst[ETH_ALEN];
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259};
260struct ovs_key_mpls {
261  __be32 mpls_lse;
262};
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264struct ovs_key_ipv4 {
265  __be32 ipv4_src;
266  __be32 ipv4_dst;
267  __u8 ipv4_proto;
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  __u8 ipv4_tos;
270  __u8 ipv4_ttl;
271  __u8 ipv4_frag;
272};
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274struct ovs_key_ipv6 {
275  __be32 ipv6_src[4];
276  __be32 ipv6_dst[4];
277  __be32 ipv6_label;
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  __u8 ipv6_proto;
280  __u8 ipv6_tclass;
281  __u8 ipv6_hlimit;
282  __u8 ipv6_frag;
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284};
285struct ovs_key_tcp {
286  __be16 tcp_src;
287  __be16 tcp_dst;
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289};
290struct ovs_key_udp {
291  __be16 udp_src;
292  __be16 udp_dst;
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294};
295struct ovs_key_sctp {
296  __be16 sctp_src;
297  __be16 sctp_dst;
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299};
300struct ovs_key_icmp {
301  __u8 icmp_type;
302  __u8 icmp_code;
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304};
305struct ovs_key_icmpv6 {
306  __u8 icmpv6_type;
307  __u8 icmpv6_code;
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309};
310struct ovs_key_arp {
311  __be32 arp_sip;
312  __be32 arp_tip;
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  __be16 arp_op;
315  __u8 arp_sha[ETH_ALEN];
316  __u8 arp_tha[ETH_ALEN];
317};
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319struct ovs_key_nd {
320  __be32 nd_target[4];
321  __u8 nd_sll[ETH_ALEN];
322  __u8 nd_tll[ETH_ALEN];
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324};
325#define OVS_CT_LABELS_LEN 16
326struct ovs_key_ct_labels {
327  __u8 ct_labels[OVS_CT_LABELS_LEN];
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329};
330#define OVS_CS_F_NEW 0x01
331#define OVS_CS_F_ESTABLISHED 0x02
332#define OVS_CS_F_RELATED 0x04
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334#define OVS_CS_F_REPLY_DIR 0x08
335#define OVS_CS_F_INVALID 0x10
336#define OVS_CS_F_TRACKED 0x20
337enum ovs_flow_attr {
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  OVS_FLOW_ATTR_UNSPEC,
340  OVS_FLOW_ATTR_KEY,
341  OVS_FLOW_ATTR_ACTIONS,
342  OVS_FLOW_ATTR_STATS,
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  OVS_FLOW_ATTR_TCP_FLAGS,
345  OVS_FLOW_ATTR_USED,
346  OVS_FLOW_ATTR_CLEAR,
347  OVS_FLOW_ATTR_MASK,
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  OVS_FLOW_ATTR_PROBE,
350  OVS_FLOW_ATTR_UFID,
351  OVS_FLOW_ATTR_UFID_FLAGS,
352  __OVS_FLOW_ATTR_MAX
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354};
355#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
356#define OVS_UFID_F_OMIT_KEY (1 << 0)
357#define OVS_UFID_F_OMIT_MASK (1 << 1)
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359#define OVS_UFID_F_OMIT_ACTIONS (1 << 2)
360enum ovs_sample_attr {
361  OVS_SAMPLE_ATTR_UNSPEC,
362  OVS_SAMPLE_ATTR_PROBABILITY,
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  OVS_SAMPLE_ATTR_ACTIONS,
365  __OVS_SAMPLE_ATTR_MAX,
366};
367#define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369enum ovs_userspace_attr {
370  OVS_USERSPACE_ATTR_UNSPEC,
371  OVS_USERSPACE_ATTR_PID,
372  OVS_USERSPACE_ATTR_USERDATA,
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  OVS_USERSPACE_ATTR_EGRESS_TUN_PORT,
375  OVS_USERSPACE_ATTR_ACTIONS,
376  __OVS_USERSPACE_ATTR_MAX
377};
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379#define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
380struct ovs_action_push_mpls {
381  __be32 mpls_lse;
382  __be16 mpls_ethertype;
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384};
385struct ovs_action_push_vlan {
386  __be16 vlan_tpid;
387  __be16 vlan_tci;
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389};
390enum ovs_hash_alg {
391  OVS_HASH_ALG_L4,
392};
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394struct ovs_action_hash {
395  uint32_t hash_alg;
396  uint32_t hash_basis;
397};
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399enum ovs_ct_attr {
400  OVS_CT_ATTR_UNSPEC,
401  OVS_CT_ATTR_COMMIT,
402  OVS_CT_ATTR_ZONE,
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  OVS_CT_ATTR_MARK,
405  OVS_CT_ATTR_LABELS,
406  OVS_CT_ATTR_HELPER,
407  __OVS_CT_ATTR_MAX
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409};
410#define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
411enum ovs_action_attr {
412  OVS_ACTION_ATTR_UNSPEC,
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  OVS_ACTION_ATTR_OUTPUT,
415  OVS_ACTION_ATTR_USERSPACE,
416  OVS_ACTION_ATTR_SET,
417  OVS_ACTION_ATTR_PUSH_VLAN,
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  OVS_ACTION_ATTR_POP_VLAN,
420  OVS_ACTION_ATTR_SAMPLE,
421  OVS_ACTION_ATTR_RECIRC,
422  OVS_ACTION_ATTR_HASH,
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  OVS_ACTION_ATTR_PUSH_MPLS,
425  OVS_ACTION_ATTR_POP_MPLS,
426  OVS_ACTION_ATTR_SET_MASKED,
427  OVS_ACTION_ATTR_CT,
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  __OVS_ACTION_ATTR_MAX,
430};
431#define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
432#endif
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434