Hi Ben, Hi All, this series adds infrastructure and message encoding and decoding to allow Open Flow 1.2 to be used to the extent that ovs-controller works as a learning-switch and similar logic implemented using Ryu[1].
[1] Ryu is an OpenFlow controller implemented in Python http://osrg.github.com/ryu/ Differing from the previous posting, this series supports encoding and decoding of Table and Port Status request and reply messages: I incorrectly claimed that about the previous posting too. This series also resolves several testsuite failures and warnings flagged by sparse. Base ---- This series is based the current master branch Availability ------------ This series is available in the devel/of1.2 (n.b: not devel/of12) branch of git://github.com/horms/openvswitch.git (a56948f1400916b0993a5423828c9077804f457d). Patches ------- Patches 1-9 are infrastructure patches and other supporting changes indirectly related to Open Flow 1.2 messages. [PATCH 01/47] ofp-util: Set switch_features actions to zero for Open [PATCH 02/47] nx-match: Separate raw match and header/pad pull/put [PATCH 03/47] ofp-util: Add ofputil_pull_ofp12_match() [PATCH 04/47] ofp-util: Allow encoding of Open Flow 1.1 & 1.2 [PATCH 05/47] ofp-util: Make ofperr_encode_msg__() use correct Open [PATCH 06/47] ofp-error: Remove ofperr_domain from external API [PATCH 07/47] ofp-util: Make make_echo_request() aware of different [PATCH 08/47] ofp-print: Use the prevailing protocol to call [PATCH 09/47] learning-switch: Send Features Request and Set Config Patches 10-44 add support for encoding and decoding of a number of Open Flow 1.2 messages. [PATCH 10/47] ofp-util: Allow encoding of Open Flow 1.2 Flow Mod [PATCH 11/47] ofp-util: Allow decoding of Open Flow 1.2 Flow Mod [PATCH 12/47] ofp-util: Allow encoding of Open Flow 1.2 Packet In [PATCH 13/47] ofp-util: Allow decoding of Open Flow 1.2 Packet In [PATCH 14/47] ofp-msgs: Update OFPRAW_OFPT_SET_CONFIG for OpenFlow [PATCH 15/47] ofp-actions: Return action size [PATCH 16/47] ofp-util: Prepare Packet Out encoder for other Open [PATCH 17/47] ofp-util: Allow encoding of Open Flow 1.1 and 1.2 [PATCH 18/47] ofp-util: Prepare Packet Out decoder for other Open [PATCH 19/47] ofp-util: Allow decoding of Open Flow 1.1 and 1.2 [PATCH 20/47] ofp-util: Allow encoding of Open Flow 1.2 Flow Removed [PATCH 21/47] ofp-util: Allow encoding Open Flow 1.2 Flow Stats [PATCH 22/47] ofp-util: Allow use of OF12 flow format [PATCH 23/47] ofp-util: Allow encoding of Open Flow 1.2 Port Mod [PATCH 24/47] ofp-util: Allow decoding of Open Flow 1.2 Port Mod [PATCH 25/47] ofp-msgs: Split OFPRAW_OFPST_FLOW_{REQUEST,REPLY} [PATCH 26/47] ofp-util: Prepare Flow Statistics Request Decoder for [PATCH 27/47] ofp-util: Allow decoding of Open Flow 1.2 Flow [PATCH 28/47] ofp-util: Allow encoding of Open Flow 1.2 Flow [PATCH 29/47] ofp-util: Allow decoding of Open Flow 1.2 Flow [PATCH 30/47] ofp-msgs: Split OFPRAW_OFPST_AGGREGATE_REQUEST [PATCH 31/47] ofp-msgs: Allow 1.0-1.2 range [PATCH 32/47] ofp-msgs: Split OFPRAW_OFPST_TABLE_REPLY [PATCH 33/47] ofp-print: Enable display of Open Flow 1.1 & 1.2 Table [PATCH 34/47] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Table [PATCH 35/47] ovs-ofctl: Use vconn as a parameter of [PATCH 36/47] ofp-msgs: Allow encoding and decoding of Open Flow 1.1 [PATCH 37/47] ofp-msgs: Split OFPRAW_OFPST_PORT_{REQUEST,REPLY} [PATCH 38/47] ovs-ofputil: Make str_to_port_no() aware of invalid [PATCH 39/47] ofp-util: Pass vconn to fetch_port_by_features() [PATCH 40/47] ofp-util: Allow encoding of Open Flow 1.1 & 1.2 Port [PATCH 41/47] ofp-print: Allow printing of Open Flow 1.1 & 1.2 Port [PATCH 42/47] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Port [PATCH 43/47] ofp-print: Allow printing of Open Flow 1.1 & 1.2 Port [PATCH 44/47] ovs-ofctl: Teach dump-ports about Open Flow 1.1 & 1.2 The last three patches are local hacks I have been using. They should not be applied but are provided for reference, in particular for anyone who wishes to try learning-switch testing. These patches should not be applied. [PATCH 45/47] Local: learning-switch: Call ofputil_encode_flow_mod() [PATCH 46/47] Local: ovs-controller: Make sure vconn is connected [PATCH 47/47] Local: Allow Open Flow 1.2 session to be negotiated Overall Diffstat (excluding patches 45-47) ------------------------------------------ build-aux/extract-ofp-msgs | 3 include/openflow/openflow-1.1.h | 4 include/openflow/openflow-1.2.h | 5 lib/learning-switch.c | 13 lib/nx-match.c | 235 + lib/nx-match.h | 14 lib/ofp-actions.c | 5 lib/ofp-actions.h | 4 lib/ofp-errors.c | 103 lib/ofp-errors.h | 18 lib/ofp-msgs.h | 63 lib/ofp-print.c | 274 + lib/ofp-util.c | 617 ++-- lib/ofp-util.h | 17 lib/rconn.c | 7 lib/vconn.c | 7 ofproto/connmgr.c | 3 ofproto/ofproto-dpif.c | 32 ofproto/ofproto-provider.h | 71 ofproto/ofproto.c | 222 + tests/learn.at | 2 tests/ofp-print.at | 4602 +++++++++++++++++++++++++++++- tests/ofproto.at | 12 utilities/ovs-ofctl.c | 214 - 24 files changed, 5971 insertions(+), 576 deletions(-) _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev