Bss_transition_request ignored by Intel AX201Wifi Card (Client)

Hi,

I facing the issue that bss_transition_request are ignored by all my Laptops with Intel Wifi Card. I tried it manually calling the following command but nothing happens. Does anybody knows this issue? It breaks DAWN and usteer in my case. Any ideas how to test it further...

The log do not include all arguments:
Mon Sep 16 13:19:32 2024 daemon.notice hostapd: phy0-ap0: BSS-TM-RESP b0:7d:64:74:cf:4d status_code=1 bss_termination_delay=0

Can be called:
ubus call hostapd.phy0-ap0 bss_transition_request '{"addr": "b0:7d:64:74:cf:4d", "disassociation_imminent": false, "disassociation_timer": 0, "validity_period": 30, "abridged": true }'

This command does not work because of "Invalid argument" caused by neighbors. What would be the correct format?
ubus call hostapd.phy0-ap0 bss_transition_request '{"addr": "b0:7d:64:74:cf:4d", "disassociation_imminent": false, "disassociation_timer": 0, "validity_period": 30, "neighbors": ["b0:7d:64:74:cf:4d"], "abridged": true }'

Cheers,
Nils

I haven't used it myself, but looking at the README the neighbors argument for bss_transition_request expects an array of Neighbor Report Elements as returned by for example rrm_nr_get_own and rrm_nr_list so a simple list of MAC's isn't enough.

1 Like

Perfect, seems working (from command). Will now try if I can get it running...

1 Like

if you can get it working please make a PR to fix usteer and dawn.

I think I found the issue for AX201 Cards (do not know if it if a problem in general). I parameter is missing in usteer which seems essential. The disassociation_timer is not set.

git.openwrt.org Git - project/usteer.git/blob - ubus.c

If it is set even if the disassociation_imminent is false my Laptops will roam. They are not kicked as they answered with a positive roaming response.

Wed Sep 18 21:16:01 2024 daemon.notice hostapd: wl1-ap0: BSS-TM-RESP b0:7d:64:74:cf:4d status_code=0 bss_termination_delay=0 target_bssid=00:0c:43:26:60:40

You can try it on your own, feedback would be nice:

Get the neighbors ID (could be on the same device for band steering) with:
ubus call hostapd.wl0-ap0 rrm_nr_get_own

Request transition:

ubus call hostapd.wl1-ap0 bss_transition_request '{"addr": "b0:7d:64:74:cf:4d", "disassociation_imminent":
 false, "disassociation_timer": 120, "validity_period": 30, "neighbors": ["000c432660e0ef0900005304070603010600"], "bridged
": true }'

In my case the Laptop needs some seconds but roams everytime. I think the Wifi-Card waits for less traffic or something like this. I found some discussion with DAWN that the dissassociation_timer is set everytime to the validity_period which makes sense. So I expect that the same change as to be applied to usteer. Will compile a fixed version for me and do some tests if I have time...

1 Like

@nbd Saw your name in the code, perhaps you can solve this faster than me. It seems that some devices only roam if aggressive roaming is disassociation_imminent is set. Both my Laptops and IPhones behave like this. Must be a setting to enable it for roaming and band steering. Also a flag if devices knows BSS transition to avoid connection issue. I started to setup an DevEnvironment for OpenWRT…