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

Reply via email to