From: Benjamin Berg <benjamin.berg@xxxxxxxxx> This adds a simple for_each_mld_link helper that sets first variable to the hapd data for every link. It takes the interfaces and MLD ID as arguments and two extra integers as scratch variables (for the interface and bss offsets). Signed-off-by: Benjamin Berg <benjamin.berg@xxxxxxxxx> --- src/ap/hostapd.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h index 6f0c0fc66d..cbfd352eee 100644 --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -776,4 +776,24 @@ int hostapd_mbssid_get_bss_index(struct hostapd_data *hapd); struct hostapd_data * hostapd_mld_get_link_bss(struct hostapd_data *hapd, u8 link_id); int hostapd_link_remove(struct hostapd_data *hapd, u32 count); + +#ifdef CONFIG_IEEE80211BE +#define for_each_mld_link(_link, _bss_idx, _iface_idx, _ifaces, _mld_id) \ + for (_iface_idx = 0; \ + _iface_idx < (_ifaces)->count; \ + _iface_idx++) \ + for (_bss_idx = 0; \ + _bss_idx < \ + (_ifaces)->iface[_iface_idx]->num_bss; \ + _bss_idx++) \ + for (_link = \ + (_ifaces)->iface[_iface_idx]->bss[_bss_idx]; \ + _link && _link->conf->mld_ap && \ + _link->conf->mld_id == _mld_id; \ + _link = NULL) +#else +#define for_each_mld_link(_link, _bss_idx, _iface_idx, _ifaces, _mld_id) \ + if (false) +#endif /* CONFIG_IEEE80211BE */ + #endif /* HOSTAPD_H */ -- 2.38.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap