Bridging atheros/ethernet seems incredibly slow
Sam Leffler
sam at errno.com
Sat Dec 17 10:59:37 PST 2005
Nate Nielsen wrote:
> 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.
The atheros driver is irrelevant, it's just a packet pusher.
>
> 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.
You are describing a WDS link which is not implemented with adhoc mode.
>
> 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.
As I said before, Andrew Atrens did this exercise. The bridge code puts
the interface in promiscuous mode and this causes excess traffic due to
packets being reflected.
>
>
>>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):
You've again put the interface in promiscious mode. You will need to
augment the net80211 layer to suppress certain traffic. People have
done this before; try searching with google.
>
> 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).
>
The code to do this is in the multi-bss vap project I did earlier this
year. Unfortunately, as I've said repeatedly, it will not come into
freebsd until there are developers committed to handling updating the
wireless drivers.
>
>>>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