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