• 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 struct ovs_header {
24   int dp_ifindex;
25 };
26 #define OVS_DATAPATH_FAMILY "ovs_datapath"
27 #define OVS_DATAPATH_MCGROUP "ovs_datapath"
28 #define OVS_DATAPATH_VERSION 2
29 #define OVS_DP_VER_FEATURES 2
30 enum ovs_datapath_cmd {
31   OVS_DP_CMD_UNSPEC,
32   OVS_DP_CMD_NEW,
33   OVS_DP_CMD_DEL,
34   OVS_DP_CMD_GET,
35   OVS_DP_CMD_SET
36 };
37 enum ovs_datapath_attr {
38   OVS_DP_ATTR_UNSPEC,
39   OVS_DP_ATTR_NAME,
40   OVS_DP_ATTR_UPCALL_PID,
41   OVS_DP_ATTR_STATS,
42   OVS_DP_ATTR_MEGAFLOW_STATS,
43   OVS_DP_ATTR_USER_FEATURES,
44   OVS_DP_ATTR_PAD,
45   OVS_DP_ATTR_MASKS_CACHE_SIZE,
46   OVS_DP_ATTR_PER_CPU_PIDS,
47   __OVS_DP_ATTR_MAX
48 };
49 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
50 struct ovs_dp_stats {
51   __u64 n_hit;
52   __u64 n_missed;
53   __u64 n_lost;
54   __u64 n_flows;
55 };
56 struct ovs_dp_megaflow_stats {
57   __u64 n_mask_hit;
58   __u32 n_masks;
59   __u32 pad0;
60   __u64 n_cache_hit;
61   __u64 pad1;
62 };
63 struct ovs_vport_stats {
64   __u64 rx_packets;
65   __u64 tx_packets;
66   __u64 rx_bytes;
67   __u64 tx_bytes;
68   __u64 rx_errors;
69   __u64 tx_errors;
70   __u64 rx_dropped;
71   __u64 tx_dropped;
72 };
73 #define OVS_DP_F_UNALIGNED (1 << 0)
74 #define OVS_DP_F_VPORT_PIDS (1 << 1)
75 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
76 #define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
77 #define OVSP_LOCAL ((__u32) 0)
78 #define OVS_PACKET_FAMILY "ovs_packet"
79 #define OVS_PACKET_VERSION 0x1
80 enum ovs_packet_cmd {
81   OVS_PACKET_CMD_UNSPEC,
82   OVS_PACKET_CMD_MISS,
83   OVS_PACKET_CMD_ACTION,
84   OVS_PACKET_CMD_EXECUTE
85 };
86 enum ovs_packet_attr {
87   OVS_PACKET_ATTR_UNSPEC,
88   OVS_PACKET_ATTR_PACKET,
89   OVS_PACKET_ATTR_KEY,
90   OVS_PACKET_ATTR_ACTIONS,
91   OVS_PACKET_ATTR_USERDATA,
92   OVS_PACKET_ATTR_EGRESS_TUN_KEY,
93   OVS_PACKET_ATTR_UNUSED1,
94   OVS_PACKET_ATTR_UNUSED2,
95   OVS_PACKET_ATTR_PROBE,
96   OVS_PACKET_ATTR_MRU,
97   OVS_PACKET_ATTR_LEN,
98   OVS_PACKET_ATTR_HASH,
99   __OVS_PACKET_ATTR_MAX
100 };
101 #define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1)
102 #define OVS_VPORT_FAMILY "ovs_vport"
103 #define OVS_VPORT_MCGROUP "ovs_vport"
104 #define OVS_VPORT_VERSION 0x1
105 enum ovs_vport_cmd {
106   OVS_VPORT_CMD_UNSPEC,
107   OVS_VPORT_CMD_NEW,
108   OVS_VPORT_CMD_DEL,
109   OVS_VPORT_CMD_GET,
110   OVS_VPORT_CMD_SET
111 };
112 enum ovs_vport_type {
113   OVS_VPORT_TYPE_UNSPEC,
114   OVS_VPORT_TYPE_NETDEV,
115   OVS_VPORT_TYPE_INTERNAL,
116   OVS_VPORT_TYPE_GRE,
117   OVS_VPORT_TYPE_VXLAN,
118   OVS_VPORT_TYPE_GENEVE,
119   __OVS_VPORT_TYPE_MAX
120 };
121 #define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1)
122 enum ovs_vport_attr {
123   OVS_VPORT_ATTR_UNSPEC,
124   OVS_VPORT_ATTR_PORT_NO,
125   OVS_VPORT_ATTR_TYPE,
126   OVS_VPORT_ATTR_NAME,
127   OVS_VPORT_ATTR_OPTIONS,
128   OVS_VPORT_ATTR_UPCALL_PID,
129   OVS_VPORT_ATTR_STATS,
130   OVS_VPORT_ATTR_PAD,
131   OVS_VPORT_ATTR_IFINDEX,
132   OVS_VPORT_ATTR_NETNSID,
133   __OVS_VPORT_ATTR_MAX
134 };
135 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
136 enum {
137   OVS_VXLAN_EXT_UNSPEC,
138   OVS_VXLAN_EXT_GBP,
139   __OVS_VXLAN_EXT_MAX,
140 };
141 #define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1)
142 enum {
143   OVS_TUNNEL_ATTR_UNSPEC,
144   OVS_TUNNEL_ATTR_DST_PORT,
145   OVS_TUNNEL_ATTR_EXTENSION,
146   __OVS_TUNNEL_ATTR_MAX
147 };
148 #define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1)
149 #define OVS_FLOW_FAMILY "ovs_flow"
150 #define OVS_FLOW_MCGROUP "ovs_flow"
151 #define OVS_FLOW_VERSION 0x1
152 enum ovs_flow_cmd {
153   OVS_FLOW_CMD_UNSPEC,
154   OVS_FLOW_CMD_NEW,
155   OVS_FLOW_CMD_DEL,
156   OVS_FLOW_CMD_GET,
157   OVS_FLOW_CMD_SET
158 };
159 struct ovs_flow_stats {
160   __u64 n_packets;
161   __u64 n_bytes;
162 };
163 enum ovs_key_attr {
164   OVS_KEY_ATTR_UNSPEC,
165   OVS_KEY_ATTR_ENCAP,
166   OVS_KEY_ATTR_PRIORITY,
167   OVS_KEY_ATTR_IN_PORT,
168   OVS_KEY_ATTR_ETHERNET,
169   OVS_KEY_ATTR_VLAN,
170   OVS_KEY_ATTR_ETHERTYPE,
171   OVS_KEY_ATTR_IPV4,
172   OVS_KEY_ATTR_IPV6,
173   OVS_KEY_ATTR_TCP,
174   OVS_KEY_ATTR_UDP,
175   OVS_KEY_ATTR_ICMP,
176   OVS_KEY_ATTR_ICMPV6,
177   OVS_KEY_ATTR_ARP,
178   OVS_KEY_ATTR_ND,
179   OVS_KEY_ATTR_SKB_MARK,
180   OVS_KEY_ATTR_TUNNEL,
181   OVS_KEY_ATTR_SCTP,
182   OVS_KEY_ATTR_TCP_FLAGS,
183   OVS_KEY_ATTR_DP_HASH,
184   OVS_KEY_ATTR_RECIRC_ID,
185   OVS_KEY_ATTR_MPLS,
186   OVS_KEY_ATTR_CT_STATE,
187   OVS_KEY_ATTR_CT_ZONE,
188   OVS_KEY_ATTR_CT_MARK,
189   OVS_KEY_ATTR_CT_LABELS,
190   OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4,
191   OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6,
192   OVS_KEY_ATTR_NSH,
193   __OVS_KEY_ATTR_MAX
194 };
195 #define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
196 enum ovs_tunnel_key_attr {
197   OVS_TUNNEL_KEY_ATTR_ID,
198   OVS_TUNNEL_KEY_ATTR_IPV4_SRC,
199   OVS_TUNNEL_KEY_ATTR_IPV4_DST,
200   OVS_TUNNEL_KEY_ATTR_TOS,
201   OVS_TUNNEL_KEY_ATTR_TTL,
202   OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT,
203   OVS_TUNNEL_KEY_ATTR_CSUM,
204   OVS_TUNNEL_KEY_ATTR_OAM,
205   OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS,
206   OVS_TUNNEL_KEY_ATTR_TP_SRC,
207   OVS_TUNNEL_KEY_ATTR_TP_DST,
208   OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS,
209   OVS_TUNNEL_KEY_ATTR_IPV6_SRC,
210   OVS_TUNNEL_KEY_ATTR_IPV6_DST,
211   OVS_TUNNEL_KEY_ATTR_PAD,
212   OVS_TUNNEL_KEY_ATTR_ERSPAN_OPTS,
213   OVS_TUNNEL_KEY_ATTR_IPV4_INFO_BRIDGE,
214   __OVS_TUNNEL_KEY_ATTR_MAX
215 };
216 #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
217 enum ovs_frag_type {
218   OVS_FRAG_TYPE_NONE,
219   OVS_FRAG_TYPE_FIRST,
220   OVS_FRAG_TYPE_LATER,
221   __OVS_FRAG_TYPE_MAX
222 };
223 #define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1)
224 struct ovs_key_ethernet {
225   __u8 eth_src[ETH_ALEN];
226   __u8 eth_dst[ETH_ALEN];
227 };
228 struct ovs_key_mpls {
229   __be32 mpls_lse;
230 };
231 struct ovs_key_ipv4 {
232   __be32 ipv4_src;
233   __be32 ipv4_dst;
234   __u8 ipv4_proto;
235   __u8 ipv4_tos;
236   __u8 ipv4_ttl;
237   __u8 ipv4_frag;
238 };
239 struct ovs_key_ipv6 {
240   __be32 ipv6_src[4];
241   __be32 ipv6_dst[4];
242   __be32 ipv6_label;
243   __u8 ipv6_proto;
244   __u8 ipv6_tclass;
245   __u8 ipv6_hlimit;
246   __u8 ipv6_frag;
247 };
248 struct ovs_key_tcp {
249   __be16 tcp_src;
250   __be16 tcp_dst;
251 };
252 struct ovs_key_udp {
253   __be16 udp_src;
254   __be16 udp_dst;
255 };
256 struct ovs_key_sctp {
257   __be16 sctp_src;
258   __be16 sctp_dst;
259 };
260 struct ovs_key_icmp {
261   __u8 icmp_type;
262   __u8 icmp_code;
263 };
264 struct ovs_key_icmpv6 {
265   __u8 icmpv6_type;
266   __u8 icmpv6_code;
267 };
268 struct ovs_key_arp {
269   __be32 arp_sip;
270   __be32 arp_tip;
271   __be16 arp_op;
272   __u8 arp_sha[ETH_ALEN];
273   __u8 arp_tha[ETH_ALEN];
274 };
275 struct ovs_key_nd {
276   __be32 nd_target[4];
277   __u8 nd_sll[ETH_ALEN];
278   __u8 nd_tll[ETH_ALEN];
279 };
280 #define OVS_CT_LABELS_LEN_32 4
281 #define OVS_CT_LABELS_LEN (OVS_CT_LABELS_LEN_32 * sizeof(__u32))
282 struct ovs_key_ct_labels {
283   union {
284     __u8 ct_labels[OVS_CT_LABELS_LEN];
285     __u32 ct_labels_32[OVS_CT_LABELS_LEN_32];
286   };
287 };
288 #define OVS_CS_F_NEW 0x01
289 #define OVS_CS_F_ESTABLISHED 0x02
290 #define OVS_CS_F_RELATED 0x04
291 #define OVS_CS_F_REPLY_DIR 0x08
292 #define OVS_CS_F_INVALID 0x10
293 #define OVS_CS_F_TRACKED 0x20
294 #define OVS_CS_F_SRC_NAT 0x40
295 #define OVS_CS_F_DST_NAT 0x80
296 #define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)
297 struct ovs_key_ct_tuple_ipv4 {
298   __be32 ipv4_src;
299   __be32 ipv4_dst;
300   __be16 src_port;
301   __be16 dst_port;
302   __u8 ipv4_proto;
303 };
304 struct ovs_key_ct_tuple_ipv6 {
305   __be32 ipv6_src[4];
306   __be32 ipv6_dst[4];
307   __be16 src_port;
308   __be16 dst_port;
309   __u8 ipv6_proto;
310 };
311 enum ovs_nsh_key_attr {
312   OVS_NSH_KEY_ATTR_UNSPEC,
313   OVS_NSH_KEY_ATTR_BASE,
314   OVS_NSH_KEY_ATTR_MD1,
315   OVS_NSH_KEY_ATTR_MD2,
316   __OVS_NSH_KEY_ATTR_MAX
317 };
318 #define OVS_NSH_KEY_ATTR_MAX (__OVS_NSH_KEY_ATTR_MAX - 1)
319 struct ovs_nsh_key_base {
320   __u8 flags;
321   __u8 ttl;
322   __u8 mdtype;
323   __u8 np;
324   __be32 path_hdr;
325 };
326 #define NSH_MD1_CONTEXT_SIZE 4
327 struct ovs_nsh_key_md1 {
328   __be32 context[NSH_MD1_CONTEXT_SIZE];
329 };
330 enum ovs_flow_attr {
331   OVS_FLOW_ATTR_UNSPEC,
332   OVS_FLOW_ATTR_KEY,
333   OVS_FLOW_ATTR_ACTIONS,
334   OVS_FLOW_ATTR_STATS,
335   OVS_FLOW_ATTR_TCP_FLAGS,
336   OVS_FLOW_ATTR_USED,
337   OVS_FLOW_ATTR_CLEAR,
338   OVS_FLOW_ATTR_MASK,
339   OVS_FLOW_ATTR_PROBE,
340   OVS_FLOW_ATTR_UFID,
341   OVS_FLOW_ATTR_UFID_FLAGS,
342   OVS_FLOW_ATTR_PAD,
343   __OVS_FLOW_ATTR_MAX
344 };
345 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
346 #define OVS_UFID_F_OMIT_KEY (1 << 0)
347 #define OVS_UFID_F_OMIT_MASK (1 << 1)
348 #define OVS_UFID_F_OMIT_ACTIONS (1 << 2)
349 enum ovs_sample_attr {
350   OVS_SAMPLE_ATTR_UNSPEC,
351   OVS_SAMPLE_ATTR_PROBABILITY,
352   OVS_SAMPLE_ATTR_ACTIONS,
353   __OVS_SAMPLE_ATTR_MAX,
354 };
355 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
356 enum ovs_userspace_attr {
357   OVS_USERSPACE_ATTR_UNSPEC,
358   OVS_USERSPACE_ATTR_PID,
359   OVS_USERSPACE_ATTR_USERDATA,
360   OVS_USERSPACE_ATTR_EGRESS_TUN_PORT,
361   OVS_USERSPACE_ATTR_ACTIONS,
362   __OVS_USERSPACE_ATTR_MAX
363 };
364 #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
365 struct ovs_action_trunc {
366   __u32 max_len;
367 };
368 struct ovs_action_push_mpls {
369   __be32 mpls_lse;
370   __be16 mpls_ethertype;
371 };
372 struct ovs_action_add_mpls {
373   __be32 mpls_lse;
374   __be16 mpls_ethertype;
375   __u16 tun_flags;
376 };
377 #define OVS_MPLS_L3_TUNNEL_FLAG_MASK (1 << 0)
378 struct ovs_action_push_vlan {
379   __be16 vlan_tpid;
380   __be16 vlan_tci;
381 };
382 enum ovs_hash_alg {
383   OVS_HASH_ALG_L4,
384 };
385 struct ovs_action_hash {
386   __u32 hash_alg;
387   __u32 hash_basis;
388 };
389 enum ovs_ct_attr {
390   OVS_CT_ATTR_UNSPEC,
391   OVS_CT_ATTR_COMMIT,
392   OVS_CT_ATTR_ZONE,
393   OVS_CT_ATTR_MARK,
394   OVS_CT_ATTR_LABELS,
395   OVS_CT_ATTR_HELPER,
396   OVS_CT_ATTR_NAT,
397   OVS_CT_ATTR_FORCE_COMMIT,
398   OVS_CT_ATTR_EVENTMASK,
399   OVS_CT_ATTR_TIMEOUT,
400   __OVS_CT_ATTR_MAX
401 };
402 #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
403 enum ovs_nat_attr {
404   OVS_NAT_ATTR_UNSPEC,
405   OVS_NAT_ATTR_SRC,
406   OVS_NAT_ATTR_DST,
407   OVS_NAT_ATTR_IP_MIN,
408   OVS_NAT_ATTR_IP_MAX,
409   OVS_NAT_ATTR_PROTO_MIN,
410   OVS_NAT_ATTR_PROTO_MAX,
411   OVS_NAT_ATTR_PERSISTENT,
412   OVS_NAT_ATTR_PROTO_HASH,
413   OVS_NAT_ATTR_PROTO_RANDOM,
414   __OVS_NAT_ATTR_MAX,
415 };
416 #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
417 struct ovs_action_push_eth {
418   struct ovs_key_ethernet addresses;
419 };
420 enum ovs_check_pkt_len_attr {
421   OVS_CHECK_PKT_LEN_ATTR_UNSPEC,
422   OVS_CHECK_PKT_LEN_ATTR_PKT_LEN,
423   OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER,
424   OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL,
425   __OVS_CHECK_PKT_LEN_ATTR_MAX,
426 };
427 #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
428 enum ovs_action_attr {
429   OVS_ACTION_ATTR_UNSPEC,
430   OVS_ACTION_ATTR_OUTPUT,
431   OVS_ACTION_ATTR_USERSPACE,
432   OVS_ACTION_ATTR_SET,
433   OVS_ACTION_ATTR_PUSH_VLAN,
434   OVS_ACTION_ATTR_POP_VLAN,
435   OVS_ACTION_ATTR_SAMPLE,
436   OVS_ACTION_ATTR_RECIRC,
437   OVS_ACTION_ATTR_HASH,
438   OVS_ACTION_ATTR_PUSH_MPLS,
439   OVS_ACTION_ATTR_POP_MPLS,
440   OVS_ACTION_ATTR_SET_MASKED,
441   OVS_ACTION_ATTR_CT,
442   OVS_ACTION_ATTR_TRUNC,
443   OVS_ACTION_ATTR_PUSH_ETH,
444   OVS_ACTION_ATTR_POP_ETH,
445   OVS_ACTION_ATTR_CT_CLEAR,
446   OVS_ACTION_ATTR_PUSH_NSH,
447   OVS_ACTION_ATTR_POP_NSH,
448   OVS_ACTION_ATTR_METER,
449   OVS_ACTION_ATTR_CLONE,
450   OVS_ACTION_ATTR_CHECK_PKT_LEN,
451   OVS_ACTION_ATTR_ADD_MPLS,
452   OVS_ACTION_ATTR_DEC_TTL,
453   __OVS_ACTION_ATTR_MAX,
454 };
455 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
456 #define OVS_METER_FAMILY "ovs_meter"
457 #define OVS_METER_MCGROUP "ovs_meter"
458 #define OVS_METER_VERSION 0x1
459 enum ovs_meter_cmd {
460   OVS_METER_CMD_UNSPEC,
461   OVS_METER_CMD_FEATURES,
462   OVS_METER_CMD_SET,
463   OVS_METER_CMD_DEL,
464   OVS_METER_CMD_GET
465 };
466 enum ovs_meter_attr {
467   OVS_METER_ATTR_UNSPEC,
468   OVS_METER_ATTR_ID,
469   OVS_METER_ATTR_KBPS,
470   OVS_METER_ATTR_STATS,
471   OVS_METER_ATTR_BANDS,
472   OVS_METER_ATTR_USED,
473   OVS_METER_ATTR_CLEAR,
474   OVS_METER_ATTR_MAX_METERS,
475   OVS_METER_ATTR_MAX_BANDS,
476   OVS_METER_ATTR_PAD,
477   __OVS_METER_ATTR_MAX
478 };
479 #define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1)
480 enum ovs_band_attr {
481   OVS_BAND_ATTR_UNSPEC,
482   OVS_BAND_ATTR_TYPE,
483   OVS_BAND_ATTR_RATE,
484   OVS_BAND_ATTR_BURST,
485   OVS_BAND_ATTR_STATS,
486   __OVS_BAND_ATTR_MAX
487 };
488 #define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1)
489 enum ovs_meter_band_type {
490   OVS_METER_BAND_TYPE_UNSPEC,
491   OVS_METER_BAND_TYPE_DROP,
492   __OVS_METER_BAND_TYPE_MAX
493 };
494 #define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)
495 #define OVS_CT_LIMIT_FAMILY "ovs_ct_limit"
496 #define OVS_CT_LIMIT_MCGROUP "ovs_ct_limit"
497 #define OVS_CT_LIMIT_VERSION 0x1
498 enum ovs_ct_limit_cmd {
499   OVS_CT_LIMIT_CMD_UNSPEC,
500   OVS_CT_LIMIT_CMD_SET,
501   OVS_CT_LIMIT_CMD_DEL,
502   OVS_CT_LIMIT_CMD_GET
503 };
504 enum ovs_ct_limit_attr {
505   OVS_CT_LIMIT_ATTR_UNSPEC,
506   OVS_CT_LIMIT_ATTR_ZONE_LIMIT,
507   __OVS_CT_LIMIT_ATTR_MAX
508 };
509 #define OVS_CT_LIMIT_ATTR_MAX (__OVS_CT_LIMIT_ATTR_MAX - 1)
510 #define OVS_ZONE_LIMIT_DEFAULT_ZONE - 1
511 struct ovs_zone_limit {
512   int zone_id;
513   __u32 limit;
514   __u32 count;
515 };
516 enum ovs_dec_ttl_attr {
517   OVS_DEC_TTL_ATTR_UNSPEC,
518   OVS_DEC_TTL_ATTR_ACTION,
519   __OVS_DEC_TTL_ATTR_MAX
520 };
521 #define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1)
522 #endif
523