[ovs-dev] [PATCH 2/6] datapath: compat: Use checksum offload for outer header.

pravin shelar pshelar at ovn.org
Wed Aug 3 16:00:58 UTC 2016


On Tue, Aug 2, 2016 at 4:55 PM, Jesse Gross <jesse at kernel.org> wrote:
> On Tue, Aug 2, 2016 at 3:55 PM, pravin shelar <pshelar at ovn.org> wrote:
>> On Tue, Aug 2, 2016 at 3:11 PM, Jesse Gross <jesse at kernel.org> wrote:
>>> On Tue, Aug 2, 2016 at 2:17 PM, Pravin B Shelar <pshelar at ovn.org> wrote:
>>>> Signed-off-by: Pravin B Shelar <pshelar at ovn.org>
>>>> ---
>>>>  datapath/linux/compat/include/net/udp.h |  2 +-
>>>>  datapath/linux/compat/udp.c             | 19 ++-----------------
>>>>  datapath/linux/compat/udp_tunnel.c      | 17 +----------------
>>>>  3 files changed, 4 insertions(+), 34 deletions(-)
>>>
>>> Can you give some more information on this? Is it a bug fix,
>>> performance improvement, or cleanup?
>>
>> How about following commit msg.
>> Following patch simplifies UDP-checksum routine by unconditionally
>> using checksum offload for non GSO packets. We might get some
>> performance improvement due to code simplification.
>
> This is just the check for whether the device has the
> NETIF_F_V[46]_CSUM feature? I wonder whether that is really enough of
> a benefit to deviate from upstream. If it is noticeable then it seems
> like this should be an upstream patch.
>

In UDP xmit dst_entry is set after calling this function, so for non
goo packets this function always calculate checksum in software.

> I think the biggest checksum related improvement for compat code would
> be to make the checksum computation conditional on skb->encapsulation
> being set in rpl_ip_local_out.

I am not sure how that will help, In rpl_ip_local_out() GSO packet we
can not generate checksum partial packets, udp_set_csum() can not
handle it. non GSO packet's checksum is calculated in
ovs_iptunnel_handle_offloads() and the skb is not touched in
rpl_ip_local_out().



More information about the dev mailing list