Edimax EW-7811Un (rtwn): Slow speeds / rate control

Adrian Chadd adrian.chadd at gmail.com
Wed Sep 16 22:50:35 UTC 2020


Hi!

Dang, ok. Well, rtwn was broken on freebsd-head due to changes elsewhere so
we need to get those fixed before we can see what's up with it.

I'll post updates to freebsd-wireless if/when I figure it out. :P




-adrian


On Wed, 16 Sep 2020 at 15:43, James Wright <james.wright at digital-chaos.com>
wrote:

> On 16/09/2020 22:36, Adrian Chadd wrote:
> >
> >
> > On Wed, 16 Sep 2020 at 13:41, James Wright <
> james.wright at digital-chaos.com <mailto:james.wright at digital-chaos.com>>
> wrote:
> >
> >     Hi wireless gurus,
> >
> >          I'm trying to understand why this USB wifi dongle is so slow
> under FreeBSD.
> >     The max real-world download rate seems to be capped at ~900KB/sec
> (see wget below),
> >     but with exactly the same hardware and conditions under Win10 I
> reach ~3MB/sec.
> >
> >
> >     OS:       FreeBSD 12.2-PRERELEASE (r365055)
> >     Router:   Virgin Media SuperHub 3 (802.11a/b/g/n/ac)
> >     Hardware: Edimax EW-7811Un (RTL8188CUS)
> >     Driver:   rtwn
> >
> >     % grep wlan /etc/rc.conf
> >     wlans_rtwn0="wlan0"
> >     ifconfig_wlan0="WPA SYNCDHCP"
> >     create_args_wlan0="country GB
> >
> >     % dmesg | grep rtwn
> >     rtwn0 on uhub0
> >     rtwn0: <Realtek 802.11n WLAN Adapter, class 0/0, rev 2.00/2.00, addr
> 1> on usbus0
> >     rtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R
> >
> >     % sysctl dev.rtwn
> >     dev.rtwn.0.rx_buf_size: 24
> >     dev.rtwn.0.ratectl_selected: 1
> >     dev.rtwn.0.ratectl: 1
> >     dev.rtwn.0.hwcrypto: 1
> >     dev.rtwn.0.debug: 0
> >     dev.rtwn.0.ht40: 0
> >     dev.rtwn.0.%parent: uhub0
> >     dev.rtwn.0.%pnpinfo: vendor=0x7392 product=0x7811 devclass=0x00
> devsubclass=0x00 devproto=0x00 sernum="00e04c000001"
> >     release=0x0200 mode=host intclass=0xff intsubclass=0xff
> intprotocol=0xff
> >     dev.rtwn.0.%location: bus=0 hubaddr=1 port=1 devaddr=2 interface=0
> ugen=ugen0.2
> >     dev.rtwn.0.%driver: rtwn
> >     dev.rtwn.0.%desc: Realtek 802.11n WLAN Adapter, class 0/0, rev
> 2.00/2.00, addr 1
> >     dev.rtwn.%parent:
> >
> >     % ifconfig wlan0
> >     wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0
> mtu 1500
> >               ether 74:da:38:8b:e1:10
> >               inet 192.168.0.12 netmask 0xffffff00 broadcast
> 192.168.0.255
> >               groups: wlan
> >               ssid VM5909357 channel 6 (2437 MHz 11g ht/20) bssid
> c0:05:c2:57:8d:69
> >               regdomain ETSI country GB authmode WPA2/802.11i privacy ON
> >               deftxkey UNDEF AES-CCM 2:128-bit AES-CCM 3:128-bit txpower
> 30 bmiss 7
> >               scanvalid 60 protmode CTS ht20 ampdulimit 64k ampdudensity
> 8 shortgi
> >               -stbc -ldpc wme roaming MANUAL
> >               media: IEEE 802.11 Wireless Ethernet MCS mode 11ng
> >               status: associated
> >               nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >
> >     % ifconfig wlan0 scan
> >     SSID/MESH ID                      BSSID              CHAN RATE
> S:N     INT CAPS
> >     VM5909357                         c0:05:c2:57:8d:69    6   54M
> -78:-95   100 EPS  HTCAP WME ATH RSN
> >
> >     % ifconfig wlan0 list sta
> >     ADDR               AID CHAN RATE RSSI IDLE  TXSEQ  RXSEQ CAPS FLAG
> >     c0:05:c2:57:8d:69    1    6  65M 21.5    0  28562   4816 EPS
> AQEHTRs HTCAP WME ATH RSN (rssi 0.0:0.0:0.0:0.0 nf
> >     0:0:0:0)
> >
> >     % wget
> https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-dvd1.iso
> >     FreeBSD-12.1-RELEASE-amd64-dvd1.iso
> >     <
> https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-dvd1.isoFreeBSD-12.1-RELEASE-amd64-dvd1.iso
> >
> >     0%[                                       ]  19.05M   947KB/s    eta
> 79m 18s
> >
> >
> >     % wlandebug +rate
> >     $ dmesg
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 6, txcnt=11, retrycnt=6
> >     wlan0: [c0:05:c2:57:8d:69] AMRR decreasing rate 5 (txcnt=11
> retrycnt=6)
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 5, txcnt=36, retrycnt=1
> >     wlan0: [c0:05:c2:57:8d:69] AMRR increasing rate 6 (txcnt=36
> retrycnt=1)
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 6, txcnt=37, retrycnt=7
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 6, txcnt=36, retrycnt=9
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 6, txcnt=36, retrycnt=2
> >     wlan0: [c0:05:c2:57:8d:69] AMRR increasing rate 7 (txcnt=36
> retrycnt=2)
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 7, txcnt=36, retrycnt=5
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 7, txcnt=36, retrycnt=5
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 7, txcnt=37,
> retrycnt=12
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 7, txcnt=36, retrycnt=7
> >     wlan0: [c0:05:c2:57:8d:69] AMRR: current rate 7, txcnt=36,
> retrycnt=10
> >
> >     As you can see the MCS rate is being set by wlan_amrr to MCS 6 and
> 7, but the actual real-world download rate
> >     remains firmly stuck at around ~900KB/sec (!)
> >
> >     Please could someone with knowledge of the FreebSD wifi stack help
> diagnose this problem with me?
> >
> >
> > hi!
> >
> > You can experiment with limiting the unicast rate - eg ifconfig wlan0
> ucastrate 3 for MCS3 when it's in 11n mode.
> >
> > AMRR isn't the best at all at 802.11n rate selection. It may just be
> over-estimating how great the channel is behaving.
> >
> > However, that's just the transmit rate control. The remote end (ie the
> sender) is making choices on what rate to use
> > when transmitting to you. So let's see if we can first limit bad choices
> (and thus taking up too much airtime)
> > transmitting data BACK, and then we can figure out what's up with
> download speeds.
> >
> >
> >
> > -adrian
> >
>
> Hi Adrian, thanks for your time and the explanation, much appreciated!
>
> I tried setting ucastrate 3 and it made no difference to the download rate;
>
> % ifconfig wlan0
> wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>          ether 74:da:38:8b:e1:10
>          inet 192.168.0.12 netmask 0xffffff00 broadcast 192.168.0.255
>          groups: wlan
>          ssid VM5909357 channel 6 (2437 MHz 11g ht/20) bssid
> c0:05:c2:57:8d:69
>          regdomain ETSI country GB authmode WPA2/802.11i privacy ON
>          deftxkey UNDEF AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 30
> bmiss 7
>          ucastrate 3 scanvalid 60 protmode CTS ht20 ampdulimit 64k
>          ampdudensity 8 shortgi -stbc -ldpc wme roaming MANUAL
>          media: IEEE 802.11 Wireless Ethernet MCS mode 11ng
>          status: associated
>          nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>
> % wget
> https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-dvd1.iso
> FreeBSD-12.1-RELEASE-amd64-dvd1.iso
> <https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-dvd1.isoFreeBSD-12.1-RELEASE-amd64-dvd1.iso>.
>  0%[                             ]   8.87M  806KB/s    eta 81m 35s
>
>
>


More information about the freebsd-wireless mailing list