linux/drivers/net/ethernet
Joel Stanley 6fd45e79e8 net: ftgmac100: Disable hardware checksum on AST2600
The AST2600 when using the i210 NIC over NC-SI has been observed to
produce incorrect checksum results with specific MTU values. This was
first observed when sending data across a long distance set of networks.

On a local network, the following test was performed using a 1MB file of
random data.

On the receiver run this script:

 #!/bin/bash
 while [ 1 ]; do
        # Zero the stats
        nstat -r  > /dev/null
        nc -l 9899 > test-file
        # Check for checksum errors
        TcpInCsumErrors=$(nstat | grep TcpInCsumErrors)
        if [ -z "$TcpInCsumErrors" ]; then
                echo No TcpInCsumErrors
        else
                echo TcpInCsumErrors = $TcpInCsumErrors
        fi
 done

On an AST2600 system:

 # nc <IP of  receiver host> 9899 < test-file

The test was repeated with various MTU values:

 # ip link set mtu 1410 dev eth0

The observed results:

 1500 - good
 1434 - bad
 1400 - good
 1410 - bad
 1420 - good

The test was repeated after disabling tx checksumming:

 # ethtool -K eth0 tx-checksumming off

And all MTU values tested resulted in transfers without error.

An issue with the driver cannot be ruled out, however there has been no
bug discovered so far.

David has done the work to take the original bug report of slow data
transfer between long distance connections and triaged it down to this
test case.

The vendor suspects this this is a hardware issue when using NC-SI. The
fixes line refers to the patch that introduced AST2600 support.

