Re: Question about TCP Checksum errors

From: Eric Dumazet
Date: Sat Dec 17 2011 - 18:43:13 EST


Le samedi 17 dÃcembre 2011 Ã 17:18 -0600, Larry Finger a Ãcrit :
> In https://bugzilla.novell.com/show_bug.cgi?id=718736, a user reports that his
> network using an RTL8188CE becomes very slow under "heavy" load. This condition
> started when he updated from openSUSE 11.4 to 12.1. The kernels involved are
> 2.6.37 and 3.1. I am unable to duplicate the problem.
>
> Packet capture with Wireshark shows that the slow down is due to retransmissions
> due to TCP checksum errors. I found nothing to explain the situation with a
> Google search, thus I am asking here.
>
> I put heavy in quotes because the traffic is from a web browser to yahoo.com,
> thus the potential throughput is not very high.
>
> As far as I know, this checksum is generated in a higher layer of the network
> stack, and that data is just passed through the 802.11 layer, and the wireless
> driver. Is this correct? Anyone have any ideas on where to look for the problem?
>

I see nothing special in the packet capture from this bug report.

(Only suboptimal application opening many concurrent flows in //)

Keep in mind most modern NICS compute checksums themselve.

Linux offloads this to NIC

This can be controled eventually by "ethtool -k ethX" (-K to change
settings)

# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off

# ethtool -K eth0 tx off
# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/