[ovs-dev] [RFC v4 00/63] Preliminary Open Flow 1.2 Message Support

Simon Horman horms at verge.net.au
Wed Jun 27 08:24:00 UTC 2012


On Wed, Jun 27, 2012 at 05:19:36PM +0900, Simon Horman wrote:
> Hi Ben,
> 
> this series is based on v2 of your Open Flow 1.1 work.
> Please let me know if you feel that I should rebase on top of v3.
> 
> Also, I apologise for not having reviewed v3 of your patches yet,
> I will try to get to it before the weekend.
> 
> 
> In terms of features, I believe that this series brings the
> Open Flow 1.2 implementation to the same level as the Open Flow 1.0
> implementation. However, it is not complete as Open Flow 1.2 includes
> features not present in Open Flow 1.1.
> 
> Although this series adds some Open Flow 1.1 support is is not as complete
> as the Open Flow 1.2 implementation. It should not be difficult to fill in
> the gaps, however, it is not a priority for me at this time.
> 
> 
> Key Changes since v3:
> 
> * Fix decoding of flow status messages. There was an error in the
>   calculation of the instructions length for all but the last flow. Thus if
>   there was more than one flow present decoding would fail.
> 
> * Add support for encoding and decoding
>   - Port Statistics
>   - Port Desc Status (actually introduced in Open Flow 1.3)
>   - Queue Statistics
> 
> * Correct pretty printing of Open Flow 1.1 and 1.2 variants of
>   various messages
> 
> 
> I have performed limited testing of this series using:
> 
> * ovs-controller as the controller for ovs-vswitchd
> 
> * ryu as the controller for ovs-vswitchd
>   - www.osrg.net/ryu/
> 
> * Using the dump-* targets of ovs-ofctl


Sorry for forgetting to include the git information in my post.

I have made my patches available in the (rebased) devel/of12 branch of
git://github.com/horms/openvswitch.git. The current head is
dd1cf6fe49d0839e692d8bafbd9cb70eeb41771a.

