This series refactors how information about fields is managed at compile time, making it more flexible via a new "extract-ofp-fields" program. It uses that flexibility to centralize all knowledge of how OXM and NXM works in nx-match (from being split across nx-match, meta-flow, ofp-util, and elsewhere). Then it takes advantage to implement OF1.5 (draft) Set-Field (EXT-314), experimenter OXM, and the OF1.5 (draft) actset_output field.
The final patch is not ready for full review. I believe that the rest of the series is. v1->v2: Applied and dropped several patches. Applied comments to a few patches, and fixed a few test failures that somehow I missed in v1. Please see individual patches for detailed changes. Ben Pfaff (12): meta-flow: Autogenerate mf_field data structures. util: New function bitwise_scan(). ovs-ofctl: Encode cookies in OXM-compliant manner. nx-match: Move all knowledge of OXM/NXM here. ofp-actions: Better support OXM in Copy-Field action. ofp-actions: Support OF1.5 (draft) masked Set-Field, merge with reg_load. nx-match: Use nx_put_header() internally for encoding flow matches. nx-match: Speak of 'class' instead of 'vendor' for OXM/NXM. util: Make hexits_value() support 64-bit integers too. nx-match: Add support for experimenter OXM. ofp-actions: Support experimenter OXMs in Nicira extensions. [RFC] flow: Support OF1.5+ (draft) actset_output field. NEWS | 1 + build-aux/extract-ofp-fields | 500 +++++++++++++ include/openflow/nicira-ext.h | 496 +------------ include/openflow/openflow-1.0.h | 7 +- include/openflow/openflow-1.2.h | 139 ---- lib/automake.mk | 11 +- lib/bundle.c | 5 + lib/flow.c | 10 +- lib/flow.h | 10 +- lib/json.c | 5 +- lib/learn.c | 30 +- lib/match.c | 15 +- lib/match.h | 1 + lib/meta-flow.c | 1038 ++------------------------- lib/meta-flow.h | 1464 +++++++++++++++++++++++++++++++++++---- lib/multipath.c | 4 + lib/nx-match.c | 1379 ++++++++++++++++++++++++------------ lib/nx-match.h | 46 +- lib/odp-util.h | 2 +- lib/ofp-actions.c | 693 ++++++++++++------ lib/ofp-actions.h | 16 +- lib/ofp-parse.c | 1 + lib/ofp-util.c | 107 +-- lib/util.c | 49 +- lib/util.h | 4 +- ofproto/ofproto-dpif-xlate.c | 26 +- ofproto/ofproto.c | 20 +- tests/dpif-netdev.at | 2 +- tests/ofp-actions.at | 34 +- tests/ofp-print.at | 14 + tests/ofproto-dpif.at | 4 +- tests/ofproto.at | 3 +- tests/ovs-ofctl.at | 109 ++- utilities/ovs-ofctl.8.in | 39 +- utilities/ovs-ofctl.c | 5 + vswitchd/bridge.c | 1 + 36 files changed, 3663 insertions(+), 2627 deletions(-) create mode 100755 build-aux/extract-ofp-fields -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev