Home | History | Annotate | Download | only in linux
      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_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 */
     54 struct 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 };
     61 struct 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 };
     70 struct 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 */
     89 enum 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 };
     96 enum 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
    117 enum 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 };
    126 enum 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 */
    139 enum 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)
    152 enum {
    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)
    160 enum {
    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
    172 enum 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 };
    181 struct ovs_flow_stats {
    182   __u64 n_packets;
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184   __u64 n_bytes;
    185 };
    186 enum 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 */
    224 enum 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)
    246 enum 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)
    255 struct 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 };
    260 struct ovs_key_mpls {
    261   __be32 mpls_lse;
    262 };
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264 struct 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 */
    274 struct 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 };
    285 struct ovs_key_tcp {
    286   __be16 tcp_src;
    287   __be16 tcp_dst;
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289 };
    290 struct ovs_key_udp {
    291   __be16 udp_src;
    292   __be16 udp_dst;
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294 };
    295 struct ovs_key_sctp {
    296   __be16 sctp_src;
    297   __be16 sctp_dst;
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299 };
    300 struct ovs_key_icmp {
    301   __u8 icmp_type;
    302   __u8 icmp_code;
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304 };
    305 struct ovs_key_icmpv6 {
    306   __u8 icmpv6_type;
    307   __u8 icmpv6_code;
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309 };
    310 struct 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 */
    319 struct 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
    326 struct 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
    337 enum 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)
    360 enum 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 */
    369 enum 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)
    380 struct 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 };
    385 struct 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 };
    390 enum ovs_hash_alg {
    391   OVS_HASH_ALG_L4,
    392 };
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394 struct 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 */
    399 enum 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)
    411 enum 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