PROBLEM: Bnx2x Checksum/Length Error Over GRE Tunnel
From: Eren Türkay <hidden>
Date: 2015-02-03 18:21:00
Hello, I am having incorrect checksum and length calculation error when using GRE tunnel and this leads to unstable/unreliable connections where even simple nc connection cannot be made correctly due to a lot of TCP retransmissions. The reported iperf output becomes 23Kbit/s. When I disable tx checksumming with "ethtool -K eth0 tx off", the problem seems to be solved but then I lose tcp segmentation offloading support, without which adds an additional overhead on 10Gbit network interface. With tx off, I get 4 to 7Gbit/s with parallel 40 connections using iperf. In tcpdump output (tcpdump -i em1 proto gre) when tx checksumming is enabled, I see "checksum error" in every packet + "IP truncated-ip - 63631 bytes missing!" messages, and a lot of TCP retransmissions. When tx is off, checksums are correct but I get 4-7Gbit output. With GSO generalization code in [0] it is reported that 9.3Gbit/s is possible over GRE tunnel but I'm nowhere near these results. Pcap file is attached when tx is on. I tried to contact the original maintainers (broadcom) but I thought it would help to send it to netdev mailing list as well. Thank you for your time. - Eren [0] http://thread.gmane.org/gmane.linux.network/332194 Additional Information ====================== em1 is a 10G interface. Jumbo frames are enabled and MTU is set to 9000. My GRE tunnel has 1500 MTU, and it is tunneled using em1. Host OS: Ubuntu 14.04 Kernel: 3.18.0 (compiled from ubuntu-vivid repository) Physical host: HP ProLiant BL460c G6 NIC: Broadcom Corporation NetXtreme II BCM57711E 10-Gigabit PCIe Ethtool info: