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=20
reliably transmit packets larger than 80 bytes using the bge driver (on a=
=20
BCM5703 NIC). It receives large packets without any problem, but it just=20
won't transmit them. (I can tcpdump all day long without a problem - big an=
d=20
small packets.)

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

Here's the bge0 info from dmesg:

bge0: <Broadcom BCM5703X Gigabit Ethernet, ASIC rev. 0x1100> mem=20
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,=20
1000baseTX
-FDX, auto
bge0: bpf attached
bge0: Ethernet address: 00:11:85:fd:8f:f9
bge0: [MPSAFE]

Here's ifconfig for bge0:

bge0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3D1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING>
inet 16.100.240.165 <http://16.100.240.165>; netmask 0xfffffc00 broadcast=20
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=20
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>=
):=20
200 data bytes
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D2 ttl=3D128 t=
ime=3D
1.025 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D3 ttl=3D128 t=
ime=3D
1.306 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D4 ttl=3D128 t=
ime=3D
1.593 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D5 ttl=3D128 t=
ime=3D
2.026 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D6 ttl=3D128 t=
ime=3D
2.314 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D7 ttl=3D128 t=
ime=3D
2.746 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D8 ttl=3D128 t=
ime=3D
3.034 ms
208 bytes from 16.100.240.1 <http://16.100.240.1>: icmp_seq=3D9 ttl=3D128 t=
ime=3D
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 =3D 1.025/2.189/3.468/0.806 ms

Has anyone else ever seen a problem like this? Any suggestions on where to=
=20
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>