diff options
author | David S. Miller <davem@davemloft.net> | 2013-08-27 22:11:18 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-27 22:11:18 -0400 |
commit | 5b2941b18dc5f60a5c14a5c15693f9c58b0dd922 (patch) | |
tree | 30351cd35586f3acf9907aa0f3b4ab9d4f7be81f /include | |
parent | b6750b4056720629e4c1e2e0d05f63692bffad27 (diff) | |
parent | 5828cd9a68873df1340b420371c02c47647878fb (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch
Jesse Gross says:
====================
A number of significant new features and optimizations for net-next/3.12.
Highlights are:
* "Megaflows", an optimization that allows userspace to specify which
flow fields were used to compute the results of the flow lookup.
This allows for a major reduction in flow setups (the major
performance bottleneck in Open vSwitch) without reducing flexibility.
* Converting netlink dump operations to use RCU, allowing for
additional parallelism in userspace.
* Matching and modifying SCTP protocol fields.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/ipv6.h | 1 | ||||
-rw-r--r-- | include/uapi/linux/openvswitch.h | 15 |
2 files changed, 15 insertions, 1 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 5fe564985171..7bdff0455065 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -41,6 +41,7 @@ | |||
41 | #define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ | 41 | #define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ |
42 | #define NEXTHDR_NONE 59 /* No next header */ | 42 | #define NEXTHDR_NONE 59 /* No next header */ |
43 | #define NEXTHDR_DEST 60 /* Destination options header. */ | 43 | #define NEXTHDR_DEST 60 /* Destination options header. */ |
44 | #define NEXTHDR_SCTP 132 /* SCTP message. */ | ||
44 | #define NEXTHDR_MOBILITY 135 /* Mobility header. */ | 45 | #define NEXTHDR_MOBILITY 135 /* Mobility header. */ |
45 | 46 | ||
46 | #define NEXTHDR_MAX 255 | 47 | #define NEXTHDR_MAX 255 |
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h index 52490b0e62b5..a74d375b439b 100644 --- a/include/uapi/linux/openvswitch.h +++ b/include/uapi/linux/openvswitch.h | |||
@@ -1,6 +1,6 @@ | |||
1 | 1 | ||
2 | /* | 2 | /* |
3 | * Copyright (c) 2007-2011 Nicira Networks. | 3 | * Copyright (c) 2007-2013 Nicira, Inc. |
4 | * | 4 | * |
5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
6 | * modify it under the terms of version 2 of the GNU General Public | 6 | * modify it under the terms of version 2 of the GNU General Public |
@@ -259,6 +259,7 @@ enum ovs_key_attr { | |||
259 | OVS_KEY_ATTR_ND, /* struct ovs_key_nd */ | 259 | OVS_KEY_ATTR_ND, /* struct ovs_key_nd */ |
260 | OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */ | 260 | OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */ |
261 | OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */ | 261 | OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */ |
262 | OVS_KEY_ATTR_SCTP, /* struct ovs_key_sctp */ | ||
262 | 263 | ||
263 | #ifdef __KERNEL__ | 264 | #ifdef __KERNEL__ |
264 | OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */ | 265 | OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */ |
@@ -333,6 +334,11 @@ struct ovs_key_udp { | |||
333 | __be16 udp_dst; | 334 | __be16 udp_dst; |
334 | }; | 335 | }; |
335 | 336 | ||
337 | struct ovs_key_sctp { | ||
338 | __be16 sctp_src; | ||
339 | __be16 sctp_dst; | ||
340 | }; | ||
341 | |||
336 | struct ovs_key_icmp { | 342 | struct ovs_key_icmp { |
337 | __u8 icmp_type; | 343 | __u8 icmp_type; |
338 | __u8 icmp_code; | 344 | __u8 icmp_code; |
@@ -379,6 +385,12 @@ struct ovs_key_nd { | |||
379 | * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the | 385 | * @OVS_FLOW_ATTR_CLEAR: If present in a %OVS_FLOW_CMD_SET request, clears the |
380 | * last-used time, accumulated TCP flags, and statistics for this flow. | 386 | * last-used time, accumulated TCP flags, and statistics for this flow. |
381 | * Otherwise ignored in requests. Never present in notifications. | 387 | * Otherwise ignored in requests. Never present in notifications. |
388 | * @OVS_FLOW_ATTR_MASK: Nested %OVS_KEY_ATTR_* attributes specifying the | ||
389 | * mask bits for wildcarded flow match. Mask bit value '1' specifies exact | ||
390 | * match with corresponding flow key bit, while mask bit value '0' specifies | ||
391 | * a wildcarded match. Omitting attribute is treated as wildcarding all | ||
392 | * corresponding fields. Optional for all requests. If not present, | ||
393 | * all flow key bits are exact match bits. | ||
382 | * | 394 | * |
383 | * These attributes follow the &struct ovs_header within the Generic Netlink | 395 | * These attributes follow the &struct ovs_header within the Generic Netlink |
384 | * payload for %OVS_FLOW_* commands. | 396 | * payload for %OVS_FLOW_* commands. |
@@ -391,6 +403,7 @@ enum ovs_flow_attr { | |||
391 | OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */ | 403 | OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */ |
392 | OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */ | 404 | OVS_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */ |
393 | OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */ | 405 | OVS_FLOW_ATTR_CLEAR, /* Flag to clear stats, tcp_flags, used. */ |
406 | OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */ | ||
394 | __OVS_FLOW_ATTR_MAX | 407 | __OVS_FLOW_ATTR_MAX |
395 | }; | 408 | }; |
396 | 409 | ||