5.4 weird transmit problem

jmc jcagle at gmail.com
Thu May 12 09:43:22 PDT 2005


I've got 5.4 amd64 installed on an Opteron server and I cannot get it to 
reliably transmit packets larger than 80 bytes using the bge driver (on a 
BCM5703 NIC). It receives large packets without any problem, but it just 
won't transmit them. (I can tcpdump all day long without a problem - big and 
small packets.)

For example, I can "ping -s 38 <ip>" and it works fine. But if I try "ping 
-s 39 <ip>" (or any size larger than 38) it does not work. A 38 byte ping 
creates an 80 byte Ethernet packet.

Here's the bge0 info from dmesg:

bge0: <Broadcom BCM5703X Gigabit Ethernet, ASIC rev. 0x1100> mem 
0xf7ef0000-0xf7
efffff irq 24 at device 1.0 on pci3
bge0: Reserved 0x10000 bytes for rid 0x10 type 3 at 0xf7ef0000
miibus0: <MII bus> on bge0
brgphy0: <BCM5703 10/100/1000baseTX PHY> on miibus0
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 
1000baseTX
-FDX, auto
bge0: bpf attached
bge0: Ethernet address: 00:11:85:fd:8f:f9
bge0: [MPSAFE]

Here's ifconfig for bge0:

bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
inet 16.100.240.165 <http://16.100.240.165> netmask 0xfffffc00 broadcast 
16.100.243.255 <http://16.100.243.255>
inet6 fe80::211:85ff:fefd:8ff9%bge0 prefixlen 64 scopeid 0x1
ether 00:11:85:fd:8f:f9
media: Ethernet autoselect (1000baseTX <full-duplex>)
status: active

Much to my dismay, I've found that if I use the -l option (preload) for 
ping, I get some large packets through:

ninox# ping -l10 -c10 -s200 16.100.240.1 <http://16.100.240.1>
PING 16.100.240.1 <http://16.100.240.1> (16.100.240.1 <http://16.100.240.1>): 
200 data bytes
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=2 ttl=128 time=
1.025 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3 ttl=128 time=
1.306 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=4 ttl=128 time=
1.593 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=5 ttl=128 time=
2.026 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=6 ttl=128 time=
2.314 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=7 ttl=128 time=
2.746 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=8 ttl=128 time=
3.034 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=9 ttl=128 time=
3.468 ms

--- 16.100.240.1 <http://16.100.240.1> ping statistics ---
10 packets transmitted, 8 packets received, 20% packet loss
round-trip min/avg/max/stddev = 1.025/2.189/3.468/0.806 ms

Has anyone else ever seen a problem like this? Any suggestions on where to 
poke around for a solution?

Thanks,
John


More information about the freebsd-stable mailing list