[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