aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/openvswitch.h29
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
499enum 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
509struct 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
519struct 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. */