diff options
Diffstat (limited to 'include/uapi/linux/openvswitch.h')
| -rw-r--r-- | include/uapi/linux/openvswitch.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index 501e4c4e2a03..ec75a685f1dd 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
| @@ -336,6 +336,7 @@ enum ovs_key_attr { | |||
| 336 | OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */ | 336 | OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */ |
| 337 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, /* struct ovs_key_ct_tuple_ipv4 */ | 337 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, /* struct ovs_key_ct_tuple_ipv4 */ |
| 338 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, /* struct ovs_key_ct_tuple_ipv6 */ | 338 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, /* struct ovs_key_ct_tuple_ipv6 */ |
| 339 | OVS_KEY_ATTR_NSH, /* Nested set of ovs_nsh_key_* */ | ||
| 339 | 340 | ||
| 340 | #ifdef __KERNEL__ | 341 | #ifdef __KERNEL__ |
| 341 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ | 342 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ |
| @@ -495,6 +496,30 @@ struct ovs_key_ct_tuple_ipv6 { | |||
| 495 | __u8 ipv6_proto; | 496 | __u8 ipv6_proto; |
| 496 | }; | 497 | }; |
| 497 | 498 | ||
| 499 | enum ovs_nsh_key_attr { | ||
| 500 | OVS_NSH_KEY_ATTR_UNSPEC, | ||
| 501 | OVS_NSH_KEY_ATTR_BASE, /* struct ovs_nsh_key_base. */ | ||
| 502 | OVS_NSH_KEY_ATTR_MD1, /* struct ovs_nsh_key_md1. */ | ||
| 503 | OVS_NSH_KEY_ATTR_MD2, /* variable-length octets for MD type 2. */ | ||
| 504 | __OVS_NSH_KEY_ATTR_MAX | ||
| 505 | }; | ||
| 506 | |||
| 507 | #define OVS_NSH_KEY_ATTR_MAX (__OVS_NSH_KEY_ATTR_MAX - 1) | ||
| 508 | |||
| 509 | struct ovs_nsh_key_base { | ||
| 510 | __u8 flags; | ||
| 511 | __u8 ttl; | ||
| 512 | __u8 mdtype; | ||
| 513 | __u8 np; | ||
| 514 | __be32 path_hdr; | ||
| 515 | }; | ||
| 516 | |||
| 517 | #define NSH_MD1_CONTEXT_SIZE 4 | ||
| 518 | |||
| 519 | struct ovs_nsh_key_md1 { | ||
| 520 | __be32 context[NSH_MD1_CONTEXT_SIZE]; | ||
| 521 | }; | ||
| 522 | |||
| 498 | /** | 523 | /** |
| 499 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. | 524 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. |
| 500 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow | 525 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow |
| @@ -811,6 +836,8 @@ struct ovs_action_push_eth { | |||
| 811 | * @OVS_ACTION_ATTR_POP_ETH: Pop the outermost Ethernet header off the | 836 | * @OVS_ACTION_ATTR_POP_ETH: Pop the outermost Ethernet header off the |
| 812 | * packet. | 837 | * packet. |
| 813 | * @OVS_ACTION_ATTR_CT_CLEAR: Clear conntrack state from the packet. | 838 | * @OVS_ACTION_ATTR_CT_CLEAR: Clear conntrack state from the packet. |
| 839 | * @OVS_ACTION_ATTR_PUSH_NSH: push NSH header to the packet. | ||
| 840 | * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet. | ||
| 814 | * | 841 | * |
| 815 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all | 842 | * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all |
| 816 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment | 843 | * fields within a header are modifiable, e.g. the IPv4 protocol and fragment |
| @@ -841,6 +868,8 @@ enum ovs_action_attr { | |||
| 841 | OVS_ACTION_ATTR_PUSH_ETH, /* struct ovs_action_push_eth. */ | 868 | OVS_ACTION_ATTR_PUSH_ETH, /* struct ovs_action_push_eth. */ |
| 842 | OVS_ACTION_ATTR_POP_ETH, /* No argument. */ | 869 | OVS_ACTION_ATTR_POP_ETH, /* No argument. */ |
| 843 | OVS_ACTION_ATTR_CT_CLEAR, /* No argument. */ | 870 | OVS_ACTION_ATTR_CT_CLEAR, /* No argument. */ |
| 871 | OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */ | ||
| 872 | OVS_ACTION_ATTR_POP_NSH, /* No argument. */ | ||
| 844 | 873 | ||
| 845 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted | 874 | __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted |
| 846 | * from userspace. */ | 875 | * from userspace. */ |
