bad tcp/udp checksumsc with 5704C

Mipam mipam at ibb.net
Wed Apr 7 07:20:05 PDT 2004


Hi,

I'm running FreeBSD 5.2.1-p4 on a dell system with a Broadcom 5704C Nic in
it.

bge0: <Broadcom BCM5704C Dual Gigabit Ethernet, ASIC rev. 0x2002> mem
0xfcd20000-0xfcd2ffff,0xfcd30000-0xfcd3ffff irq 16 at device 0.0 on pci2
bge0: Ethernet address: 00:0b:db:93:c5:c4
miibus0: <MII bus> on bge0
brgphy0: <BCM5704 10/100/1000baseTX PHY> on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX,
1000baseTX-FDX, auto

Since version 4.5 tcp checksum offloading is supported with this NIC.
However, i'm encountering continuous on all packet send from this machines
bad tdp/udp checksums:

16:05:41.287764 x.x.x.x.22 > 192.168.2.1.4761: . [bad tcp cksum
f48!] 984:984(0) ack 313 win 32824 (DF) [tos 0x10]  (ttl 64, id 44539, len
40, bad cksum 0!)
16:05:41.545073 x.x.x.x.123 > y.y.y.y.123: [bad udp cksum
6a52!]  v3 server strat 2 poll 6 prec -31 dist 0.007049 disp 0.022796 ref
195.169.124.69 at 3290335106.099078394 orig 3290335541.540184020 rec
+0.004841091 xmt +0.004874050 [tos 0x10]  (ttl 64, id 44541, len 76, bad
cksum 0!)

I tried several things, using autoselect in ifconfig bge0,
setting the speed and duplex hard on nic and switch port (cisco).
I even tried turning off offloading: ifconfig bge0 -txcsum.
But whatever i tried bad checksums kept appearing.

Is this behaviour normal or not?
When tcp csum offloading is turned on, does the networking stack not
compute the checksum on outgoing packets and hand it to the driver which
hands it to bpf and libpcap hands it to tcpdump so tcpdump reports an
invalid checksum? For now i am not sure whether the behaviour is right or
not.... it worries me.
There's more: when i set the speed and duplex hard on the switch and nic
on 100 and full-duplex, the traffic is very slow.
When i use autoselect the traffic is way faster. I guess this isnt normal?
Any hints on these topics?
Bye,

Mipam.



More information about the freebsd-stable mailing list