diff options
Diffstat (limited to 'include/uapi/linux/openvswitch.h')
| -rw-r--r-- | include/uapi/linux/openvswitch.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index d6b885460187..55f599792673 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
| @@ -164,6 +164,9 @@ enum ovs_packet_cmd { | |||
| 164 | * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the | 164 | * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the |
| 165 | * output port is actually a tunnel port. Contains the output tunnel key | 165 | * output port is actually a tunnel port. Contains the output tunnel key |
| 166 | * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. | 166 | * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. |
| 167 | * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and | ||
| 168 | * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment | ||
| 169 | * size. | ||
| 167 | * | 170 | * |
| 168 | * These attributes follow the &struct ovs_header within the Generic Netlink | 171 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 169 | * payload for %OVS_PACKET_* commands. | 172 | * payload for %OVS_PACKET_* commands. |
| @@ -180,6 +183,7 @@ enum ovs_packet_attr { | |||
| 180 | OVS_PACKET_ATTR_UNUSED2, | 183 | OVS_PACKET_ATTR_UNUSED2, |
| 181 | OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, | 184 | OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, |
| 182 | error logging should be suppressed. */ | 185 | error logging should be suppressed. */ |
| 186 | OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */ | ||
| 183 | __OVS_PACKET_ATTR_MAX | 187 | __OVS_PACKET_ATTR_MAX |
| 184 | }; | 188 | }; |
| 185 | 189 | ||
| @@ -319,6 +323,8 @@ enum ovs_key_attr { | |||
| 319 | OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls. | 323 | OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls. |
| 320 | * The implementation may restrict | 324 | * The implementation may restrict |
| 321 | * the accepted length of the array. */ | 325 | * the accepted length of the array. */ |
| 326 | OVS_KEY_ATTR_CT_STATE, /* u8 bitmask of OVS_CS_F_* */ | ||
| 327 | OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */ | ||
| 322 | 328 | ||
| 323 | #ifdef __KERNEL__ | 329 | #ifdef __KERNEL__ |
| 324 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ | 330 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ |
| @@ -431,6 +437,15 @@ struct ovs_key_nd { | |||
| 431 | __u8 nd_tll[ETH_ALEN]; | 437 | __u8 nd_tll[ETH_ALEN]; |
| 432 | }; | 438 | }; |
| 433 | 439 | ||
| 440 | /* OVS_KEY_ATTR_CT_STATE flags */ | ||
| 441 | #define OVS_CS_F_NEW 0x01 /* Beginning of a new connection. */ | ||
| 442 | #define OVS_CS_F_ESTABLISHED 0x02 /* Part of an existing connection. */ | ||
| 443 | #define OVS_CS_F_RELATED 0x04 /* Related to an established | ||
| 444 | * connection. */ | ||
| 445 | #define OVS_CS_F_INVALID 0x20 /* Could not track connection. */ | ||
| 446 | #define OVS_CS_F_REPLY_DIR 0x40 /* Flow is in the reply direction. */ | ||
| 447 | #define OVS_CS_F_TRACKED 0x80 /* Conntrack has occurred. */ | ||
| 448 | |||
| 434 | /** | 449 | /** |
| 435 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. | 450 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. |
| 436 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow | 451 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow |
| @@ -595,6 +610,28 @@ struct ovs_action_hash { | |||
| 595 | }; | 610 | }; |
| 596 | 611 | ||
| 597 | /** | 612 | /** |
| 613 | * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action. | ||
| 614 | * @OVS_CT_ATTR_FLAGS: u32 connection tracking flags. | ||
| 615 | * @OVS_CT_ATTR_ZONE: u16 connection tracking zone. | ||
| 616 | */ | ||
| 617 | enum ovs_ct_attr { | ||
| 618 | OVS_CT_ATTR_UNSPEC, | ||
| 619 | OVS_CT_ATTR_FLAGS, /* u8 bitmask of OVS_CT_F_*. */ | ||
| 620 | OVS_CT_ATTR_ZONE, /* u16 zone id. */ | ||
| 621 | __OVS_CT_ATTR_MAX | ||
| 622 | }; | ||
| 623 | |||
| 624 | #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1) | ||
| 625 | |||
| 626 | /* | ||
| 627 | * OVS_CT_ATTR_FLAGS flags - bitmask of %OVS_CT_F_* | ||
| 628 | * @OVS_CT_F_COMMIT: Commits the flow to the conntrack table. This allows | ||
| 629 | * future packets for the same connection to be identified as 'established' | ||
| 630 | * or 'related'. | ||
| 631 | */ | ||
| 632 | #define OVS_CT_F_COMMIT 0x01 | ||
| 633 | |||
| 634 | /** | ||
| 598 | * enum ovs_action_attr - Action types. | 635 | * enum ovs_action_attr - Action types. |
| 599 | * | 636 | * |
| 600 | * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. | 637 | * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. |
| @@ -623,6 +660,8 @@ struct ovs_action_hash { | |||
| 623 | * indicate the new packet contents. This could potentially still be | 660 | * indicate the new packet contents. This could potentially still be |
| 624 | * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there | 661 | * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there |
| 625 | * is no MPLS label stack, as determined by ethertype, no action is taken. | 662 | * is no MPLS label stack, as determined by ethertype, no action is taken. |
| 663 | * @OVS_ACTION_ATTR_CT: Track the connection. Populate the conntrack-related | ||
| 664 | * entries in the flow key. | ||
| 626 | * | 665 | * |
| 627 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all | 666 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 628 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment | 667 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| @@ -648,6 +687,7 @@ enum ovs_action_attr { | |||
| 648 | * data immediately followed by a mask. | 687 | * data immediately followed by a mask. |
| 649 | * The data must be zero for the unmasked | 688 | * The data must be zero for the unmasked |
| 650 | * bits. */ | 689 | * bits. */ |
| 690 | OVS_ACTION_ATTR_CT, /* One nested OVS_CT_ATTR_* . */ | ||
| 651 | 691 | ||
| 652 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted | 692 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 653 | * from userspace. */ | 693 | * from userspace. */ |
