> It may be cleaner if we add a new trunc action for the datapath, say > trunc2 that applies > to all outputs within the clone. > > So the translation will look like: clone(trunc2, native tunnel > translation). Would this > approach work? >
Or how about we apply actual packet truncation when clone action follows truncate action? Now we apply actual packet truncation when: actions=trunc, output actions=trunc, tunnel_push actions=trunc, sample If we add clone as another truncate target, then actions = trunc(100), clone(tnl(...)), actionX, Inside clone will see packet of size 100, and actionX sees original size. Then I think we don't need to introduce trunc2? Regards, William >> >> Without the "Avoid recirculation" patch we have two datapath flows, because >> the >> packet is recirculated. At the end of the first flow the packet size is >> changed >> and the packet with modified size enters the OF pipeline again. >> >> What is the reason not to change packet size when truncate action is applied? >> > > One of the reasons could be that we introduced trunc before clone. Otherwise, > a > clone(trunc2, output:x) is equivalent to trunc, output:x. Note that > the trunc datapath > action is different than other datapath actions, which usually applies > to all following > actions. Native tunneling may be the first use case that motivates > trunc2, which should > have the normal datapath action behavior. > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
