>
> This looks bogus for IPv6.
>
> I would rather fix skb_checksum_setup_ip() and
> skb_checksum_setup_ipv6(), since you already use correctly
> skb_maybe_pull_tail() there.
>
> In general, setting network and transport header at this point seems
> extra work.
>
Yes, I missed the IPv6 case. ;-
()
were not pointing at the right place. d554f73df ("xen-netfront: reset
skb network header before checksum") fixed the ip_hdr().
This patch fixes tcp_hdr().
We saw this problem when LRO was enabled on the host and it results in
netfront setting skb->ip_summed to CHECKSUM_UNNECESSARY.
>
> Please CC the maintainers of the driver. You can get that from
> 'scripts/get_maintainer.pl'
>
> I've done that for you.
Thanks, Konrad.
I am copying Wei too who had fixed the below problem earlier.
It fixed the incorrect ip_hdr(). tcp_hdr() still needs to fixed.
commit d554f73df6bc35ac8f6
Hello All,
When handle_incoming_queue (xen-netfront.c) calls checksum_setup()
the transport header didn't seem to be initialized yet.
skb_checksum_setup_ipv4 ends up initializing the checksum at incorrect offset.
if (recalculate)
*csum = ~csum_tcpudp_magic(ip_hdr(skb)->sad