DAWN: After upgrading to 23.05.2 hearing map only shows one ap per client

Hello!

After upgrading to the latest version of openwrt, I only see one ap per client. On the previous point version, I could see the list of APs that a client was hearing and then which one it was connected to. The hearing map does show both of my ap's in each ap respectively(i.e. lists all clients regardless of what ap it's connected to).

Also, the network overview reports both APs and lists what clients are connected to each ap.

/etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0'
        option band '2g'
        option htmode 'HE20'
        option cell_density '0'
        option channel '4'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'WeeFee'
        option encryption 'psk2'
        option key 'passnerd'
        option ieee80211r '1'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option ieee80211k '1'
        option skip_inactivity_poll '1'
        option time_zone 'CST6CDT,M3.2.0,M11.1.0'

config wifi-device 'radio1'
        option type 'mac80211'
        option path '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0+1'
        option band '5g'
        option cell_density '0'
        option htmode 'HE80'
        option country 'US'
        option channel '104'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'WeeFee'
        option encryption 'psk2'
        option key 'passnerd'
        option ieee80211r '1'
        option ft_over_ds '0'
        option ft_psk_generate_local '1'
        option bss_transition '1'
        option wnm_sleep_mode '1'
        option time_advertisement '2'
        option ieee80211k '1'
        option skip_inactivity_poll '1'
        option time_zone 'CST6CDT,M3.2.0,M11.1.0'

/etc/config/dawn

config local
        option loglevel '0'

config network
        option broadcast_ip '192.168.87.255'
        option broadcast_port '1025'
        option tcp_port '1026'
        option network_option '2'
        option shared_key 'Niiiiiiiiiiiiick'
        option iv 'Niiiiiiiiiiiiick'
        option use_symm_enc '0'
        option collision_domain '-1'
        option bandwidth '-1'

config hostapd
        option hostapd_dir '/var/run/hostapd'

config times
        option con_timeout '60'
        option update_client '1'
        option remove_client '15'
        option remove_probe '30'
        option remove_ap '460'
        option update_hostapd '10'
        option update_tcp_con '10'
        option update_chan_util '5'
        option update_beacon_reports '20'

config metric 'global'
        option min_probe_count '0'
        option use_station_count '0'
        option max_station_diff '1'
        option eval_probe_req '0'
        option eval_auth_req '0'
        option eval_assoc_req '0'
        option deny_auth_reason '1'
        option deny_assoc_reason '17'
        option min_number_to_kick '2'
        option chan_util_avg_period '3'
        option set_hostapd_nr '1'
        option kicking '1'
        option kicking_threshold '15'
        option rrm_mode 'apt'
        option duration '200'
        option bandwidth_threshold '0'

config metric '802_11g'
        option initial_score '50'
        option no_ht_support '0'
        option no_vht_support '0'
        option rssi '0'
        option rssi_val '-60'
        option low_rssi_val '-80'
        option low_rssi '0'
        option chan_util '0'
        option chan_util_val '140'
        option max_chan_util '0'
        option max_chan_util_val '170'
        option rssi_weight '1'
        option rssi_center '-50'
        option ht_support '0'
        option vht_support '0'

config metric '802_11a'
        option initial_score '100'
        option vht_support '0'
        option no_ht_support '0'
        option no_vht_support '0'
        option rssi '0'
        option rssi_val '-60'
        option low_rssi_val '-80'
        option low_rssi '0'
        option chan_util '0'
        option chan_util_val '140'
        option max_chan_util '0'
        option max_chan_util_val '170'
        option rssi_weight '2'
        option rssi_center '-50'
        option ht_support '0'

Hi, I am on 23.05.3 and experience the same. I am a new user to DAWN, so cannot compare with previous versions. There is only one WiFi Router in my network with two bands. There are no better AP alternatives in the hearing map for the STA, so DAWN doesn't kick that STA out of the current AP.

There is one situation, when a STA shows more lines in the hearing map for me - when I run the WiFiAnalyzer in Scan mode on an Android phone. More lines appear. Then DAWN kicks this STA out of 2.4GHz AP and the STA associates with 5GHz AP.

I am no expert, but think support for IEEE 802.11k & 802.11v requires active participation from STA. Without proper responses from STA, DAWN has no way to make a decision. Whether the current situation is a bug in DAWN or bug in my STAs (or a bug in another sw/hw component) I cannot say. Please note that the last commit to the source code was more than a year ago for DAWN as has been the last commit to USTEER. Seems to me the development in this area is stalled at the moment (no insult to the devs intended).

The devices without proper 802.11kv support are called "legacy" in CONFIGURE.md. It is possible a device works in legacy mode when battery-powered and the signal is good - to use less power. It can switch to 802.11kv mode, when the signal gets worse to assist with roaming. That is my theory. I have no solution for you though.

It works more or less like this (same with usteer btw): If a client thinks its connected ok it will not scan for another band or AP, hence when dawn asks for the hearing map it will only reply the only AP and band it knows. If the signal drops below a preset level it will start scanning for a better location to connect. If available it will scan the band/AP list provided by the current AP. If there is no information it will start scanning more extensively (as it has no clue where to look). The other reason the client may start scanning if the AP does a roam scan request. A well behaved client will grand the request, then the AP can decide that the client is better connected to the other location, then requests the client to roam. If the client declines the roam scan or the roam then the AP may kick the client off, which forces a roam.

IMHO kicking is bad as the client loses connection, so i have not enabled this in usteer. You are better off having the client decide itself it is better off elsewhere. Typically client like the strongest signal (as consumers just think that more bars of signal strength is better). What I did was is just increase the transmnit power of the 5 GHz to the max and 2.4 GHz really down such that everything (more or less) which can connect to 5 GHz does. The other thing you can do is change the signal strength where the roam scan trigger is send.

Hope this helps.

I ended up just uninstalling DAWN and using the now native WLAN Roaming features in 23.05. I think kicking caused more problems than it solved.

What do you mean with

?