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 OVSP_LOCAL ((__u32)0) 85 #define OVS_PACKET_FAMILY "ovs_packet" 86 #define OVS_PACKET_VERSION 0x1 87 enum ovs_packet_cmd { 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 OVS_PACKET_CMD_UNSPEC, 90 OVS_PACKET_CMD_MISS, 91 OVS_PACKET_CMD_ACTION, 92 OVS_PACKET_CMD_EXECUTE 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 }; 95 enum ovs_packet_attr { 96 OVS_PACKET_ATTR_UNSPEC, 97 OVS_PACKET_ATTR_PACKET, 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 OVS_PACKET_ATTR_KEY, 100 OVS_PACKET_ATTR_ACTIONS, 101 OVS_PACKET_ATTR_USERDATA, 102 __OVS_PACKET_ATTR_MAX 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 }; 105 #define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1) 106 #define OVS_VPORT_FAMILY "ovs_vport" 107 #define OVS_VPORT_MCGROUP "ovs_vport" 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 #define OVS_VPORT_VERSION 0x1 110 enum ovs_vport_cmd { 111 OVS_VPORT_CMD_UNSPEC, 112 OVS_VPORT_CMD_NEW, 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 OVS_VPORT_CMD_DEL, 115 OVS_VPORT_CMD_GET, 116 OVS_VPORT_CMD_SET 117 }; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 enum ovs_vport_type { 120 OVS_VPORT_TYPE_UNSPEC, 121 OVS_VPORT_TYPE_NETDEV, 122 OVS_VPORT_TYPE_INTERNAL, 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 OVS_VPORT_TYPE_GRE, 125 OVS_VPORT_TYPE_VXLAN, 126 __OVS_VPORT_TYPE_MAX 127 }; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 #define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1) 130 enum ovs_vport_attr { 131 OVS_VPORT_ATTR_UNSPEC, 132 OVS_VPORT_ATTR_PORT_NO, 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 OVS_VPORT_ATTR_TYPE, 135 OVS_VPORT_ATTR_NAME, 136 OVS_VPORT_ATTR_OPTIONS, 137 OVS_VPORT_ATTR_UPCALL_PID, 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 OVS_VPORT_ATTR_STATS, 140 __OVS_VPORT_ATTR_MAX 141 }; 142 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 enum { 145 OVS_TUNNEL_ATTR_UNSPEC, 146 OVS_TUNNEL_ATTR_DST_PORT, 147 __OVS_TUNNEL_ATTR_MAX 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 }; 150 #define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1) 151 #define OVS_FLOW_FAMILY "ovs_flow" 152 #define OVS_FLOW_MCGROUP "ovs_flow" 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 #define OVS_FLOW_VERSION 0x1 155 enum ovs_flow_cmd { 156 OVS_FLOW_CMD_UNSPEC, 157 OVS_FLOW_CMD_NEW, 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 OVS_FLOW_CMD_DEL, 160 OVS_FLOW_CMD_GET, 161 OVS_FLOW_CMD_SET 162 }; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 struct ovs_flow_stats { 165 __u64 n_packets; 166 __u64 n_bytes; 167 }; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 enum ovs_key_attr { 170 OVS_KEY_ATTR_UNSPEC, 171 OVS_KEY_ATTR_ENCAP, 172 OVS_KEY_ATTR_PRIORITY, 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 OVS_KEY_ATTR_IN_PORT, 175 OVS_KEY_ATTR_ETHERNET, 176 OVS_KEY_ATTR_VLAN, 177 OVS_KEY_ATTR_ETHERTYPE, 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 OVS_KEY_ATTR_IPV4, 180 OVS_KEY_ATTR_IPV6, 181 OVS_KEY_ATTR_TCP, 182 OVS_KEY_ATTR_UDP, 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 OVS_KEY_ATTR_ICMP, 185 OVS_KEY_ATTR_ICMPV6, 186 OVS_KEY_ATTR_ARP, 187 OVS_KEY_ATTR_ND, 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 OVS_KEY_ATTR_SKB_MARK, 190 OVS_KEY_ATTR_TUNNEL, 191 OVS_KEY_ATTR_SCTP, 192 OVS_KEY_ATTR_TCP_FLAGS, 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 __OVS_KEY_ATTR_MAX 195 }; 196 #define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1) 197 enum ovs_tunnel_key_attr { 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 OVS_TUNNEL_KEY_ATTR_ID, 200 OVS_TUNNEL_KEY_ATTR_IPV4_SRC, 201 OVS_TUNNEL_KEY_ATTR_IPV4_DST, 202 OVS_TUNNEL_KEY_ATTR_TOS, 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 OVS_TUNNEL_KEY_ATTR_TTL, 205 OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT, 206 OVS_TUNNEL_KEY_ATTR_CSUM, 207 __OVS_TUNNEL_KEY_ATTR_MAX 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 }; 210 #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1) 211 enum ovs_frag_type { 212 OVS_FRAG_TYPE_NONE, 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 OVS_FRAG_TYPE_FIRST, 215 OVS_FRAG_TYPE_LATER, 216 __OVS_FRAG_TYPE_MAX 217 }; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 #define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1) 220 struct ovs_key_ethernet { 221 __u8 eth_src[ETH_ALEN]; 222 __u8 eth_dst[ETH_ALEN]; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 }; 225 struct ovs_key_ipv4 { 226 __be32 ipv4_src; 227 __be32 ipv4_dst; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 __u8 ipv4_proto; 230 __u8 ipv4_tos; 231 __u8 ipv4_ttl; 232 __u8 ipv4_frag; 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 }; 235 struct ovs_key_ipv6 { 236 __be32 ipv6_src[4]; 237 __be32 ipv6_dst[4]; 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 __be32 ipv6_label; 240 __u8 ipv6_proto; 241 __u8 ipv6_tclass; 242 __u8 ipv6_hlimit; 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 __u8 ipv6_frag; 245 }; 246 struct ovs_key_tcp { 247 __be16 tcp_src; 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 __be16 tcp_dst; 250 }; 251 struct ovs_key_udp { 252 __be16 udp_src; 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 __be16 udp_dst; 255 }; 256 struct ovs_key_sctp { 257 __be16 sctp_src; 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 __be16 sctp_dst; 260 }; 261 struct ovs_key_icmp { 262 __u8 icmp_type; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 __u8 icmp_code; 265 }; 266 struct ovs_key_icmpv6 { 267 __u8 icmpv6_type; 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 __u8 icmpv6_code; 270 }; 271 struct ovs_key_arp { 272 __be32 arp_sip; 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 __be32 arp_tip; 275 __be16 arp_op; 276 __u8 arp_sha[ETH_ALEN]; 277 __u8 arp_tha[ETH_ALEN]; 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279 }; 280 struct ovs_key_nd { 281 __u32 nd_target[4]; 282 __u8 nd_sll[ETH_ALEN]; 283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 284 __u8 nd_tll[ETH_ALEN]; 285 }; 286 enum ovs_flow_attr { 287 OVS_FLOW_ATTR_UNSPEC, 288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 289 OVS_FLOW_ATTR_KEY, 290 OVS_FLOW_ATTR_ACTIONS, 291 OVS_FLOW_ATTR_STATS, 292 OVS_FLOW_ATTR_TCP_FLAGS, 293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 294 OVS_FLOW_ATTR_USED, 295 OVS_FLOW_ATTR_CLEAR, 296 OVS_FLOW_ATTR_MASK, 297 __OVS_FLOW_ATTR_MAX 298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 299 }; 300 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) 301 enum ovs_sample_attr { 302 OVS_SAMPLE_ATTR_UNSPEC, 303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 304 OVS_SAMPLE_ATTR_PROBABILITY, 305 OVS_SAMPLE_ATTR_ACTIONS, 306 __OVS_SAMPLE_ATTR_MAX, 307 }; 308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 309 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1) 310 enum ovs_userspace_attr { 311 OVS_USERSPACE_ATTR_UNSPEC, 312 OVS_USERSPACE_ATTR_PID, 313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 314 OVS_USERSPACE_ATTR_USERDATA, 315 __OVS_USERSPACE_ATTR_MAX 316 }; 317 #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1) 318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 319 struct ovs_action_push_vlan { 320 __be16 vlan_tpid; 321 __be16 vlan_tci; 322 }; 323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 324 enum ovs_action_attr { 325 OVS_ACTION_ATTR_UNSPEC, 326 OVS_ACTION_ATTR_OUTPUT, 327 OVS_ACTION_ATTR_USERSPACE, 328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 329 OVS_ACTION_ATTR_SET, 330 OVS_ACTION_ATTR_PUSH_VLAN, 331 OVS_ACTION_ATTR_POP_VLAN, 332 OVS_ACTION_ATTR_SAMPLE, 333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 334 __OVS_ACTION_ATTR_MAX 335 }; 336 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) 337 #endif 338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 339