Is the quoted code correct?
sed -i 's/disasoc_low_acc=0/disassoc_low_ac=1/g' /tmp/ath0_hostap.conf
My router shows this:
root@DD-WRT:~# cat /tmp/ath0_hostap.conf|grep disassoc
disassoc_low_ack=1
Typo in the code. I fixed it in the post. It should be:
's/disassoc_low_ack=0/disassoc_low_ack=1/g' /tmp/ath0_hostap.conf _________________ How-to: Encrypt your queries with DNS over TLS
I'm on a Linksys WRT3200ACM and I think I've been encountering this same problem maybe?
Versions I've tried:
DD-WRT v3.0-r42681 std (03/13/20) - No problem
DD-WRT v3.0-r42819 std (03/30/20) - No problem
DD-WRT v3.0-r44715 std (11/03/20) - Problem
DD-WRT v3.0-r46069 std (03/17/21) - Problem
DD-WRT v3.0-r46130 std (03/21/21) - Problem
DD-WRT v3.0-r46177 std (03/26/21) - Problem
Description of problem: Some wifi devices on this network (such as phones and laptops) have intermittent problems getting data. Each device shows that it is still connected to wifi (the wifi "bars" symbol is there), but when trying to browse a page or use an app, the app intermittently can't get any data and times out. The problem is worked-around by bouncing the Wifi on the device; after the device reconnects to Wifi, it gets data again. I have seen some messages in the router's syslog that say "disassociated due to inactivity" and I wonder if that's the cause of this?
I want to try the code described in this thread which changes the setting to "disassoc_low_ack=1" (and yes, I see that the code got a typo fix updated in the post), but the code in this thread seems to still be the wrong code for this router. When I log in to the SSH shell, it does not contain a file named /tmp/ath0_hostap.conf, though I have files named /tmp/wlan0_hostap.conf and /tmp/wlan1_hostap.conf. Similarly for wlan0_hostapd.pid and wlan1_hostapd.pid.
I can successfully change the setting in the files, but I get errors when it tries to restart hostapd. Here is the code I'm trying at the SSH prompt (I haven't tried putting this into my startup yet because it doesn't yet work):
The section where it modifies the files works well. I see the modification succeeds by using the cat statements. The problem occurs when I try to kill and restart hostapd. It gets errors, and after that, no wireless devices connect to the router. Here is what the output looks like, when trying to kill and restart hostapd:
Code:
ps|grep hostapd
1194 root 4520 S hostapd -B -P /var/run/wlan0_hostapd.pid /tmp/wlan0_hostap.conf
1223 root 4528 S hostapd -B -P /var/run/wlan1_hostapd.pid /tmp/wlan1_hostap.conf
14454 root 1388 S grep hostapd
killall hostapd
wait 3
hostapd -B -P /var/run/wlan0_hostapd.pid /tmp/wlan0_hostap.conf
Configuration file: /tmp/wlan0_hostap.conf
nl80211: kernel reports: Match already configured
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
nl80211 driver initialization failed.
wlan0: interface state UNINITIALIZED->DISABLED
wlan0: AP-DISABLED
wlan0: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlan0 wasn't started
wait 1
hostapd -B -P /var/run/wlan1_hostapd.pid /tmp/wlan1_hostap.conf
Configuration file: /tmp/wlan1_hostap.conf
nl80211: kernel reports: Match already configured
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211 driver initialization failed.
wlan1: interface state UNINITIALIZED->DISABLED
wlan1: AP-DISABLED
wlan1: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlan1 wasn't started
Does anyone know what those errors mean, and what I can do to successfully try this reconfiguration on my router?
Joined: 08 May 2018 Posts: 13903 Location: Texas, USA
Posted: Fri Mar 26, 2021 21:52 Post subject:
I presume there is no configuration item in the webUI to disable disassociation on low ack or the associated thresholds on when to disassociate. Yet another chance for me to say, "Someone needs to do a write-up on Marvell platform wireless configurations"... _________________ "Life is but a fleeting moment, a vapor that vanishes quickly; All is vanity"
Contribute To DD-WRT Pogo - A minimal level of ability is expected and needed... DD-WRT Releases 2023 (PolitePol)
DD-WRT Releases 2023 (RSS Everything)
----------------------
Linux User #377467 counter.li.org / linuxcounter.net
Joined: 04 Aug 2018 Posts: 1428 Location: Appalachian mountains, USA
Posted: Sat Mar 27, 2021 1:07 Post subject:
I'm away from the router at the moment, so can't convey the details, but the thresholds are there in the wireless settings, in the advanced section. _________________ 2x Netgear XR500 and 3x Linksys WRT1900ACSv2 on 53544: VLANs, VAPs, NAS, station mode, OpenVPN client (AirVPN), wireguard server (AirVPN port forward) and clients (AzireVPN, AirVPN, private), 3 DNSCrypt providers via VPN.
I presume there is no configuration item in the webUI to disable disassociation on low ack or the associated thresholds on when to disassociate. Yet another chance for me to say, "Someone needs to do a write-up on Marvell platform wireless configurations"...
BS wrote to me in the tracker
Quote:
its set by default to 0 on all mvebu based devices since these devices do not report valid ack values. and default to 1 for everything else.
However, you should also be able to change this relatively easily and permanently in nvram.
only valid for builds ≥ r46069
Code:
nvram show | grep lowack
the command should display the individual AP's and VAP's
example:
Code:
nvram show | grep lowack
wlan0.1_d_lowack=0
wlan1_d_lowack=0
wlan1.1_d_lowack=0
wlan0_d_lowack=0
then simply activate the variables
AP's
Code:
nvram set wlan0_d_lowack=1
nvram set wlan1_d_lowack=1
VAP's
Code:
nvram set wlan0.1_d_lowack=1
nvram set wlan1.1_d_lowack=1
Safe changes
Code:
nvram commit
restart WLAN
if it does not help deactivate the variables again (set to 0)
Last edited by ho1Aetoo on Sat Mar 27, 2021 14:07; edited 4 times in total
Joined: 08 May 2018 Posts: 13903 Location: Texas, USA
Posted: Sat Mar 27, 2021 13:16 Post subject:
My previous comment was highly rhetorical, most likely. Last I knew, the ability to enable or disable disassociation on low ack was still in the webUI on Marvells. _________________ "Life is but a fleeting moment, a vapor that vanishes quickly; All is vanity"
Contribute To DD-WRT Pogo - A minimal level of ability is expected and needed... DD-WRT Releases 2023 (PolitePol)
DD-WRT Releases 2023 (RSS Everything)
----------------------
Linux User #377467 counter.li.org / linuxcounter.net
ah.... well, of course, if the setting is available in WebIF
but i will leave the text as it is, because there is only a setting for AP's and not for VAP's
Thanks so much for your responses. It seems that the old script that I saw was only needed for older versions of DD-WRT which didn't yet have "disassoc low ack" in the web UI. Now that it's in the web UI, the script is no longer relevant, and it's not a surprise that the script no longer works.
...Until recently I had given up on the 3200 2.4Ghz radio as it has been nothing but a Royal Pain. Smart Devices (Sonoff) will only function with wmm disabled and G only. Mixing any other devices on the same AP so configured causes multiple disconnects as you are experiencing. ...
Darren198712, thanks for your comment on this post... your comment about "wwm diabled and G Only" is saving me lots of headaches... Now if I could go back in time and listen to that part about not buying the 3200...
I always lost the connection with a client that had the strongest transmission power and the best signal quality. Since it even transmits with the factory setting at 31 dBm. So I don't think the problem is related to disassoc_low_ack, the setting probably doesn't work at all on marvel routers.
I have now identified several points that have an influence.
1. In hostapd.conf there is an option ap_max_inactivity=300
# Station inactivity limit
#
# If a station does not send anything in ap_max_inactivity seconds, an
# empty data frame is sent to it in order to verify whether it is
# still in range. If this frame is not ACKed, the station will be
# disassociated and then deauthenticated. This feature is used to
# clear station table of old entries when the STAs move out of the
# range.
#
# The station can associate again with the AP if it is still in range;
# this inactivity poll is just used as a nicer way of verifying
# inactivity; i.e., client will not report broken connection because
# disassociation frame is not sent immediately without first polling
# the STA with a data frame.
# default: 300 (i.e., 5 minutes)
You can increase this by adding the entry in the Wireless Security tab under Custom Config and increasing the value.
2. and 3. Furthermore, the rekeying of the WLAN connection and the too long tapping interval of the clients seem to have an impact. This could be due to an energy saving function of the clients.
Try the following command on a client.
Code:
more /var/log/syslog | grep "carrier lost"
and this on the DDWRT Router
Code:
more /var/log/messages | grep "deaut"
This also shows the crashes. With a client, this showed me a connection break every 2 minutes, now only 1 time a day if the router reconnects at 5:00 in the morning due to the forced disconnection of the network provider.
At what intervals does it show the problems on your client?
I run a service via systemctl that executes the following commands every 120 seconds. You can probably do this with a crontab command
Code:
wpa_cli -i wlan0 scan
try in the Wireless Security tab
Key Renewal Interval = 3600 (test <120 and 86400)
WPA Strict Rekeying = enable