On Mon, Jul 18, 2016 at 08:20:42PM +0000, Jan Scheurich wrote: > > From: dev [mailto:dev-boun...@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()).
Yes, that is entirely correct. > > > > > 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" > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev