[ovs-git] Open vSwitch: ofp-actions: Add decoding and encoding OF1.1 instructions and actions. (master)

dev at openvswitch.org dev at openvswitch.org
Wed Jul 4 05:23:30 UTC 2012


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  d01c980ffe0d61497298a9f907ff93fe1751e2bd (commit)
       via  f25d0cf3c366d92042269a4f787f19c741c2530c (commit)
       via  690a61c50a4744603be2ee3de8e22c97f9140d94 (commit)
      from  2a586a5c1349177dcb9306e4b91ca4063ec79722 (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 d01c980ffe0d61497298a9f907ff93fe1751e2bd
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=d01c980ffe0d61497298a9f907ff93fe1751e2bd
Author: Ben Pfaff <blp at nicira.com>
		
ofp-actions: Add decoding and encoding OF1.1 instructions and actions.
		
So far, only the Apply-Actions instruction is supported, and only
actions that have identical semantics to OpenFlow 1.0 actions.

Co-authored-by: Simon Horman <horms at verge.net.au>
Co-authored-by: Isaku Yamahata <yamahata at valinux.co.jp>
Signed-off-by: Ben Pfaff <blp at nicira.com>


commit f25d0cf3c366d92042269a4f787f19c741c2530c
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f25d0cf3c366d92042269a4f787f19c741c2530c
Author: Ben Pfaff <blp at nicira.com>
		
Introduce ofpacts, an abstraction of OpenFlow actions.
		
OpenFlow actions have always been somewhat awkward to handle.
Moreover, over time we've started creating actions that require more
complicated parsing.  When we maintain those actions internally in
their wire format, we end up parsing them multiple times, whenever
we have to look at the set of actions.

When we add support for OpenFlow 1.1 or later protocols, the situation
will get worse, because these newer protocols support many of the same
actions but with different representations.  It becomes unrealistic to
handle each protocol in its wire format.

This commit adopts a new strategy, by converting OpenFlow actions into
an internal form from the wire format when they are read, and converting
them back to the wire format when flows are dumped.  I believe that this
will be more maintainable over time.

Thanks to Simon Horman and Pravin Shelar for reviews.

Signed-off-by: Ben Pfaff <blp at nicira.com>


commit 690a61c50a4744603be2ee3de8e22c97f9140d94
Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=690a61c50a4744603be2ee3de8e22c97f9140d94
Author: Ben Pfaff <blp at nicira.com>
		
ofp-util: Add OFPUTIL_ACTION_INVALID to enum ofputil_action_code.
		
Possibly the ofputil_decode_action() interface should be rethought now
that ofputil_action_code has an invalid value.

Reviewed-by: Simon Horman <horms at verge.net.au>
Signed-off-by: Ben Pfaff <blp at nicira.com>


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

Summary of changes:
 DESIGN                             |   33 +
 NEWS                               |    3 +
 build-aux/extract-ofp-errors       |    1 +
 include/openflow/openflow-1.0.h    |   59 +--
 include/openflow/openflow-1.1.h    |   20 +
 include/openflow/openflow-common.h |   55 ++-
 lib/automake.mk                    |    2 +
 lib/autopath.c                     |   70 +-
 lib/autopath.h                     |   15 +-
 lib/bundle.c                       |  277 +++---
 lib/bundle.h                       |   26 +-
 lib/compiler.h                     |   20 +-
 lib/learn.c                        |  672 +++++++--------
 lib/learn.h                        |   17 +-
 lib/learning-switch.c              |   99 +-
 lib/multipath.c                    |  159 ++--
 lib/multipath.h                    |   18 +-
 lib/nx-match.c                     |  217 ++---
 lib/nx-match.h                     |   35 +-
 lib/ofp-actions.c                  | 1773 ++++++++++++++++++++++++++++++++++++
 lib/ofp-actions.h                  |  496 ++++++++++
 lib/ofp-errors.h                   |    5 +-
 lib/ofp-parse.c                    |  265 +++---
 lib/ofp-parse.h                    |    2 +-
 lib/ofp-print.c                    |  288 +------
 lib/ofp-print.h                    |    2 -
 lib/ofp-util.c                     |  532 ++---------
 lib/ofp-util.def                   |   26 +-
 lib/ofp-util.h                     |   81 +--
 ofproto/connmgr.c                  |   17 +-
 ofproto/fail-open.c                |   14 +-
 ofproto/in-band.c                  |   37 +-
 ofproto/ofproto-dpif.c             |  400 ++++-----
 ofproto/ofproto-provider.h         |   34 +-
 ofproto/ofproto.c                  |  122 ++--
 tests/automake.mk                  |    1 +
 tests/learn.at                     |    4 +-
 tests/ofp-actions.at               |  310 +++++++
 tests/test-bundle.c                |   55 +-
 tests/test-multipath.c             |   11 +-
 tests/testsuite.at                 |    1 +
 utilities/ovs-ofctl.c              |  262 +++++-
 42 files changed, 4383 insertions(+), 2153 deletions(-)
 create mode 100644 lib/ofp-actions.c
 create mode 100644 lib/ofp-actions.h
 create mode 100644 tests/ofp-actions.at


hooks/post-receive
-- 
Open vSwitch



More information about the git mailing list