Hi,

this patch set implements the group select selection method extension that
I circulated some months ago on the d...@openvswtich.org mailing list.  For
reference a copy of that proposal (updated for the existence of an Open
Flow 1.5 draft and several errors found during implementation) is at the
end of this email.

The implementation makes use of a group experimenter property and
thus depends on my recent work to implement (draft) Open Flow 1.5
groups (ONF EXT-250). That work is already present in the master branch.

The last patch of the series adds an implementation of a hash selection
method to illustrate what a selection method might look like.  It may be
thought of as a less intelligent but more flexible than the default
selection method which I characterise as making hash of L2 and/or L3 fields
depending on which fields are present in the flow.


Key differences since RFC v1:

Thanks Ben Pfaff and other's for their review.

* Use an array of TLVs rather than an of_match structure for
  the fields of the group experimenter property
  - This resulted in an extensive rework of the code
* Do not enforce pre-requisites of selection method fields
* Add documentation to Documentation directory


*** N.B: This patchset depends on
*** "[PATCH] ofp-parse: Correctly update bucket lists if they are empty"
*** but can be trivially be reworked for Ben Pfaff's proposed solution
*** to that problem


Simon Horman (8):
  Documentation: Add documentation of group selection method property
  Add types for NMX selection method
  Support decoding of NMX selection method
  Support encoding of NMX selection method
  Support printing of NMX selection method property
  Support translation of NMX selection method
  Support NMX selection method in ovs-ofctl group commands
  Implement hash fields select group

 Documentation/automake.mk                         |   2 +
 Documentation/group-selection-method-property.txt | 153 ++++++++++++
 Makefile.am                                       |   1 +
 include/openflow/automake.mk                      |   1 +
 include/openflow/netronome-ext.h                  |  66 +++++
 lib/meta-flow.c                                   |  26 ++
 lib/meta-flow.h                                   |  13 +
 lib/nx-match.c                                    | 131 +++++++++-
 lib/nx-match.h                                    |   9 +
 lib/ofp-parse.c                                   | 120 +++++++++-
 lib/ofp-print.c                                   |  44 +++-
 lib/ofp-util.c                                    | 280 +++++++++++++++++++++-
 lib/ofp-util.h                                    |  16 ++
 ofproto/ofproto-dpif-xlate.c                      |  71 +++++-
 ofproto/ofproto-dpif.c                            |  18 ++
 ofproto/ofproto-dpif.h                            |   3 +
 ofproto/ofproto-provider.h                        |   6 +
 ofproto/ofproto.c                                 |  16 +-
 tests/ofp-print.at                                |  16 +-
 tests/ofproto-dpif.at                             |  20 ++
 tests/ofproto.at                                  |   4 +-
 utilities/ovs-ofctl.8.in                          |  23 ++
 utilities/ovs-ofctl.c                             |   4 +-
 23 files changed, 1008 insertions(+), 35 deletions(-)
 create mode 100644 Documentation/automake.mk
 create mode 100644 Documentation/group-selection-method-property.txt
 create mode 100644 include/openflow/netronome-ext.h

-- 
2.1.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to