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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev