From: Benjamin Berg Date: Mon, 20 Nov 2023 23:51:34 +0000 (+0200) Subject: AP: MLO: Add helper to iterate all links of an AP MLD X-Git-Tag: hostap_2_11~760 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecb22ba12eb39bf5169851fff37c88b8d2a39726;p=thirdparty%2Fhostap.git AP: MLO: Add helper to iterate all links of an AP MLD Add 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 --- diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h index 8987b3337..3dba121c6 100644 --- a/src/ap/hostapd.h +++ b/src/ap/hostapd.h @@ -777,4 +777,23 @@ 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 /* CONFIG_IEEE80211BE */ +#define for_each_mld_link(_link, _bss_idx, _iface_idx, _ifaces, _mld_id) \ + if (false) +#endif /* CONFIG_IEEE80211BE */ + #endif /* HOSTAPD_H */