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 also supports a number of
statistics messages. These have been tested using the dump-flows,
dump-aggregate, dump-port and dump-tables subcommands of ovs-ofctl.
This series also includes a number of ofp-print.at tests which were
not present in the previous series.
Finally, it also addresses all concerns raised by Ben in relation to
the previous posting.
I believe this series is ready for review.
Base
----
This series is based the of1.1 branch of git://benpfaff.org/openvswitch,
commit bce80ff228223ec9dfde8d348822e264cf99487e (ofp-util: Work on decoding
OF1.1 flow_mods.).
Availability
------------
This series is availabile in the devel/of1.2 (n.b: not devel/of12) branch
of git://github.com/horms/openvswitch.git
Patches
-------
Patches 1-13 are infrastructure patches and other supporting changes
indirectly related to Open Flow 1.2 messages.
[PATCH 01/45] openflow: Add enum ofp_version
[PATCH 02/45] ofproto: As of Open Flow 1.1 switch_features has no
[PATCH 03/45] ofp-util: Add of12_action_bits
[PATCH 04/45] ofp-util: Reduce scope of variables in
[PATCH 05/45] ofp-util: Update Capabilities for Open Flow 1.2
[PATCH 06/45] nx-match: Separate raw match and header/pad pull/put
[PATCH 07/45] ofp-util: Add ofputil_pull_ofp12_match()
[PATCH 08/45] ofp-util: Allow encoding of Open Flow 1.1 & 1.2
[PATCH 09/45] ofp-util: Make ofperr_encode_msg__() use correct Open
[PATCH 10/45] ofp-error: Remove ofperr_domain from external API
[PATCH 11/45] ofp-util: Make make_echo_request() aware of different
[PATCH 12/45] ofp-print: Use the prevailing protocol to call
[PATCH 13/45] learning-switch: Send Features Request and Set Config
Patches 14-42 add support for encoding and decoding of a
number of Open Flow 1.2 messages.
[PATCH 14/45] ofp-util: Allow encoding of Open Flow 1.2 Flow Mod
[PATCH 15/45] ofp-util: Allow decoding of Open Flow 1.2 Flow Mod
[PATCH 16/45] ofp-util: Allow encoding of Open Flow 1.2 Packet In
[PATCH 17/45] ofp-util: Allow decoding of Open Flow 1.2 Packet In
[PATCH 18/45] ofp-msgs: Update OFPRAW_OFPT_SET_CONFIG for OpenFlow
[PATCH 19/45] ofp-actions: Return action size
[PATCH 20/45] ofp-util: Prepare Packet Out encoder for other Open
[PATCH 21/45] ofp-util: Allow encoding of Open Flow 1.1 and 1.2
[PATCH 22/45] ofp-util: Prepare Packet Out decoder for other Open
[PATCH 23/45] ofp-util: Allow decoding of Open Flow 1.1 and 1.2
[PATCH 24/45] ofp-util: Allow encoding of Open Flow 1.2 Flow Removed
[PATCH 25/45] ofp-util: Allow encoding Open Flow 1.2 Flow Stats
[PATCH 26/45] ofp-util: Allow use of OF12 flow format
[PATCH 27/45] ofp-util: Allow encoding of Open Flow 1.2 Port Mod
[PATCH 28/45] ofp-util: Allow decoding of Open Flow 1.2 Port Mod
[PATCH 29/45] ofp-msgs: Split OFPRAW_OFPST_FLOW_{REQUEST,REPLY}
[PATCH 30/45] ofp-util: Prepare Flow Statistics Request Decoder for
[PATCH 31/45] ofp-util: Allow decoding of Open Flow 1.2 Flow
[PATCH 32/45] ofp-util: Allow encoding of Open Flow 1.2 Flow
[PATCH 33/45] ofp-util: Allow decoding of Open Flow 1.2 Flow
[PATCH 34/45] ofp-msgs: Split OFPRAW_OFPST_AGGREGATE_REQUEST
[PATCH 35/45] ofp-msgs: Allow 1.0-1.2 range
[PATCH 36/45] ofp-msgs: Split OFPRAW_OFPST_TABLE_REPLY
[PATCH 37/45] ofp-print: Enable display of Open Flow 1.1 & 1.2 Table
[PATCH 38/45] ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Table
[PATCH 39/45] ovs-ofctl: Use vconn as a parameter of
[PATCH 40/45] ofp-msgs: Split OFPRAW_OFPST_PORT_{REQUEST,REPLY}
[PATCH 41/45] ofp-util: Allow encoding of Open Flow 1.1 & 1.2 Port
[PATCH 42/45] ofp-msgs: Allow encoding and decoding of Open Flow 1.1
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 43/45] Local: learning-switch: Call ofputil_encode_flow_mod()
[PATCH 44/45] Local: ovs-controller: Make sure vconn is connected
[PATCH 45/45] Local: Allow Open Flow 1.2 session to be negotiated
Overall Diffstat (excluding patches 43-45)
------------------------------------------
build-aux/extract-ofp-msgs | 3
include/openflow/openflow-1.1.h | 4
include/openflow/openflow-1.2.h | 29
include/openflow/openflow-common.h | 8
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 | 22
lib/ofp-msgs.c | 47
lib/ofp-msgs.h | 63
lib/ofp-print.c | 186 -
lib/ofp-util.c | 764 +++-
lib/ofp-util.h | 35
lib/rconn.c | 7
lib/vconn-provider.h | 5
lib/vconn.c | 12
lib/vconn.h | 5
ofproto/connmgr.c | 3
ofproto/ofproto-dpif.c | 32
ofproto/ofproto-provider.h | 71
ofproto/ofproto.c | 196 +
tests/learn.at | 2
tests/ofp-print.at | 4663 ++++++++++++++++++++++++++-
tests/ofproto.at | 12
utilities/ovs-ofctl.c | 109
28 files changed, 6120 insertions(+), 532 deletions(-)
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev