How to manage WWD Flow Control Errors on SDIO for CYW4334x

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MiTo_1583836
Level 5
Level 5
50 likes received 25 likes received 10 likes received

What are the options to mitigate flow control error on SDIO bus when the radio is exposed to a large number of AP (>50)?

We have noticed performance issues when a client tries to connect to the softAP running on the module and the module itself is running a scan of the network with a large number of APs.

We are running WICED 6.x and we are hitting the following log:

WPRINT_MACRO(( "WWD Stats.. \n"

                   "tx_total:%ld, rx_total:%ld, tx_no_mem:%ld, rx_no_mem:%ld\n"

                   "tx_fail:%ld, no_credit:%ld, flow_control:%ld\n",

                   wwd_stats.tx_total, wwd_stats.rx_total, wwd_stats.tx_no_mem, wwd_stats.rx_no_mem,

                   wwd_stats.tx_fail, wwd_stats.no_credit, wwd_stats.flow_control ));

In the condition described the flow control would start to increase drastically via the wwd_stats.flow_control.

Is there a way we can prevent the scan to happen when we are already transmitting data? Can we configure the stack to have a better control over when the scan takes place?

Thank you in advance,

0 Likes
1 Solution
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

Hi MiTo_1583836​,

wwd_stats.flow_control is about "Number of times WWD Flow control is enabled". In your scenario, the Flow Control is meant to increase. But it's just following the standard.

You can refer to the two demos, apps.snip.scan & apps.wwd.scan, to find out how to manage scan procedure properly. Basically, I think you may need to setup your semaphores between 'wiced_wifi_is_sta_link_up()' and 'wiced_scan_result_callback_t()' to make them communicating with each other, to avoid conflicts.

----------------------

BTW, I don't think sending traffic is available while doing the scanning, because it's not connected at all under STA-Only mode.

Please look into LwIP's docs and the docs related to TCP/IP control to confirm the availability of your act.

<<<<<<<<<<<<<>>>>>>>>>>>>>

Sincere regards from​ C. L.

<<<<<<<<<<<<<>>>>>>>>>>>>>

View solution in original post

3 Replies
MiTo_1583836
Level 5
Level 5
50 likes received 25 likes received 10 likes received

Another scenario as well is basically turning the module into a STA only and sending TCP/IP traffic while doing the scanning. The code locks up in the LWIP conn->op_completed

Thank you for your feedback,

0 Likes
Charles_Lai
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 sign-ins

Hi MiTo_1583836​,

wwd_stats.flow_control is about "Number of times WWD Flow control is enabled". In your scenario, the Flow Control is meant to increase. But it's just following the standard.

You can refer to the two demos, apps.snip.scan & apps.wwd.scan, to find out how to manage scan procedure properly. Basically, I think you may need to setup your semaphores between 'wiced_wifi_is_sta_link_up()' and 'wiced_scan_result_callback_t()' to make them communicating with each other, to avoid conflicts.

----------------------

BTW, I don't think sending traffic is available while doing the scanning, because it's not connected at all under STA-Only mode.

Please look into LwIP's docs and the docs related to TCP/IP control to confirm the availability of your act.

<<<<<<<<<<<<<>>>>>>>>>>>>>

Sincere regards from​ C. L.

<<<<<<<<<<<<<>>>>>>>>>>>>>

Thank you very much for the details, this is helpful.

0 Likes