[ovs-dev] [RFC PATCH v2 02/13] Format NSH keys to readable strings

Jan Scheurich jan.scheurich at ericsson.com
Mon Jul 18 20:20:42 UTC 2016


> From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Simon Horman
> Sent: Monday, 18 July, 2016 14:14
> >
> > Simon, very good guide, do push_eth and pop_eth also need to follow
> > this?
> 
> Not exactly.
> 
> As of v12 of the patch-set there are two phases, compose and commit.
> This was not the case in previous versions and was the source of some bugs.
> 
> The composition phase is not done directly in do_xlate_actions(). Rather it is
> done as required in compose_output_action__() and
> execute_controller_action() by setting flow->base_layer. This implements
> automatic placement of push/pop_eth actions as they are required for
> output.

Simon, the difference to your patch set is that here the controller sends an explicit push_eth action in order to push an Ethernet header and then set the MAC addresses before transmission to a L2 port.

As far as I can judge, this requires triggering a commit in the push_eth composition phase, so that subsequent set_field(dl_src/dst) actions set the new outer ethernet header rather than the inner header. (Compare this to  compose_mpls_push_action()).

> 
> This can be seen in "[PATCH v12 2/3] userspace: add layer 3 flow and
> switching support"
> 
> The commit phase is provided by commit_ether_action() which also handles
> modification of ethernet addresses other than by push/pop_eth.
> 
> This can be seen in "PATCH v12 1/3] userspace: add support for pop_eth and
> push_eth action"




More information about the dev mailing list