Bridging atheros/ethernet seems incredibly slow

Nate Nielsen nielsen-list at memberwebs.com
Fri Dec 16 15:02:22 PST 2005


Sam Leffler wrote:
> adhoc mode is not intended for bridging; I'm a bit surprised it works at
> all (I've never tried it).  

Perhaps not in the atheros driver, or net80211 subsystem.

But general it does make sense. I'm setting up several point to point
links with relays. The plan is that these relays bridge two freebsd
boxes with a radio in each one.

There seems to be very poor interaction between the bridging code and
the FreeBSD 802.11 subsystem. Perhaps because they're both on layer 2.

> There are special hacks in
> ieee80211_deliver_data specific to hostap.  

Yes, when I switched the bridging box to hostap mode, the bridge works
at a decent rate (10+ Mbps).

However when I add the second hop in, performance is once again crap
(500Kbps to 1Mbps). The setup looks like this (where '-' is ethernet,
and '+' is wireless):

                       The Relay
----- BOX A ++++++++ BOX B -- BOX C +++++++++ BOX D -----
                 Bridged with Ethernet

BOX B and BOX C are in hostap mode. In the above setup BOX A has fast
throughput to BOX C, and BOX B has equally fast throughput to BOX D.
However BOX A to BOX D is slow.

Unless there's a simple fix (no pressure), I think I'm giving up on
bridging the relay points. I'll be routing instead, even though that
brings strange multicast problems (which I'll post about seperately).

>> Doing a flood ping from BOX A to a machine bridged across the link is
>> not lossy, instead the send rate is limited. That is, the ping packets
>> are sent slowly.

This is also the case over two bridges.

>>> 13 tx management frames
>>> 7 tx frames discarded prior to association
>>> 544 tx failed 'cuz too many retries
>>> 6014 long on-chip tx retries
>>> 876 tx frames with no ack marked
>>> 1952 rx failed 'cuz frame too short
>>> 5129 rx failed 'cuz of PHY err
>>>    1524 OFDM timing
>>>    3605 OFDM illegal rate
>>> 1 beacons transmitted
>>> 91 periodic calibrations
>>> rssi of last ack: 36
>>> avg recv rssi: 38
>>> 1 switched default/rx antenna
>>> Antenna profile:
>>> [1] tx     1192 rx    18513
>>> [2] tx       68 rx        1
> 
> These are not the stats you want :)  

I thought (obviously wrongly) the 'OFDM illegal rate' may have something
to do with it.

> Look at the 802.11 layer.  FWIW I
> recently reorgnized the tools and renamed them so the program you want
> is now called wlanstats and is found in tools/tools/net80211.

I'm using FreeBSD 6.0. Here's the output of 80211stats on the bridge.
This is when running in adhoc mode. (ie: BOX B above):

5 rx from wrong bssid
770 rx discard 'cuz dup
5617 rx beacon frames
3 active scans started
2 nodes timed out inactivity

And on the peer (ie: BOX A above):

3015 rx discard 'cuz dup
6017 rx beacon frames
3 active scans started
2 nodes timed out inactivity

Cheers,
Nate



More information about the freebsd-net mailing list