This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1807MOD: AP no transmit data issue when 8 STA is connected.

Part Number: WL1807MOD
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