Reported-by: David Wilder <wilder@us.ibm.com>
Reviewed-by: Dylan Hung <dylan_hung@aspeedtech.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-05-18 14:03:30 +01:00
..
3com net: typhoon: include <net/vxlan.h> 2022-02-07 19:53:38 -08:00
8390 ethernet: 8390: Remove unnecessary print function dev_err() 2022-03-11 22:59:03 -08:00
actions
adaptec
aeroflex
agere et131x: support arbitrary MAX_SKB_FRAGS 2022-02-08 16:51:23 -08:00
alacritech
allwinner
alteon
altera net: ethernet: altera: cleanup comments 2022-02-16 20:33:04 -08:00
amazon
amd net: amd-xgbe: disable interrupts during pci removal 2022-02-09 12:52:59 +00:00
apm drivers: net: xgene: Fix regression in CRC stripping 2022-03-23 10:30:05 -07:00
apple
aquantia net: atlantic: verify hw_head_ lies within TX buffer ring 2022-05-11 12:25:07 +01:00
arc net: arc_emac: Fix use after free in arc_mdio_probe() 2022-03-10 14:49:21 -08:00
asix net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
atheros atl1c: remove redundant assignment to variable size 2022-03-18 14:16:47 -07:00
broadcom net: systemport: Fix an error handling path in bcm_sysport_probe() 2022-05-17 10:38:52 +02:00
brocade
cadence net: macb: Increment rx bd head after allocating skb and buffer 2022-05-13 17:09:02 -07:00
calxeda
cavium pci_irq_vector() can't be used in atomic context any longer. This conflicts 2022-05-01 17:02:23 +01:00
chelsio net: chelsio: cxgb4: Avoid potential negative array offset 2022-05-06 15:41:27 -07:00
cirrus
cisco
cortina
davicom net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
dec ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one() 2022-05-09 15:52:38 -07:00
dlink net: sundance: Replace one-element array with non-array object 2022-02-05 15:30:32 +00:00
emulex
engleder
ezchip net: ethernet: ezchip: fix platform_get_irq.cocci warning 2022-03-11 11:07:23 +00:00
faraday net: ftgmac100: Disable hardware checksum on AST2600 2022-05-18 14:03:30 +01:00
freescale net: enetc: allow tc-etf offload even with NETIF_F_CSUM_MASK 2022-04-28 09:45:48 -07:00
fujitsu
fungible net/fungible: Fix reference to __udivdi3 on 32b builds 2022-04-01 21:32:30 -07:00
google gve: Fix spelling mistake "droping" -> "dropping" 2022-03-16 19:29:00 -07:00
hisilicon net: hns: Add missing fwnode_handle_put in hns_mac_init 2022-04-25 11:06:53 +01:00
huawei hinic: fix bug of wq out of bound access 2022-04-29 18:37:45 -07:00
i825xx Networking changes for 5.18. 2022-03-24 13:13:26 -07:00
ibm Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits" 2022-04-28 09:46:18 -07:00
intel igb: skip phy status check where unavailable 2022-05-18 14:00:51 +01:00
litex net: ethernet: litex: Add the dependency on HAS_IOMEM 2022-02-08 20:43:40 -08:00
marvell net: ethernet: mv643xx: Fix over zealous checking of_get_mac_address() 2022-04-05 18:12:55 -07:00
mediatek net: ethernet: mediatek: ppe: fix wrong size passed to memset() 2022-05-12 09:44:14 +02:00
mellanox net/mlx5: Drain fw_reset when removing device 2022-05-17 23:03:57 -07:00
micrel net: micrel: Fix KS8851 Kconfig 2022-04-05 17:32:05 -07:00
microchip net: lan966x: Fix assignment of the MAC address 2022-05-17 10:03:14 +02:00
microsoft net: mana: Remove unnecessary check of cqe_type in mana_process_rx_cqe() 2022-02-05 15:26:00 +00:00
moxa net: moxa: use GFP_KERNEL 2022-02-11 14:39:08 -08:00
mscc net: mscc: ocelot: avoid corrupting hardware counters when moving VCAP filters 2022-05-05 19:15:17 -07:00
myricom myri10ge: fix an incorrect free for skb in myri10ge_sw_tso 2022-04-06 15:29:18 +01:00
natsemi
neterion
netronome devlink: hold the instance lock during eswitch_mode callbacks 2022-03-21 14:11:38 +00:00
ni net: nixge: Use GFP_KERNEL instead of GFP_ATOMIC when possible 2022-02-17 20:03:39 -08:00
nvidia
nxp net: ethernet: lpc_eth: Handle error for clk_enable 2022-03-09 12:15:20 +00:00
oki-semi
packetengines drivers: net: packetengines: fix typos in comments 2022-03-14 10:04:28 -07:00
pasemi
pensando ionic: fix missing pci_release_regions() on error in ionic_probe() 2022-05-09 15:49:12 -07:00
qlogic net/qla3xxx: Fix a test in ql_reset_work() 2022-05-17 17:33:13 -07:00
qualcomm net: add per-cpu storage and net->core_stats 2022-03-11 23:17:24 -08:00
rdc
realtek r8169: improve driver unload and system shutdown behavior on DASH-enabled systems 2022-03-17 16:47:32 -07:00
renesas ravb: Use GFP_KERNEL instead of GFP_ATOMIC when possible 2022-02-21 12:00:46 +00:00
rocker
samsung Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-03 11:55:12 -08:00
seeq
sfc net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe() 2022-05-12 10:01:36 -07:00
sgi
silan
sis
smsc smsc911x: allow using IRQ0 2022-05-03 16:57:33 -07:00
socionext net: netsec: enable pp skb recycling 2022-02-28 11:39:23 +00:00
stmicro net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe() 2022-05-10 19:12:57 -07:00
sun ethernet: sun: Fix spelling mistake "mis-matched" -> "mismatched" 2022-03-17 16:36:05 -07:00
synopsys
tehuti
ti net: cpsw: add missing of_node_put() in cpsw_probe_dt() 2022-04-30 13:37:20 +01:00
toshiba
tundra
vertexcom net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
via
wiznet net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
xilinx net: emaclite: Add error handling for of_address_to_resource() 2022-05-03 11:07:32 +02:00
xircom
xscale ARM: ixp4xx: Drop all common code 2022-02-12 18:20:04 +01:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c net: ethernet: use time_is_before_eq_jiffies() instead of open coding it 2022-02-28 13:21:31 +00:00
jme.h
Kconfig net: restore alpha order to Ethernet devices in config 2022-04-15 11:56:16 +01:00
korina.c
lantiq_etop.c
lantiq_xrx200.c net: lantiq_xrx200: fix use after free bug 2022-03-07 11:29:35 +00:00
Makefile net/fungible: Kconfig, Makefiles, and MAINTAINERS 2022-02-27 10:51:23 +00:00