[ovs-dev] [PATCH v5] tunneling: Avoid recirculation on datapath by computing the recirculate actions at translate time.
Jarno Rajahalme
jarno at ovn.org
Wed May 10 21:38:51 UTC 2017
>
> On May 10, 2017, at 12:59 PM, Andy Zhou <azhou at ovn.org <mailto:azhou at ovn.org>> wrote:
>
> On Wed, May 10, 2017 at 7:56 AM, William Tu <u9012063 at gmail.com <mailto:u9012063 at gmail.com>> wrote:
>>> 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?
>
> This is a reasonable approach. Thanks for the suggestion.
>
> Picking up the topic of trunc on patch port.
>
> Instead of banning trunc output to a patch port, any down side of
> translating that
> to trunc, clone(<patch port translation>)? After all, native tunneling
> looks a lot like patch port conceptually.
>
Right, why should truncated OUTPUT to a patch port behave any different from any other OUTPUT port?
Jarno
>
>>
>> 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
> dev at openvswitch.org <mailto:dev at openvswitch.org>
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev <https://mail.openvswitch.org/mailman/listinfo/ovs-dev>
More information about the dev
mailing list