Subject: Re: A performance regression of gretap

From: Cong Wang <[email-masked]>
Date: Thu, 11 Jul 2013 10:31:59 +0800

On Wed, 2013-07-10 at 19:28 -0700, Pravin Shelar wrote:
> On Wed, Jul 10, 2013 at 7:15 PM, Cong Wang <[email-masked]> wrote:
> > On Wed, 2013-07-10 at 06:01 -0400, Cong Wang wrote:
> >>
> >> Could you please take a look? And, gre tunnel is fine, this
> >> problem only exists for gretap. I reviewed the gretap code,
> >> but can't find any bug.
> >
> > After digging it a little bit, I found some of the packets on RX side
> > have incorrect TCP checksum after going through gretap, while the
> > packets captured on eth0 are all correct.
> >
> > Thanks.
> >
> I do not see it on my end.
> Can you tell me NIC type and features set for eth device?

Sure, it is virtio_net which is not able to do rx checksum, therefore
->ip_summed is CHECKSUM_NONE.

# ethtool -i eth0
driver: virtio_net
version: 1.0.0
firmware-version: 
bus-info: 0000:00:08.0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

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