CYW43455 STA mode fails for DFS enabled channels in concurrent-STA-and-AP mode

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

cross mob
nvbolhuis
Level 1
Level 1
5 sign-ins First reply posted First question asked

We're using a custom board with the CYW43455 module, and we're using concurrent STA and AP mode as explained here:

https://community.infineon.com/t5/Resource-Library/Concurrent-AP-and-STA/ta-p/246043

So, STA mode (wlan0) is using wpa_supplicant and AP mode (wlan1) is using hostapd.

The regulatory domain is set to the Netherlands. This has been done with 'iw reg set NL' and 'wl country NL'. Our CLM_blob contains the proper regulatory domain settings for NL/ETSI.

Everything seems to work well unless a 5G DFS enabled channel is used.

If a DFS enabled channel is used the STA mode fails after a while. We can see the failure occuring once these kernel error messages start to appear:

[209319.907996] ieee80211 phy0: brcmf_run_escan: error (-52)

[209319.913577] ieee80211 phy0: brcmf_cfg80211_scan: scan error (-52)

[209320.938726] ieee80211 phy0: brcmf_run_escan: error (-52)

[209320.944251] ieee80211 phy0: brcmf_cfg80211_scan: scan error (-52)

It looks like the wifi firmware somehow (partly) fails and always rejects scan requests (brcmf_run_escan talks to the wifi firmware via fil/sdio).

Actually, the problem is already there if the STA is on a DFS-enabled channel and we're forcing a disconnect and reassociate with: 'wpa_cli -iwlan0 disconnect' and 'wpa_cli -iwlan0 reconnect'.

We've tried several things to avoid this issue, I'm talking about:

- disable power_save with 'wl pm 0' and/or 'iw wlan0|1 set power_save off'

- use latest wifi FW image (BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234)

- disable DFS with 'wl dfs_ism_monitor 1', 'wl radar 0' and 'wl dfs_preism 0'

But it doesn't help.

By enabling the appropriate brcmfmac debug options (and debugfs) we could get the "brcmfmac forensics". The following errors pop up:

000111.394 wl0: wlc_iovar_op: escan BCME -43 (Scan Rejected)
000111.394 wl0: wlc_scan_request_ex, can not scan due to error -43
000112.434 wl0: wlc_iovar_op: escan BCME -43 (Scan Rejected)
000112.434 wl0: wlc_scan_request_ex, can not scan due to error -43

for more details, see attachment.

Is this a wifi FW issue?

whatever this is, please help us.

If there's no (immediate) solution, a workaround (other than disable 5g) would be good as well.

Thanks!

0 Likes
8 Replies
raks_99
Moderator
Moderator
Moderator
First question asked 250 replies posted 250 sign-ins

Hi @nvbolhuis ,

Let me try to reproduce this. Are you using the latest brcmfmac drivers? https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2...

0 Likes

Hi @raks_99 ,

Thanks for your reply and your plan to reproduce this.

Did you already manage to reproduce this issue?

We did try the latest cyfmac43455-sdio.bin (BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234) but the problem is still there.

We're using the mainline LTS 5.4.x brcmfmac driver, so we don't use most of the patches from cypress-patch-v5.10.9-2021_1020.tar.gz. We're also not really using the patches from cypress-hostap_2_9-1-2021_1020.tar.gz.
Do you think the latest brcmfmac/hostap patches will solve this issue?
I will anyway include them all and see if I can reproduce, I'll let you know.

Thanks!

BR,
Norbert

0 Likes

Hi @raks_99 ,

Using the latest brcmfmac drivers makes no difference. The problem is still there.

I really hope you can reproduce and investigate.

Thanks!

BR,

Norbert

0 Likes
raks_99
Moderator
Moderator
Moderator
First question asked 250 replies posted 250 sign-ins

Hi @nvbolhuis ,

The default clm blobs usually don't support DFS channels,  are you using the clm from the FMAC package?

0 Likes

Hi @raks_99 ,

No, we're not using the clm from the FMAC package.

We're using a custom one (created for our product) for which the DFS channels (e.g. the channels between 5250-5350 and 5470-5725 MHz for the Netherlands) are "enabled".

43455 doesn't support DFS channels?

0 Likes
raks_99
Moderator
Moderator
Moderator
First question asked 250 replies posted 250 sign-ins

hi @nvbolhuis ,

It is supported. I'm trying to reproduce this issue. I have my wlan0 connected as a client to an AP in channel 100.  I do not see any crashes after observing for a couple of minutes. Do you see the crash immediately?

What about the wlan1 interface? can you share your hostapd and wpa_supplciant conf files with me ?

Thanks

0 Likes

Hi @raks_99 ,

We start STA+AP kinda like this:

====================== startup =========================
ip addr flush wlan0
ip link set wlan0 down
iw reg set NL
iw dev wlan0 interface add wlan1 type __ap
iw dev wlan0 set power_save off
iw dev wlan1 set power_save off
ip link set wlan1 up

hostapd -B -P /var/run/wifi/hostapd.pid -d -g /var/run/wifi/hostapd.sock -i wlan1 -s -- /var/run/wifi/hostapd.conf

ip addr add 192.168.123.4/24 dev wlan1

...

wpa_supplicant -B -P/var/run/wifi/wpa_supplicant.pid -s -Dnl80211 -c/var/run/wifi/wpa_supplicant.st.conf -d -iwlan0



Our hostapd.conf file looks like this:

====================== hostapd.conf =========================
interface=wlan1
ctrl_interface=/var/run/wifi
driver=nl80211

ssid="...<hidden>..."
wpa_passphrase="...<hidden>..."
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

hw_mode=b
channel=6

macaddr_acl=0
wmm_enabled=1
ieee80211n=1
ieee80211d=0
ieee80211h=0

logger_syslog=-1
logger_syslog_level=1


Our wpa_supplicant.st.conf file is like this:

====================== wpa_supplicant.st.conf =========================
ctrl_interface=DIR=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=0
ignore_old_scan_res=1
network={
 ssid="...<hidden>..."
 psk="...<hidden>..."
 vht=0
 ht40=0
 max_oper_chwidth=0
}


Let me know whether you need more info.

Thanks!

BR,
Norbert

0 Likes
raks_99
Moderator
Moderator
Moderator
First question asked 250 replies posted 250 sign-ins

Hi @nvbolhuis ,

With the current latest firmware, there is an issue where the second interface where the softAP is brought up, follows the client interface's channel, ignoring the conf file settings. Internally, we are working on fixing this. 

0 Likes