[ovs-dev] [PATCH v3 00/18] Run-Time Open Flow Version Configuration
Simon Horman
horms at verge.net.au
Fri Oct 26 02:35:48 UTC 2012
Hi,
This series adds run-time configuration of allowed OpenFlow versions
to ovs-vswtichd, ovs-ofctl and ovs-controller; and adds tests for Open Flow 1.2
messages that utilise the run-time configuration of allowed OpenFlow versions.
I believe that this addresses the issues raised by Ben Pfaff in
his review of v2 of this series. In particular:
* A uint32_t is used in place of a dynamically allocated bitmap, dramatically
simplifying the code.
* Hello message parsing skips unknown elements rather than
terminating processing.
* Hello messages are always encoded to have a version bitmap,
which is synthesized from the version in the header if no
version bitmap element is present.
I have also added a new final patch to the series which optimizes
ofputil_version_bitmap_scanr() using __builtin_clz. A similar approach can be
taken to optimise bitmap_scan() using ffs(3) if desired.
Git and diffstat information is provided below to aid review.
----------------------------------------------------------------
The following changes since commit f43e80e023378a2c1ef18d3caee9b76d6d2a6d23:
poll-loop: Log backtraces when CPU usage is high. (2012-10-25 11:14:07 -0700)
are available in the git repository at:
git://github.com/horms/openvswitch.git devel/of1.2-runtime-switch3
for you to fetch changes up to f4bbd98b778f679ebdcbffd86bc1a74d75a4e085:
ofp-util: Optimize ofputil_version_bitmap_scanr (2012-10-26 11:23:18 +0900)
----------------------------------------------------------------
Simon Horman (18):
vconn: Add ofputil_version_bitmap
vconn: Allowed OpenFlow versions
ofp-util: Add version bitmap support to hello messages
connmgr: Paramatise ofservice_create() over allowed OpenFlow versions
ofproto: Make set_pvconns() aware of OpenFlow versions
rconn: Add allowed OpenFlow versions
ofproto, connmgr: Parameterise OpenFlow versions for adding controller
ofp-util: Allow use of OpenFlow 12 flow format
connmgr: Use version of underlying rconn
vswitchd: Configuration of allowed OpenFlow versions
lib: Add helpers for OpenFlow version command line options
ovs-ofctl: Add option to set allowed OpenFlow versions
ovs-controller: Allow setting of allowed OpenFlow versions
ovs-ofctl: By default, do not set flow format for OpenFlow 1.1+
ofp-util: Open Flow 1.1 and 1.2 flow format capabilities
ofp-util: Flow Dump Protocol for OpenFlow 12
test: add ofproto OpenFlow1.2 tests
ofp-util: Optimize ofputil_version_bitmap_scanr
configure.ac | 1 +
include/openflow/openflow-common.h | 11 +
lib/automake.mk | 3 +
lib/ofp-print.c | 27 +-
lib/ofp-util.c | 328 ++++++++++++++++++--
lib/ofp-util.h | 80 ++++-
lib/ofp-version-opt.c | 42 +++
lib/ofp-version-opt.h | 28 ++
lib/ofp-version.man | 28 ++
lib/rconn.c | 9 +-
lib/rconn.h | 3 +-
lib/util.c | 21 ++
lib/util.h | 9 +
lib/vconn-provider.h | 23 +-
lib/vconn-stream.c | 20 +-
lib/vconn.c | 122 +++++---
lib/vconn.h | 12 +-
m4/openvswitch.m4 | 16 +
manpages.mk | 2 +
ofproto/connmgr.c | 56 ++--
ofproto/connmgr.h | 5 +-
ofproto/ofproto.c | 7 +-
ofproto/ofproto.h | 10 +-
tests/learn.at | 2 +-
tests/ofp-print.at | 23 ++
tests/ofproto-macros.at | 2 +-
tests/ofproto.at | 595 +++++++++++++++++++++++++++++++++---
tests/ovs-ofctl.at | 2 +-
tests/test-vconn.c | 18 +-
utilities/ovs-controller.8.in | 1 +
utilities/ovs-controller.c | 23 +-
utilities/ovs-ofctl.8.in | 1 +
utilities/ovs-ofctl.c | 95 +++---
vswitchd/bridge.c | 35 ++-
34 files changed, 1441 insertions(+), 219 deletions(-)
create mode 100644 lib/ofp-version-opt.c
create mode 100644 lib/ofp-version-opt.h
create mode 100644 lib/ofp-version.man
More information about the dev
mailing list