Skip to contentSkip to conversation

Broadcom Gigabit 5703 and Bridging

DISCUSSION [email protected] 2 participants 2 messages Jan 8, 2003 1 message not in the archive Network drivers

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): E18W7jh-0001Co-00@mars

#1 lore raw
Quoted 5 lines · Paul Schulz

Greetings,

I'm seeing 'TCP Checksum' Errors after packets pass through a host bridging TCP packets with:

Quoted 7 lines

- Kernel 2.4.20
- Bridge code
- tg3 (Broadcom Gigabit 5703)

   eth0: Tigon3 [partno(BCM95703A30) rev 1002 PHY(5703)]
    (PCIX:100MHz:64-bit) 10/100/1000BaseT

(eth1 is similar)

The BCM95703A30 rev 1002 has issues with the hardware checksumming.

The following patch for the tg3 (linux-2.4.20-ac2/drivers/net/tg3.c) driver, fixes the problem.

Note: I've tested this on the 2.4.20-ac2, but it should work OK with 2.4.20 too.

drivers/net/tg3.c +4 -0
diff -u linux-2.4.20/drivers/net/tg3.c linux-2.4.20-ac2/drivers/net/tg3.c
@@ -6161,6 +6161,10 @@
 	if (tp->pci_chip_rev_id == CHIPREV_ID_5700_B0)
 		tp->tg3_flags |= TG3_FLAG_BROKEN_CHECKSUMS;
 
+	/* 5703 A2 have issues with checksumming too. (sarah) */
+	if (tp->pci_chip_rev_id == CHIPREV_ID_5703_A2)
+		tp->tg3_flags |= TG3_FLAG_BROKEN_CHECKSUMS;
+
 	/* Regardless of whether checksums work or not, we configure
 	 * the StrongARM chips to not compute the pseudo header checksums
 	 * in either direction.  Because of the way Linux checksum support

Cheers,
Sarah Bolderoff

Signature · 4 lines
Foursticks Pty Ltd, http://www.foursticks.com
33 King William Street, ADELAIDE South Australia 5000
Phone +61 8 841114 309            Fax +61 8 841114 777
This message was brought to you by the numbers 0 and 1.
#2 lore raw
Quoted 2 lines · On Tue, 2003-01-07 at 20:41, [email protected] wrote:

On Wed, Jan 08, 2003 at 02:52:37PM +1030, Paul Schulz wrote:
The BCM95703A30 rev 1002 has issues with the hardware checksumming.

Really?

Can you demonstrate the problem with the 5703 without bridging? Can you demonstrate the problem with bridging and another checksum capable card?

Unless you can answer both those questions, I think faulting this 5703 variant is premature. It smells more like a briding bug to me, perhaps it's corrupting the hw checksumming state of an SKB as it passes through the bridging layer.