Re: brcmfmac disconnects when iwd scans

KeithG <[email protected]> Fri, 2 May 2025 18:43:50 -0500
Newsgroups dev.linux.lists.iwd
Message-ID <CAG17S_MX3S9=EmiHBae8WsRnmsUGBJ5h4d8kCmgdxYZ2Zaeh8Q@mail.gmail.com>
On Fri, May 2, 2025 at 11:38 AM Arend Van Spriel
<[email protected]> wrote:
>
> On May 2, 2025 6:10:35 PM KeithG <[email protected]> wrote:
>
> > On Fri, May 2, 2025 at 9:45 AM Denis Kenzior <[email protected]> wrote:
> >>
> >> 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
> >
> > Denis,
> >
> > Thanks for going through this. I am still trying to get more pertinent
> > information as to what may cause these disconnects. If there is
> > anything I can test or more info I can provide, let me know. As it is,
> > I am trying to set up hostapd/wpa_supplicant to see if it is any more
> > stable.
>
> So is this thread in any way related to the thread with subject "Cannot
> maintain an ap with brcmfmac"? I responded to that on April 21, but never
> saw any follow-up on that. It's kinda hard to debug by email especially
> when new threads are started in parallel. More than willing to help but a
> bit lost in the woods here.
>
> Regards,
> Arend
>
Arend,

Sorry about that, Yes it is the same. I stopped responding to that
thread as it seemed to me to be be an IWD issue and not a
wpa_supplicant/hostapd/firmware/driver issue that I was running into.
It still may be, but I thought I'd investigate iwd first. I composed a
whole response, but then noticed that it seemed more stable with
wpa_supplicant than iwd and did not want to exercise everyone (you).

my next steps are to reconfigure everything with just
hostapd/wpa_supplicant and see if it is any more stable. If so, then
look to see if I can characterize how it behaves differently with iwd
than wpa_supplicant.

What we want is to be able to use the single WiFi chip with 2
interfaces, one as the default alan0 and one as ap0 . Have it scan
automatically on wlan0 while ap0 is up and advertising if not
connected. If the scan shows a 'known network', tear down off the ap0,
stop hostapd and initiate a connection to the SSID on the wlan0. We
create the ap0 via these commands:

iw dev wlan0 interface add ap0 type __ap
ip link set dev ap0 address '$some_MAC'
ip link set dev ap0 up

then set up the AP mode with either iwd or hostapd