[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#726676: Debian bug #726676: linux-image-3.10-3-amd64: TCP packet loss when using proxy ARP IP addresses



John Hughes wrote:
> Hi Andris, I've run across a bug that looks very like the one you 
> reported, but my analysis is rather different.
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729567
> 
> As far as I can tell the problem I'm seeing is:
> 
> The LAN NIC on the machine running the OpenVPN server has the 
> "generic-receive-offload" (GRO) option set, so it combines TCP segments 
> coming from the LAN and destined for one of the OpenVPN clients into one 
> big segment.
> 
> However this segment is bigger than the MTU on the OpenVPN tunnel, so 
> when it gets routed out to the tunnel it gets split up into smaller 
> segments.
> 
> But the kernel seems to forget to calculate the TCP checksum for these 
> segments, so when they are received by the OpenVPN client they are 
> discarded, and have to be retransmitted one by one.

This is certainly a much more in-depth analysis than my topical
observation.  My packet captures did indeed show a great number
of checksum errors and retransmissions.

> Do you have GRO set on the LAN interface of your OpenVPN server?

It does indeed appear to be enabled:

----------------------------------------------
gundega# ethtool -k eth0
Features for eth0:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: on
        tx-checksum-unneeded: off [fixed]
        tx-checksum-ip-generic: off [fixed]
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: on
        tx-tcp6-segmentation: off [fixed]
udp-fragmentation-offload: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on            <<<<<<<<<
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: on
loopback: off [fixed]
----------------------------------------------

> Does turning it off make your system work better?

I will do some testing during the downtime this Sunday and
let you know.  Thanks very much, John, for the insight.

Regards,
Andris


Reply to: