The motivation of this series is to allow some sequences of actions that include MPLS actions to be performed using recirculation. Sequences of actions that could not previously be handled.
For example pop_mpls:0x0800,dec_ttl. This uses recirculation after the pop_mpls action to allow access to L3 information of the inner packet which is used by the dec_ttl action. Changes since v1 * Support for: packet_out and patch ports * More tests * Clean-up and rebase In order for the test-suite to pass and "ofproto-dpif: MPLS recirculation" to apply without a minor conflict the following patches are required: [PATCH/RFC] ofproto-dpif-upcall: Filter translated mask using flow [PATCH v2] ofproto: per-table statistics To aid review this series and its dependencies are available in git https://github.com/horms/openvswitch devel/mpls-flow-based-recirculation-v2 Simon Horman (11): flow: Add mf_is_l3_or_higher() odp-util: Add odp_put_recirc_action() helper ofproto-dpif: Add table_is_internal() helper ofproto-dpif: Move RECIRC_RULE_PRIORITY to common header match: Add match_init_recirc() helper ofproto-dpif: Add recirc_id field to struct rule_dpif dpif: Process recirc action in dpif_execute_helper_cb ofproto-dpif: MPLS recirculation ofp-actions: Allow pop_mpls on MPLS packets ofproto-dpif: Break out MPLS controller tests into their own test ofproto-dpif: Add MPLS tests lib/dpif.c | 4 +- lib/match.c | 9 + lib/match.h | 1 + lib/meta-flow.h | 8 + lib/odp-util.c | 13 + lib/odp-util.h | 2 + lib/ofp-actions.c | 6 - ofproto/bond.c | 8 +- ofproto/ofproto-dpif-upcall.c | 36 +- ofproto/ofproto-dpif-xlate.c | 191 ++++++- ofproto/ofproto-dpif-xlate.h | 18 + ofproto/ofproto-dpif.c | 176 ++++-- ofproto/ofproto-dpif.h | 11 +- tests/ofproto-dpif.at | 1191 ++++++++++++++++++++++++++++++++++++----- 14 files changed, 1471 insertions(+), 203 deletions(-) -- 1.8.5.2 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
