mld_set_config() treated any call with empty prev_mld as a fresh
configuration and triggered a full Reload all interfaces, even when the
new config was also empty (the typical path on non-MLD devices).
Reloading every BSS on each netifd reconf disrupted associated stations
including PMF-protected backhaul STAs, which would self-deauth after the
SA Query timeout.
Only treat the call as a new configuration when the new config is
actually non-empty.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
let prev_mld = { ...hostapd.data.mld };
let new_mld = {};
let phy_list = {};
- let new_config = !length(prev_mld);
+ let new_config = !length(prev_mld) && length(new_mld);
hostapd.printf(`Set MLD config: ${keys(config)}`);