Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 May 2005 11:43:20 -0500
From:      jmc <jcagle@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   5.4 weird transmit problem
Message-ID:  <6863f0c905051209432a3afcb9@mail.gmail.com>

next in thread | raw e-mail | index | archive | help

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6863f0c905051209432a3afcb9>