From owner-freebsd-wireless@freebsd.org Wed Sep 16 21:36:20 2020 Return-Path: Delivered-To: freebsd-wireless@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0D9B63F253E for ; Wed, 16 Sep 2020 21:36:20 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BsD1b101Nz4KK7 for ; Wed, 16 Sep 2020 21:36:18 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by mail-qt1-x841.google.com with SMTP id k25so170758qtu.4 for ; Wed, 16 Sep 2020 14:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dXUzBKUo/+GJLR2uy15r+WrjiIN2qIZI5kkXcTCxyw0=; b=EGz7Si0uYaQ+ELGPzBi0I+0MZ/d5wi0ad1eHVpWiaR9FxW+iih1qTidViuGWgLNrnq JYTkqxVKnKeT45cmKjH8RAiw2yu/UpTyNW6AQOeo5BbMeEuSiw51OHRWkgOIQeCKKWoJ iuJrszT3rb2rpaU3TkD9z1IQ+d4nAiecKMfneDBKWTh+27an/bVQKV82qgGcVSHCjMUs AkPATDeSnWlc6AmuOb4D5/G/yZpAqx4ScJboetiqrUoXy4Z/koITsWxhJC8vJ3xBV5/N Dx6z7OdcfPqL2jLXdEVWvGHJL+D2RWqXx3UuXnCpJToJj002DoK08dbq2rMC+Tlpu0IZ GSeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dXUzBKUo/+GJLR2uy15r+WrjiIN2qIZI5kkXcTCxyw0=; b=Xi9ALhZMAgNz8leKUsgl8GCpnHwosJPlxlB4E1+hjyUz2mGF+qWNdZ/Fvtf1m2Bqo5 dS96bIIQdwzn0mqQRfruSv2nhoeb6XNwQ2kRjaZE3/hhtkyXMtP/XthGhAfDLGBxmniR hUGXK+yhBTcIyWyZv6DQcqGwldEK+SAk0KraPV11AIFCKx+kXu/trtZeo2toTpEefqv/ X4cxmeo3ubN9XPG3RnGgUEWpZnlpm8oHHXxvTwo2oxgIi6USbG0K23ughtHTtf0O3+92 jkO03ygtArXL9qiEfMUAblEA6tDUg2CRz2PzSo4sK6RdRfbSBzO+uRdnuwYqogLEvtXe 5+vQ== X-Gm-Message-State: AOAM533jVsOji0uvZAQMPk5rzmGZ4gYhOVpVWUaGRW/yHPQ+Nz3k0XTN 32+Ue9Oe4F3+A9WcffyqrDRD3muQpfmWPIr3/XrjThMmemk= X-Google-Smtp-Source: ABdhPJxYNr4iXbaN16gFDw47s9uuQPxKTSNIeGKigd2WXK99Gn3p+QI5oO6OW6U+G9ahLZm6PsLvMCR+ic+ZIbt949Q= X-Received: by 2002:ac8:4e4e:: with SMTP id e14mr12853766qtw.49.1600292178171; Wed, 16 Sep 2020 14:36:18 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Adrian Chadd Date: Wed, 16 Sep 2020 14:36:04 -0700 Message-ID: Subject: Re: Edimax EW-7811Un (rtwn): Slow speeds / rate control To: James Wright Cc: "freebsd-wireless@freebsd.org" X-Rspamd-Queue-Id: 4BsD1b101Nz4KK7 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=EGz7Si0u; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of adrianchadd@gmail.com designates 2607:f8b0:4864:20::841 as permitted sender) smtp.mailfrom=adrianchadd@gmail.com X-Spamd-Result: default: False [-3.35 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-0.40)[-0.399]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.965]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-0.98)[-0.983]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-wireless@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::841:from]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[freebsd-wireless] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.33 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Sep 2020 21:36:20 -0000 On Wed, 16 Sep 2020 at 13:41, James Wright 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: 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 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 > > % 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 > > 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