Other Parts Discussed in Thread: WL1271,
Hello expert,
Our customer reported the following issue.
Can you please investigate the issue and answer for their question?
[Condition]
With 8 STAs connected to the WL1807 AP, TCP communication is executed between STA and AP at a fixed interval
[Symptom]
AP data frame does not being tramsitted to STA.
AP can receive the data frames from the STA
In this situation, 4way-handshake succeeds if one STA WiFi is turned off and on
AP does not send data frames to the STA (does not find in the air).
It can transmit 802.11 management frames and EAPOLs, but not data frames.
[Debug information]
Tx_queue_count is counted, tx_packets_count is not counted.
/sys/kernel/debug/ieee80211/phy0/wlcore# cat driver_state
tx_frames_map[0] = 0x3ff
tx_queue_count[0] = 108564
tx_queue_count[1] = 0
tx_queue_count[2] = 0
tx_queue_count[3] = 0
tx_packets_count = 25041
tx_results_count = 25031
rx_counter = 131931
tx_frames_map[0] = 0x3ff
tx_queue_count[0] = 108587
tx_queue_count[1] = 0
tx_queue_count[2] = 0
tx_queue_count[3] = 0
tx_packets_count = 25041
tx_results_count = 25031
rx_counter = 131954
tx_frames_map[0] = 0x3ff
tx_queue_count[0] = 109770
tx_queue_count[1] = 0
tx_queue_count[2] = 0
tx_queue_count[3] = 0
tx_packets_count = 25041
tx_results_count = 25031
rx_counter = 133137
- When 8 STA is disconnected, the recover process run after 5 min. with Error message.
-------wlcore復旧ログ20221003.log-------
[2022-10-03 19:55:34.290] [16662.164253] wlcore: No Tx (in FW) for 5000 ms. AP has 1 stations
[2022-10-03 19:55:39.333] [16667.204253] wlcore: No Tx (in FW) for 5000 ms. AP has 1 stations
[2022-10-03 19:55:44.382] [16672.244250] wlcore: No Tx (in FW) for 5000 ms. AP has 1 stations
[2022-10-03 19:55:49.423] [16677.284252] wlcore: No Tx (in FW) for 5000 ms. AP has 1 stations
・・・(5分継続)・・・
[2022-10-03 19:57:15.099] [16762.964253] wlcore: No Tx (in FW) for 5000 ms. AP has 1 stations
[2022-10-03 19:57:17.147] [16765.029900] wlcore: IRQ work
[2022-10-03 19:57:17.250] [16765.032984] wlcore: waking up chip from elp
[2022-10-03 19:57:17.250] [16765.043671] wlcore: wakeup time: 10 ms
・・・・
[2022-10-03 19:57:24.670] [16772.324253] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
[2022-10-03 19:57:24.670] [16772.331107] ------------[ cut here ]------------
[2022-10-03 19:57:24.670] [16772.343569] WARNING: CPU: 0 PID: 28103 at drivers/net/wireless/ti/wlcore/main.c:794 wl12xx_queue_recovery_work+0x5c/0x60 [wlcore]
-----------------------------------------
<------- Recovery process is executed.
----/wlcore/main.c----
/*
* AP might cache a frame for a long time for a sleeping station,
* so rearm the timer if there's an AP interface with stations. If
* Tx is genuinely stuck we will most hopefully discover it when all
* stations are removed due to inactivity. */
if (wl->active_sta_count) {
wl1271_debug(DEBUG_TX, "No Tx (in FW) for %d ms. AP has "
" %d stations",
wl->conf.tx.tx_watchdog_timeout,
wl->active_sta_count);
wl12xx_rearm_tx_watchdog_locked(wl);
goto out;
} wl1271_error("Tx stuck (in FW) for %d ms. Starting recovery",
wl->conf.tx.tx_watchdog_timeout);
wl12xx_queue_recovery_work(wl); <----- Recovery process.
out:
mutex_unlock(&wl->mutex);
--------------
[Others]
When change "sleep_auth" from 2 to 0, the same issue happned.
cat /sys/kernel/debug/ieee80211/phy0/wlcore/sleep_auth 0
This issue occurs when the tx_queue_count of the WiFi driver reaches the upper limit. (Usually stuck to 256, but rarely larger)
If the number of connected STAs = 0 lasts 5 minutes,
Driver failsafe wl12xx_queue_recovery_work(WL);
Question:
1) Can you please solve this issue?
2) Is there any way to restore it by the user, please show it.
Regards,
A.Fujinaka