Hi, this patch set implements the group select selection method extension that I circulated some months ago.
The implementation makes use of a group experimenter property and thus depends on Open Flow 1.5 groups (ONF EXT-250). 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 between v3 and v4: * Use nx_pull_entry__() with NULL mask in oxm_pull_field_array() * Use mf_parse_value() instead of mf_parse() in parse_select_group_field() * Include props field of type struct ofputil_group_props in struct ofgroup * oxm_format_field_array() can never fail so use void as its return type * Enhanced hash selection method - Use all bits of selection_method_param - Only hash fields if their pre-requisites are present and if so also hash the pre-requisites Key differences between v2 and v3: As suggested by Ben Pfaff: * Use NTR instead of NMX as Netronome extension prefix * Use array of TLVs rather than OF1.1 match for fields field of NTR selection method property * Add check to only permit known selection methods * I have also removed the RFC designation on the series Key differences between v1 and v2: 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 To aid review I have made this series available on github: https://github.com/horms/openvswitch.git devel/ext-350+selection_method-v4 Simon Horman (7): Documentation: Add documentation of group selection method property Add types for NTR selection method Support decoding of NTR selection method Support encoding of NTR selection method Support translation of NTR selection method Support NTR 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 | 44 ++++ lib/meta-flow.h | 12 + lib/nx-match.c | 124 ++++++++++ lib/nx-match.h | 5 + lib/ofp-parse.c | 94 ++++++++ lib/ofp-print.c | 32 ++- lib/ofp-util.c | 277 +++++++++++++++++++++- lib/ofp-util.h | 15 ++ ofproto/ofproto-dpif-xlate.c | 82 ++++++- ofproto/ofproto-dpif.c | 18 ++ ofproto/ofproto-dpif.h | 3 + ofproto/ofproto-provider.h | 2 + ofproto/ofproto.c | 5 + tests/ofp-print.at | 16 +- tests/ofproto-dpif.at | 33 +++ tests/ofproto.at | 4 +- utilities/ovs-ofctl.8.in | 34 +++ 22 files changed, 1002 insertions(+), 21 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