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