[ovs-git] Open vSwitch: Expand tunnel IDs from 32 to 64 bits. (master)

dev at openvswitch.org dev at openvswitch.org
Fri Dec 10 19:27:13 UTC 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Open vSwitch".

The branch, master has been updated
       via  b9298d3f825703063c9538aa37407da43e1e4781 (commit)
       via  ff9d38264c74e2e807ba0fd759e44116d1203670 (commit)
       via  cb833cf6c345d9b038ff2ab4fd11a2498cc07efb (commit)
       via  cdee00fd635d1e0f1eeb5d9c009daeb59abd4777 (commit)
       via  7f8ca6459c37ede8faf13f730bcd4d9f05dfd13b (commit)
       via  7c6244783982509fddd62b3296bc627943bb7a1a (commit)
       via  ee913f985d470515cc018e57ea56aac3f087702f (commit)
       via  2fe27d5ad27f3c7879ea696209bcf9702d9b7109 (commit)
       via  365a25176bf854112b37c56888979d7755ab0d72 (commit)
      from  d774cadf7b661f099687049a0c4a7c1a3b679987 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b9298d3f825703063c9538aa37407da43e1e4781
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=b9298d3f825703063c9538aa37407da43e1e4781
Author: Ben Pfaff <blp at nicira.com>
		
Expand tunnel IDs from 32 to 64 bits.
		
We have a need to identify tunnels with keys longer than 32 bits.  This
commit adds basic datapath and OpenFlow support for such keys.  It doesn't
actually add any tunnel protocols that support 64-bit keys, so this is not
very useful yet.

The 'arg' member of struct odp_msg had to be expanded to 64-bits also,
because it sometimes contains a tunnel ID.  This member also contains the
argument passed to ODPAT_CONTROLLER, so I expanded that action's argument
to 64 bits also so that it can use the full width of the expanded 'arg'.
Userspace doesn't take advantage of the new space though (it was only
using 16 bits anyhow).

This commit has been tested only to the extent that it doesn't disrupt
basic Open vSwitch operation.  I have not tested it with tunnel traffic.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>
Feature #3976.


commit ff9d38264c74e2e807ba0fd759e44116d1203670
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ff9d38264c74e2e807ba0fd759e44116d1203670
Author: Ben Pfaff <blp at nicira.com>
		
ofp-util: Make ofputil_cls_rule_to_match() help with flow cookies too.
		
This fixes OpenFlow 1.0 flow stats reporting of flows added via NXM.

I noticed this problem while implementing 64-bit tunnel IDs, hence the
positioning.  The following commit adds a test.

Acked-by: Jesse Gross <jesse at nicira.com>


commit cb833cf6c345d9b038ff2ab4fd11a2498cc07efb
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=cb833cf6c345d9b038ff2ab4fd11a2498cc07efb
Author: Ben Pfaff <blp at nicira.com>
		
ofproto: Format entire rule when dumping all flows.
		
cls_rule_format() formats the entire classifier rule, whereas
ofp_print_match() just shows the parts that are visible in OpenFlow 1.0.

Acked-by: Jesse Gross <jesse at nicira.com>


commit cdee00fd635d1e0f1eeb5d9c009daeb59abd4777
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=cdee00fd635d1e0f1eeb5d9c009daeb59abd4777
Author: Ben Pfaff <blp at nicira.com>
		
datapath: Replace "struct odp_action" by Netlink attributes.
		
In the medium term, we plan to migrate the datapath to use Netlink as its
communication channel.  In the short term, we need to be able to have
actions with 64-bit arguments but "struct odp_action" only has room for
48 bits.  So this patch shifts to variable-length arguments using Netlink
attributes, which starts in on the Netlink transition and makes 64-bit
arguments possible at the same time.

Signed-off-by: Ben Pfaff <blp at nicira.com>
Acked-by: Jesse Gross <jesse at nicira.com>


commit 7f8ca6459c37ede8faf13f730bcd4d9f05dfd13b
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7f8ca6459c37ede8faf13f730bcd4d9f05dfd13b
Author: Ben Pfaff <blp at nicira.com>
		
netlink: Add macros for iterating through attributes.
		
Acked-by: Jesse Gross <jesse at nicira.com>


commit 7c6244783982509fddd62b3296bc627943bb7a1a
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7c6244783982509fddd62b3296bc627943bb7a1a
Author: Ben Pfaff <blp at nicira.com>
		
netlink: New function nl_attr_type().
		
Linux since v2.6.24 has a couple of couple of bits at the top of
nla_type that one is apparently supposed to ignore.  This commit
starts doing that in Open vSwitch userspace.

Acked-by: Jesse Gross <jesse at nicira.com>


commit ee913f985d470515cc018e57ea56aac3f087702f
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ee913f985d470515cc018e57ea56aac3f087702f
Author: Ben Pfaff <blp at nicira.com>
		
