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. This series, unlike previous versions of this work, is based on Andy Zhou's recirculation work. This allows this series to be significantly simpler than its predecessors. This series requires some more work. In particular there are a number of remarks labeled "XXX"in the patch "ofproto-dpif: MPLS recirculatio" which need to be addressed or removed. This series depends on the following, both of which I expect to be changed before being merged: [PATCH/RFC] ofproto-dpif-upcall: Filter translated mask using flow [bond megaflow v4 4/4 rebased] ofproto/bond: Implement bond megaflow using recirculation To aid review this series and its dependencies are available in git https://github.com/horms/openvswitch devel/recirculation-andy-v4+mpls Simon Horman (8): flow: Add mf_is_l3_or_higher() odp-util: Add odp_put_recirc_action() helper ofproto-dpif: Add idle_timeout parameter to ofproto_dpif_add_internal_flow() ofproto-dpif: Add recirc_id field to struct rule_dpif 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/meta-flow.h | 8 + lib/odp-util.c | 16 + lib/odp-util.h | 2 + lib/ofp-actions.c | 6 - ofproto/bond.c | 2 +- ofproto/ofproto-dpif-xlate.c | 189 +++++++++- ofproto/ofproto-dpif.c | 37 +- ofproto/ofproto-dpif.h | 2 + tests/ofproto-dpif.at | 878 +++++++++++++++++++++++++++++++++++++------ 9 files changed, 991 insertions(+), 149 deletions(-) -- 1.8.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev