OpenWrt SNAPSHOT, r22702-cf8d861978
-----------------------------------------------------
root@OpenWrt:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
option channel '36'
option band '5g'
option htmode 'VHT80'
option country 'RO'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid ''
option encryption 'psk2'
option macaddr '
option key ''
config wifi-device 'radio1'
option type 'mac80211'
option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
option channel '11'
option band '2g'
option htmode 'HT40'
option country 'RO'
option legacy_rates '1'
option cell_density '0'
option noscan '1'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid '
option encryption 'psk2'
option macaddr ''
option key ''
root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy1/mwlwifi/info
driver name: mwlwifi
chip type: 88W8864
hw version: 7
driver version: 10.3.9.0
firmware version: 0x0702091a
power table loaded from dts: no
firmware region code: 0x30
mac address:
2g: enable
5g: disable
antenna: 4 4
irq number: 82
ap macid support: 0000ffff
sta macid support: 00010000
macid used: 00000001
radio: enable
iobase0: a023d05d
iobase1: 913fb359
tx limit: 768
rx limit: 256
qe trigger number: 74711
root@OpenWrt:~#
Just to be clear are you saying there are still latency issues with the wifi updates?
Before this update I had done some minor testing and found no difference with packet steering on or off. Are you sure it is making a difference to your wifi quality?
Still trying to decide if I should update.
When we have all the latest changes in and tested, it'd be good to summarize what other wifi related settings are recommended (and why). Would someone be able to put something like this together? Maybe it could then be added to the device wiki page?
Eg.
AMSDU on/off
Packet steering on/off
Others?
The General Section on the WRT3200ACM wiki page already cites two sources that suggest that enabling "packet steering" is beneficial to workaround hardware scheduling issues.
The WRT AC Series wiki page has a section about Latency with 88W8864 (WRT1200 and WRT1900 series only) recommending to disable AMSDU. But this was prior to the patches by jbsky (mlwifi 10.3.9.1). Hence why this needs more testing. I only have WRT3200ACM to test with.
Yes, I am sure packet steering makes a difference when testing with iperf3 the full throughput.. also see my post above and cited sources from the wiki page
- update to 6c9b526e84e73880eaf72cb656b5908bc5c3f792
- downgrades mwlwifi to 20200206-3 due to increased latency
- adds back the amdsu patch
for anyone building themself: to downgrade mwlwifi:
git revert --no-edit ab3f151aa874837ae1ac56d5b1cc31bb6cd68681
Thank you @SkewedZeppelin
By the way, with divested-wrt-snapshot-r22652+11 and packet steering enabled, and sitting near the router, and doing iperf3 -t 30 -c wrt3200acm
from a macbook pro 2019 connected at 1300mbps:
❯ iperf3 -t 30 -c 192.168.100.1
Connecting to host 192.168.100.1, port 5201
[ 5] local 192.168.100.247 port 49800 connected to 192.168.100.1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 55.8 MBytes 468 Mbits/sec
[ 5] 1.00-2.00 sec 84.6 MBytes 710 Mbits/sec
[ 5] 2.00-3.00 sec 87.8 MBytes 737 Mbits/sec
[ 5] 3.00-4.00 sec 86.8 MBytes 728 Mbits/sec
[ 5] 4.00-5.00 sec 93.6 MBytes 784 Mbits/sec
[ 5] 5.00-6.00 sec 92.8 MBytes 779 Mbits/sec
[ 5] 6.00-7.00 sec 94.0 MBytes 790 Mbits/sec
[ 5] 7.00-8.00 sec 92.3 MBytes 774 Mbits/sec
[ 5] 8.00-9.00 sec 93.3 MBytes 782 Mbits/sec
[ 5] 9.00-10.00 sec 92.1 MBytes 773 Mbits/sec
[ 5] 10.00-11.00 sec 93.5 MBytes 784 Mbits/sec
[ 5] 11.00-12.00 sec 91.1 MBytes 764 Mbits/sec
[ 5] 12.00-13.00 sec 93.7 MBytes 787 Mbits/sec
[ 5] 13.00-14.00 sec 90.1 MBytes 755 Mbits/sec
[ 5] 14.00-15.00 sec 92.1 MBytes 774 Mbits/sec
[ 5] 15.00-16.00 sec 91.9 MBytes 771 Mbits/sec
[ 5] 16.00-17.00 sec 90.5 MBytes 759 Mbits/sec
[ 5] 17.00-18.00 sec 91.9 MBytes 770 Mbits/sec
[ 5] 18.00-19.00 sec 94.6 MBytes 793 Mbits/sec
[ 5] 19.00-20.00 sec 92.0 MBytes 772 Mbits/sec
[ 5] 20.00-21.00 sec 95.0 MBytes 797 Mbits/sec
[ 5] 21.00-22.00 sec 92.9 MBytes 778 Mbits/sec
[ 5] 22.00-23.00 sec 85.4 MBytes 717 Mbits/sec
[ 5] 23.00-24.00 sec 84.1 MBytes 706 Mbits/sec
[ 5] 24.00-25.00 sec 82.7 MBytes 693 Mbits/sec
[ 5] 25.00-26.00 sec 84.9 MBytes 712 Mbits/sec
[ 5] 26.00-27.00 sec 93.8 MBytes 787 Mbits/sec
[ 5] 27.00-28.00 sec 86.9 MBytes 729 Mbits/sec
[ 5] 28.00-29.00 sec 73.7 MBytes 618 Mbits/sec
[ 5] 29.00-30.00 sec 77.2 MBytes 648 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 2.59 GBytes 741 Mbits/sec sender
[ 5] 0.00-30.01 sec 2.59 GBytes 741 Mbits/sec receiver
iperf Done.
From Lenovo Thinkbook on the same table in front of the router connected at 1733Mbps (as I have 160Mhz enabled on the 5GHz band of the WRT3200ACM), I am getting consistently 1.0Gbps throughput with iperf3.
Impressive, no?
Thanks again @SkewedZeppelin for all your continued brilliant work on Divested-WRT!
I conducted my tests again with divested-wrt-snapshot-r22702+10
root@WRT3200ACM:~# cat /sys/kernel/debug/ieee80211/phy0/mwlwifi/tx_amsdu
tx amsdu: enable
root@WRT3200ACM:~# grep -A2 globals /etc/config/network
config globals 'globals'
option ula_prefix 'fdff:c666:414c::/48'
option packet_steering '1'
The best throughput I now get:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 2.54 GBytes 728 Mbits/sec sender
[ 5] 0.00-30.01 sec 2.54 GBytes 728 Mbits/sec receiver
The worst throughput:
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 2.33 GBytes 667 Mbits/sec sender
[ 5] 0.00-30.02 sec 2.33 GBytes 666 Mbits/sec receiver
With old mlwifi (20200206-3)
--- 192.168.100.1 ping statistics ---
38 packets transmitted, 38 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.564/7.462/11.055/2.903 ms
With mlwifi 10.3.9.1-20230429
--- 192.168.100.1 ping statistics ---
38 packets transmitted, 38 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.310/4.677/10.057/3.014 ms
As you can see, with comparable configuration (both packet_steering enabled), and AMSDU enabled with latest mlwifi (vs AMSDU disabled in old mlwifi), I get a bit less throughput (666Mbps-728Mbps) vs old mlwifi (consistently 741Mbps), but I do get better latency.
Edit:
After wifi has been up for a little longer, further test of throughput shows better results with mlwifi 10.3.9.1 than the old mlwifi (20200206-3)
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 2.75 GBytes 789 Mbits/sec sender
[ 5] 0.00-30.01 sec 2.75 GBytes 788 Mbits/sec receiver
@SkewedZeppelin I think it is worth giving mlwifi 10.3.9.1 another spin, because as you can see above, according to my tests, with packet_steering enabled and AMSDU on, and after leaving wifi stabilize for at least 15 minutes, I am getting better throughput and better latency indeed.
Latency to router was unchanged when I was testing between old and new.
(ie. pinging the gateway like you demonstrate)
However latency of a connection actually passing through the bridge was for whatever reason significantly higher (40+ms added).
I was able to consistently reproduce higher latency on new mwlwifi with all other aspects the same.
edit: my testing is on wrt1900acsv2
strange.. according to my tests through the bridge via Ookla speed test, I was getting comparable ping (5 to 6ms only).
Edit: my testing is on wrt3200acm EU (v1)
@SkewedZeppelin I am curious, with mlwifi 10.3.9.1 , if you disable AMSDU as suggested here, do you still experience the higher latency?
Yes, I tested new mwlwifi with amsdu enabled and disabled.
enabled does seem to be fixed at least per the original issue which was frequent latency spikes iirc
strange also, as according to @jbsky's upstream PR408 , he shows he is using wrt1900ac v1.
I wonder if there are differences in terms of the bridge between wrt1900acs and wrt1900ac?
Where are the following packages:
- luci-app-ddns
- ddns-scripts
- ddns-scripts-services
- drill
- curl
- netdata
I want to have a working ddns client + netdata on my router.
When I installed snapshot r22652 on my 1900acs router, these packages were available to install.
When I installed snapshot r22702 they were not.
Snapshot r22706 I did not try yet.
What channel are you using for the 160Mhz? When I try to enable 160MHz I cannot connect to my wireless network at all.
@xopher channel 36, with "force" enabled (in luci device configuration in the top -> advanced -> it says "force 40mhz mode", but the option is universal for all channel width modes).
if you have EU version of the wrt3200acm router, you have to remove radio2
- opkg remove kmod-mwifiex-sdio kmod-btmrvl mwifiex-sdio-firmware
- remove the radio2 section from /etc/config/wireless
- keep both radio0 and radio1 country set to FR
- reboot
Appreciate the answer! Will try this on my wrt32x.
Any downside in removing radio2, and if not why is this not the default setting?
What do the "kmod-mwifiex-sdio", "kmod-btmrvl" and "mwifiex-sdio-firmware" modules refer to, specifically radio2?