On Sat, Apr 22, 2017 at 03:49:35PM -0500, Colton Lewis wrote:
> I applied the patch and compiled a new kernel using the stable branch.
> 11n and 11g both work now,
> but with significantly worse performance than 11b. Downloads are about
> 40% slower.
> 
> $ curl http://download.thinkbroadband.com/200MB.zip -O
> was my test.

Thanks for testing this fix. I will commit it shortly.

The performance issues with athn are known and unrelated to my diff.
Performance with athn is worse than what e.g. iwm(4) clients get with
commercial APs. Obviously there is a lot of work left to do and
very many things to fix.

My own priority right now is that 11n support with athn is stable,
i.e. does not crash and does not drop out entirely for no good reason.
So far, this seems to be the case.

It is already fast enough for my own needs inspite of some issues.
E.g. my athn AP never transmits with rates higher than MCS 12. I don't
know why it never goes up to MCS 15. It sucks pretty badly on 2 GHz but
works fine on 5. There are many networks on 2 GHz around here which are
very active at times. I have gotten reports from people living out
in the country where they can use 2 GHz just fine, though.

It's not entirely clear to me where issues other people are reporting are
coming from. Do they see what I see or is it actually worse for them?
I have no way of knowing.

So far nobody who complained about performance has provided pcap files
of their traffic that are actually useful for debugging. Before I can do
anything to improve performance, you must capture some interesting pcap data.
Your other option is to stop reading now, forget about athn for now,
and use some other AP.

To capture a pcap file, you need an iwn interface.

Associate your client and figure out the channel of your AP.
Below I will use channel 5 as an example.

On your iwn device, prepare monitor mode (assuming unconfigured default state):

        ifconfig iwn0 mediaopt monitor
        ifconfig iwn0 chan 5
        ifconfig iwn0 up

Verify that iwn is receiving on channel 5:

        tcpdump -n -i iwn0 -y IEEE802_11_RADIO

The last part of each line should show the channel:

        <radiotap v0, chan 5, 11g, sig -81dBm, noise -89dBm>

I have seen a quirk every now and then where the channel is not
set up correctly the first time through. If it's not listening
on the right channel yet, try again with:

        ifconfig iwn0 down
        ifconfig iwn0 chan 5
        ifconfig iwn0 up
        tcpdump -n -i iwn0 -y IEEE802_11_RADIO

Once the channel is OK, you can run this to capture any frames the
hardware can receive:

        tcpdump -n -i iwn0 -y IEEE802_11_RADIO -s 4096 -w /tmp/iwn.pcap

Now do whatever on the client to provoke the low performance situation.
Leave the monitor running during this time. Ideally, give the monitor
30 seconds of margin around your experiments so we can see what's
going on while your client is idle.

Now zip the pcap file and send it to me, and tell me the MAC addresses
of your AP and your client involved in the speed test.

I will run wireshark (as non-root) to view the pcap file:

        wireshark /tmp/iwn.pcap

The interesting bits of information can be seen in the lower pane in the
'802.11 radio information' section and the '802.11 ... frame' section.
The 'Wireless' -> 'WLAN Traffic' statistics menu is also useful.

Things I will be looking for include:

What transmit rates are reported for packets sent from/to your client?
Are there beacons, RTS and/or data frames from other networks?
How many frames are marked as retries?
What is the ratio of RTS vs data frames?
Is the client doing power saving and how does the AP handle this?

Ideally, we'll be able to figure out what kind of traffic the available
air time on your channel is spent on, and whether the AP is actually
misbehaving in some way.

Reply via email to