Re: brcmfmac disconnects when iwd scans

Denis Kenzior <[email protected]> Fri, 2 May 2025 09:45:51 -0500
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
Hi Keith,

 > I am building iwd from git with those 3 patches and every time it
> scans, it disconnects the AP.
> When I use wpa_supplicant, it does not disconnect regardless of using:
> iw wlan0 scan passive
> or
> iw wlan0 scan
> 
> it is only with iwd that it disconnects and only with iwctl. If I run
> 'iw wlan0 scan passive' or
> 'iw wlan0 scan' when iwd is running and wpa_aupplicant is removed, It
> seems to be OK.
> My laptop shows a disconnect, sometimes, but when I check the wlan0 on
> the laptop
> it is still connected to the ap running on the RPi. I think it looses
> the connection for a
> second but reconnects. If I run the 'iwctl station wlan0 scan' it will
> disconnect and not reconnect.
> When it does, the ap0 gets to a strange state as it takes a number of
> attempts to get it to
> reconnect and sometimes it requires a tear down and restart of ap0
> before I can reconnect
> 
> This is an iwmon log of my RPi.
> https://drive.google.com/file/d/1WNZz0dOip0XZZVIOs7RGcYIeLY2W4bXC/view?usp=sharing
> I had connected to it from my laptop. I then ran:
> 
> # iw wlan0 scan
> # iw wlan0 scan passive
> # iwctl station wlan0 scan
> 
> after I ran the last command, the Pi's ap0 disconnected from my laptop.

I do indeed see the local AP interface generating 'Del Station' events, which 
means the local client was disconnected.  The funny part is that iwd ends up 
scanning a subset of the frequencies triggered via 'iw', it just does it in two 
sets.

Here's what I see iw doing:

< Request: Trigger Scan (0x21) len 16 [ack]                           22.190542
     Interface Index: 3 (0x00000003)
     Scan Flags: Mask: 0x00004000 len 4
             Colocated6G
 > Event: Trigger Scan (0x21) len 364                                  22.194336
     Wiphy: 0 (0x00000000)
     Interface Index: 3 (0x00000003)
     Wireless Device: 1 (0x0000000000000001)
     Scan SSIDs: len 0
     Scan Frequencies: len 320
         0: 2412 (0x0000096c)
         1: 2417 (0x00000971)
         2: 2422 (0x00000976)
         3: 2427 (0x0000097b)
         4: 2432 (0x00000980)
         5: 2437 (0x00000985)
         6: 2442 (0x0000098a)
         7: 2447 (0x0000098f)
         8: 2452 (0x00000994)
         9: 2457 (0x00000999)
         10: 2462 (0x0000099e)
         11: 5170 (0x00001432)
         12: 5180 (0x0000143c)
         13: 5190 (0x00001446)
         14: 5200 (0x00001450)
         15: 5210 (0x0000145a)
         16: 5220 (0x00001464)
         17: 5230 (0x0000146e)
         18: 5240 (0x00001478)
         19: 5260 (0x0000148c)
         20: 5280 (0x000014a0)
         21: 5300 (0x000014b4)
         22: 5320 (0x000014c8)
         23: 5500 (0x0000157c)
         24: 5520 (0x00001590)
         25: 5540 (0x000015a4)
         26: 5560 (0x000015b8)
         27: 5580 (0x000015cc)
         28: 5600 (0x000015e0)
         29: 5620 (0x000015f4)
         30: 5640 (0x00001608)
         31: 5660 (0x0000161c)
         32: 5680 (0x00001630)
         33: 5700 (0x00001644)
         34: 5720 (0x00001658)
         35: 5745 (0x00001671)
         36: 5765 (0x00001685)
         37: 5785 (0x00001699)
         38: 5805 (0x000016ad)
         39: 5825 (0x000016c1)
     Scan Flags: Mask: 0x00004000 len 4
             Colocated6G

While iwd does:
< Request: Trigger Scan (0x21) len 64 [ack]                           31.619536
     Wireless Device: 1 (0x0000000000000001)
     Information Elements: len 12
         Extended Capabilities: len 10
             Capability: bit 19: BSS transition
             00 00 08 00 00 00 00 00 00 01                    ..........
     Scan Frequencies: len 24
         0: 2412 (0x0000096c)
         1: 2437 (0x00000985)
         2: 2462 (0x0000099e)
     Scan Flags: Mask: 0x00004002 len 4
             Flush
             Colocated6G

then
< Request: Trigger Scan (0x21) len 248 [ack]                          32.040780
     Wireless Device: 1 (0x0000000000000001)
     Information Elements: len 12
         Extended Capabilities: len 10
             Capability: bit 19: BSS transition
             00 00 08 00 00 00 00 00 00 01                    ..........
     Scan Frequencies: len 208
         0: 5180 (0x0000143c)
         1: 5200 (0x00001450)
         2: 5210 (0x0000145a)
         3: 5220 (0x00001464)
         4: 5240 (0x00001478)
         5: 5260 (0x0000148c)
         6: 5280 (0x000014a0)
         7: 5300 (0x000014b4)
         8: 5320 (0x000014c8)
         9: 5500 (0x0000157c)
         10: 5520 (0x00001590)
         11: 5540 (0x000015a4)
         12: 5560 (0x000015b8)
         13: 5580 (0x000015cc)
         14: 5600 (0x000015e0)
         15: 5620 (0x000015f4)
         16: 5640 (0x00001608)
         17: 5660 (0x0000161c)
         18: 5680 (0x00001630)
         19: 5700 (0x00001644)
         20: 5720 (0x00001658)
         21: 5745 (0x00001671)
         22: 5765 (0x00001685)
         23: 5785 (0x00001699)
         24: 5805 (0x000016ad)
         25: 5825 (0x000016c1)
     Scan Flags: Mask: 0x00004002 len 4
             Flush
             Colocated6G

And about 1.5 seconds later the Del Station event comes in.
 > Event: Del Station (0x14) len 32                                    33.560662
     Interface Index: 7 (0x00000007)
     MAC Address 50:84:92:A6:7A:7A
     Generation: 0 (0x00000000)
     Station Info: len 0

Not really sure what could be causing this.  Maybe this is a question for Arend?

Regards,
-Denis