netlink: Add functions for working with big-endian attribute values.
		
These _be<N> functions are completely equivalent to the corresponding
_u<N> functions, but the names help to make their purpose clear.

Acked-by: Jesse Gross <jesse at nicira.com>


commit 2fe27d5ad27f3c7879ea696209bcf9702d9b7109
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=2fe27d5ad27f3c7879ea696209bcf9702d9b7109
Author: Ben Pfaff <blp at nicira.com>
		
netlink: Split into generic and Linux-specific parts.
		
The parts of the netlink module that are related to sockets are
Linux-specific, since only Linux has AF_NETLINK sockets.  The rest can be
built anywhere.  This commit breaks them into two modules, and builds the
generic one on all platforms.

Acked-by: Jesse Gross <jesse at nicira.com>


commit 365a25176bf854112b37c56888979d7755ab0d72
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=365a25176bf854112b37c56888979d7755ab0d72
Author: Ben Pfaff <blp at nicira.com>
		
netlink: Make netlink-protocol.h compatible with <linux/netlink.h>.
		
Until now, netlink-protocol.h and <linux/netlink.h> could not both be
included by a single source file, because they contained conflicting
definitions.  This commit fixes the problem, by having netlink-protocol.h
delegate to <linux/netlink.h> where it is available.

Here's an example of the problem: odp-util.c includes both
datapath-protocol.h and will need netlink-protocol.h also so that it can
look through actions defined as struct nlattr.  datapath-protocol.h
includes <linux/if_link.h> for the definition of rtnl_link_stats64, and
<linux/if_link.h> includes <linux/netlink.h>.

Acked-by: Jesse Gross <jesse at nicira.com>


-----------------------------------------------------------------------

Summary of changes:
 datapath/actions.c                      |  101 ++--
 datapath/actions.h                      |    3 +-
 datapath/datapath.c                     |  152 +++---
 datapath/datapath.h                     |    8 +-
 datapath/flow.c                         |   12 +-
 datapath/flow.h                         |    6 +-
 datapath/loop_counter.c                 |    2 +-
 datapath/odp-compat.h                   |    4 +-
 datapath/tunnel.c                       |   11 +-
 datapath/tunnel.h                       |    4 +-
 datapath/vport-gre.c                    |   32 +-
 include/openflow/nicira-ext.h           |   19 +-
 include/openvswitch/datapath-protocol.h |  145 ++----
 include/openvswitch/tunnel.h            |   14 +-
 lib/automake.mk                         |    6 +-
 lib/classifier.c                        |    8 +-
 lib/classifier.h                        |    2 +-
 lib/dpif-linux.c                        |    6 +-
 lib/dpif-netdev.c                       |  133 +++--
 lib/dpif-provider.h                     |    9 +-
 lib/dpif.c                              |   66 ++--
 lib/dpif.h                              |   11 +-
 lib/flow.c                              |    6 +-
 lib/flow.h                              |    6 +-
 lib/netdev-linux.c                      |    1 +
 lib/netdev-vport.c                      |    8 +-
 lib/netlink-protocol.h                  |   25 +-
 lib/netlink-socket.c                    |  814 ++++++++++++++++++++++++++++
 lib/netlink-socket.h                    |   78 +++
 lib/netlink.c                           |  903 ++++---------------------------
 lib/netlink.h                           |   86 ++--
 lib/nx-match.c                          |    8 +-
 lib/odp-util.c                          |  145 ++++--
 lib/odp-util.h                          |   31 +-
 lib/ofp-parse.c                         |   24 +-
 lib/ofp-print.c                         |    8 +
 lib/ofp-util.c                          |   58 ++-
 lib/ofp-util.h                          |    3 +-
 lib/rtnetlink.c                         |    1 +
 ofproto/in-band.c                       |   12 +-
 ofproto/in-band.h                       |    4 +-
 ofproto/ofproto-sflow.c                 |   67 +--
 ofproto/ofproto.c                       |  274 +++++-----
 ofproto/ofproto.h                       |    7 +-
 tests/ovs-ofctl.at                      |    2 +
 tests/test-classifier.c                 |    4 +-
 tests/test-flows.c                      |    3 +-
 utilities/nlmon.c                       |    1 +
 utilities/ovs-dpctl.c                   |    6 +-
 utilities/ovs-ofctl.8.in                |    9 +-
 vswitchd/bridge.c                       |   35 +-
 vswitchd/ovs-brcompatd.c                |    1 +
 vswitchd/proc-net-compat.c              |    1 +
 53 files changed, 1837 insertions(+), 1548 deletions(-)
 create mode 100644 lib/netlink-socket.c
 create mode 100644 lib/netlink-socket.h


hooks/post-receive
-- 
Open vSwitch




More information about the git mailing list