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