On Fri, 29 Aug 2025, Andriy Gapon wrote:

On 28/08/2025 23:00, Bjoern A. Zeeb wrote:
On Thu, 28 Aug 2025, Andriy Gapon wrote:

On 19/08/2025 15:46, Andriy Gapon wrote:
This may be unsurprising becomes the adapter sees a wrong / strange channel number comparing to what's configured on the AP.  It's almost always +4. And only rarely it's the correct number.  In those cases the connection works.

E.g., right now:
$ ifconfig wlan0 scan | sort -t '' -k 1.66,1.67n | head -2
SSID/MESH ID                      BSSID              CHAN RATE    S:N INT CAPS HolyLan                           7a:d2:94:80:1f:ec  153   54M  -70:-95 100 EPS  RSN BSSLOAD HTCAP VHTCAP VHTOPMODE VHTPWRENV WME

I've observed how a scan can get a wrong frequency / channel for an AP.
In this case the channel is very different (not +4) and I have no idea what could the issue.

Evidence:
Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] new probe_resp on chan 36 (bss chan 36) "ThePromisedLan" rssi 53 Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] caps 0x11 bintval 100 erp 0x0 country [UA  36-43,20 100-110,20 144,0 149-153,20] Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] new probe_resp on chan 36 (bss chan 36) "ThePromisedLan" rssi 53 Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] caps 0x11 bintval 100 erp 0x0 country [UA  36-43,20 100-110,20 144,0 149-153,20] Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] new probe_resp on chan 36 (bss chan 36) "ThePromisedLan" rssi 53 Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] caps 0x11 bintval 100 erp 0x0 country [UA  36-43,20 100-110,20 144,0 149-153,20] Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] new probe_resp on chan 36 (bss chan 36) "ThePromisedLan" rssi 53 Aug 27 21:01:35 rock64b kernel: [78:d2:94:80:1f:ec] caps 0x11 bintval 100 erp 0x0 country [UA 36-43,20 100-110,20 144,0 149-153,20]

Aug 27 21:01:38 rock64b kernel: [78:d2:94:80:1f:ec] new beacon on chan 132 (bss chan 132) "ThePromisedLan" rssi 9 Aug 27 21:01:38 rock64b kernel: [78:d2:94:80:1f:ec] caps 0x11 bintval 100 erp 0x0 country [UA  36-43,20 100-110,20 144,0 149-153,20]

Aug 27 21:01:39 rock64b kernel: wlan0:  macaddr          bssid         chan rssi  rate flag  wep  essid Aug 27 21:01:39 rock64b kernel:  - 78:d2:94:80:1f:ec 78:d2:94:80:1f:ec  132 +49  54M   ess  wep  "ThePromisedLan"!

So, all messages are about the same AP (ThePromisedLan / 78:d2:94:80:1f:ec). Initially, the scan saw some probe responses on the correct channel (36) with strong signal (rssi 53).  Later, after jumping many channels, the scan saw a beacon for the same AP on a wrong channel (132) with much weaker signal (rssi 9).  But the last seen channel won.

Ghost beacons :)  I just debugged that with iwlwifi 2-3 days ago.  I
added logging to LinuxKPI as well initially because I suspected
something went wrong with SKBs etc.  I have a feeling that this may be
the same problem why some people have trouble getting onto 5Ghz with
iwlwifi.

Oh, so I am not alone :-)
That beacon on the wrong channel is very puzzling.
What could it be?
Some problem on the AP side?
Or some issue with switching channels on the adapter side?
Or something in the environment?  E.g., some spoofing / hacking equipment?

Do they go away when you move further away from the AP?Yes. As the main channel signal gets weaker, the much weaker signal of the
wrong channel also gets weaker to the point where it completely disappears.

Can you turn TX power down on th AP?

Yes, I can do that too.Its current setting is 20 dBm / 100 mW, the default and the maximum too.

Given mine is ocked down I only have high/middle/low and can hardly say
to what that resembles...


Another thing that I discovered is that if I change the channel width from 80 MHz down to 40 MHz (without changing anything else) the ghost beacons completely disappear too.

That interessting.  I cannot do that on that device; I could only force
the sta.

In my case the problem is that it was CH 100 (correct) and the ghost beacon
was on ch 36: 5500 - 5180 = 320

There's no support of 320 wide channels on 5Ghz due to no sufficiently contigous
spectrum.

I would assume we are more likely dealing with physics here.

What I found interesting is that we both discovered this within a few
days and I hadn't seen this in the years before.

Given iwlwifi seems to report scan results in 5Ghz high to low channels
my STA was always associated during boot before I would even see the
first ghost (but I also checked that I do see them if not assoc) I would
likely not have noticed in the last 20 days since that setup stands
where it stands.  Also the ghosts for me always came in with the last
channel scanned.  That said, apart from the channel they were valid;
content was the same, seq/timestamps got updated, ...

What also got my curiousity was that the AX210 monitor node next to it
would not see the ghosts nor did the phone with a brcm chipset.  I wanted
to put a mediatek/linux sta there as well and a Realtek but shuffling
cards etc. is currently too intrusive in that case.


So, I guess that there could be a hardware or other -ware bug on the AP side related to 80 MHz width.
FWIW, the AP is Netgear WAC104 re-flashed with OpenWRT (version 24.10.2).

If I am not mistaken you were CH 132 - CH 36, so even further apart than
I am.   What's your chanlist ends?  36..173?  (or that of the AP if you
can find out)?

How's the DFS requirement in UA?


I had a cheap 11be tri-band router here for dummy testing and when I
was close iwlwifi (but not a monitor node or my iphone next to the
laptop) would see beacons on a wrong channel in addition to the
correct one.   They usually followed another beacon which was correct on
that channel.
I verified that these beacosn indeed came up from the firmware by
checking the RX dma buffers before much/any processing got done.

The moment I turned TX power on that AP for 5Ghz from Medium to Low
the Ghost beacons were gone.  The AP chipsets is a QCA IPQ5322, the
firmware is a crippled openwrt locked down.
Interesting.
My AP has some MediaTek MT76* Wi-Fi chip.

I wonder if there is anything that we could on FreeBSD WiFi stack side to work around such broken APs. E.g., if the same AP's beacons or responses are seen on two channels then prefer a stronger one instead of the last scanned one. Or some such heuristics. Or at least log something, so that a user could be aware of the issue and could try to fix it on the AP side.

I was indeed thinking of filtering out the weaker one somehow but need to
sort the RSSI bits out first (D50928) and flush other work before I open
the next stack.  I like the idea of logging duplicate BSSIDs on
different channels.

Need to make sure we do it over the same scan batch/check CSA/...

/bz

--
Bjoern A. Zeeb                                                     r15:7

Reply via email to