> Patch List:
> 
> [PATCH 01/63] Local Fix: ofp-util: Work on decoding OF1.1 flow_mods.
> [PATCH 02/63] nx-match: Take into account leading header when
> [PATCH 03/63] ofp-util: Add OFPUTIL_P_OF12 and NXFF_OPENFLOW12
> [PATCH 04/63] ofp-util: Allow decoder to use
> [PATCH 05/63] ofp-util: Make put_openflow_xid() aware of different
> [PATCH 06/63] ovs-controller: Make sure vconn is connected before
> [PATCH 07/63] ofp-util: Make make_openflow() aware of different
> [PATCH 08/63] ofp-util: Make make_openflow_xid() aware of different
> [PATCH 09/63] ofp-util: Make put_openflow() aware of different
> [PATCH 10/63] ofp-util: Make dump_transaction() aware of different
> [PATCH 11/63] ofp-util: Make put_stats*__() aware of different
> [PATCH 12/63] ofp-util: Make ofputil_make_stats_request() aware of
> [PATCH 13/63] ofp-util: Allow encoding of Open Flow 1.1 & 1.2
> [PATCH 14/63] ofp-util: Make ofperr_encode_msg__() use correct Open
> [PATCH 15/63] ofp-util: Make make_echo_request() aware of different
> [PATCH 16/63] openflow: Add Open Flow 1.2 to ofp_to_string__()
> [PATCH 17/63] ofp-util: Add ofputil_put_match()
> [PATCH 18/63] ofp-actions: Enhance ofpacts_to_openflow11 to encode
> [PATCH 19/63] ofp-print: Use the prevailing protocol to call
> [PATCH 20/63] learning-switch: Call ofputil_encode_flow_mod() with
> [PATCH 21/63] ofp-util: Reduce scope of variables in
> [PATCH 22/63] ofp-util: Allow encoding of Open Flow 1.2 Flow Mod
> [PATCH 23/63] ofp-util: Add ofputil_ofp12_decode_match()
> [PATCH 24/63] ofp-util: Allow decoding of Open Flow 1.2 Flow Mod
> [PATCH 25/63] ofp-util: Allow encoding of Open Flow 1.2 Flow Removed
> [PATCH 26/63] ofp-util: Allow decoding of Open Flow 1.2 Flow Removed
> [PATCH 27/63] ofp-util: Allow encoding Open Flow 1.2 Flow Stats
> [PATCH 28/63] ofp-util: Allow encoding of Open Flow 1.2 Port Mod
> [PATCH 29/63] ofp-util: Allow decoding of Open Flow 1.2 Port Mod
> [PATCH 30/63] ofp-util: Update ofputil_capabilities for Open Flow
> [PATCH 31/63] ofp-util: Update OFPC_COMMON and add
> [PATCH 32/63] ofp-util: Allow decoding of Open Flow 1.2 Features
> [PATCH 33/63] ofp-util: Allow encoding of Open Flow 1.2 Packet In
> [PATCH 34/63] ofp-util: Allow decoding of Open Flow 1.2 Packet In
> [PATCH 35/63] ofp-util: Prepare Packet Out decoder for other Open
> [PATCH 36/63] ofp-util: Allow decoding of Open Flow 1.1 and 1.2
> [PATCH 37/63] ofp-util: Prepare Packet Out encoder for other Open
> [PATCH 38/63] ofp-util: Allow encoding of Open Flow 1.1 and 1.2
> [PATCH 39/63] ofp-util: Enable decoding of more Open Flow 1.1 and
> [PATCH 40/63] ofp-util: Allow encoding of Open Flow 1.2 Flow
> [PATCH 41/63] ofp-util: Allow decoding of Open Flow 1.2 Flow
> [PATCH 42/63] ofp-util: Allow decoding of Open Flow 1.2 Flow
> [PATCH 43/63] openflow: Rename ofp_aggregate_stats_reply as
> [PATCH 44/63] ofp-print: Allow display of Open Flow 1.1 & 1.2 Flow
> [PATCH 45/63] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Flow
> [PATCH 46/63] ofp-print: Enable display of Open Flow 1.1 & 1.2 Table
> [PATCH 47/63] nxast: Use ofp11_aggregate_stats_reply for NXAST
> [PATCH 48/63] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Table
> [PATCH 49/63] ofp-util: Allow encoding of Open Flow 1.1 & 1.2 Port
> [PATCH 50/63] ovs-ofctl: Make dump-ports aware of different Open
> [PATCH 51/63] ovs-ofputil: Make str_to_port_no() aware of invalid
> [PATCH 52/63] ofp-util: Pass vconn to fetch_port_by_features()
> [PATCH 53/63] ofp-print: Allow printing of Open Flow 1.1 & 1.2 Port
> [PATCH 54/63] ofp-print: Allow display of Open Flow 1.1 & 1.2 Port
> [PATCH 55/63] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Port
> [PATCH 56/63] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Port
> [PATCH 57/63] ofp-print: Enable display of Open Flow 1.1 & 1.2 Queue
> [PATCH 58/63] ofp-util: Allow encoding of Open Flow 1.1 & 1.2 Queue
> [PATCH 59/63] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Queue
> [PATCH 60/63] ovs-print: Enable display of Open Flow 1.1 & 1.2 Queue
> [PATCH 61/63] ovs-util: Enable decoding of Open Flow 1.1 & 1.2 Queue
> [PATCH 62/63] ovs-ofpctl: Enable queue-stats for Open Flow 1.1 & 1.2
> [PATCH 63/63] Local Hack: Allow Open Flow 1.2 session to be
> 
> Overall diffstat:
> 
> 
>  include/openflow/nicira-ext.h      |   19 
>  include/openflow/openflow-1.1.h    |   14 
>  include/openflow/openflow-1.2.h    |   29 
>  include/openflow/openflow-common.h |    4 
>  lib/learning-switch.c              |   21 
>  lib/nx-match.c                     |   27 
>  lib/nx-match.h                     |   14 
>  lib/ofp-actions.c                  |   36 +
>  lib/ofp-actions.h                  |    3 
>  lib/ofp-errors.c                   |   35 -
>  lib/ofp-errors.h                   |    2 
>  lib/ofp-print.c                    |  419 ++++++++++++--
>  lib/ofp-util.c                     | 1058 ++++++++++++++++++++++++++++--------
>  lib/ofp-util.h                     |   52 +
>  lib/rconn.c                        |    7 
>  lib/vconn.c                        |   20 
>  ofproto/connmgr.c                  |    5 
>  ofproto/ofproto-dpif.c             |   32 -
>  ofproto/ofproto-provider.h         |   71 ++
>  ofproto/ofproto.c                  |  306 +++++++++-
>  utilities/ovs-controller.c         |   20 
>  utilities/ovs-ofctl.c              |  225 +++++--
>  22 files changed, 1940 insertions(+), 479 deletions(-)
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
> 



More information about the dev mailing list