hostapd: MLO: Avoid use of mld_id as user configuration
mld_id was provided as a user configuration to identify partner BSS belonging to the same AP MLD. The same id is used at the protocol level also to indicate the AP MLD ID of the MLD. But, in general mld_id is a relative reference of the MLD where 0 is used as the mld_id to represent the self MLD and in case of MLO MBSSID mld_id of a non transmitted BSS affiliated to an AP MLD is based on the relative BSS index of the non transmitted BSS from the transmitted BSS. Hence mld_id need not be fetched from users, rather it can be identified wherever required. To verify if the partners belong to the same AP MLD the interface name can be checked, since all link BSS partners of the same AP MLD belong to the same interface. Hence, remove use of mld_id user config and instead introduce two functions hostapd_is_ml_partner() and hostapd_get_mld_id(). The former is used to verify whether partners belong to the same AP MLD and the latter is used to get the MLD ID of the BSS. Signed-off-by: Sriram R <quic_srirrama@quicinc.com> Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
This commit is contained in:
parent
272c253dc9
commit
259b43a31a
14 changed files with 61 additions and 56 deletions
|
@ -781,6 +781,9 @@ 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);
|
||||
bool hostapd_is_ml_partner(struct hostapd_data *hapd1,
|
||||
struct hostapd_data *hapd2);
|
||||
u8 hostapd_get_mld_id(struct hostapd_data *hapd);
|
||||
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
#define for_each_mld_link(_link, _bss_idx, _iface_idx, _ifaces, _mld_id) \
|
||||
|
@ -794,7 +797,7 @@ int hostapd_link_remove(struct hostapd_data *hapd, u32 count);
|
|||
for (_link = \
|
||||
(_ifaces)->iface[_iface_idx]->bss[_bss_idx]; \
|
||||
_link && _link->conf->mld_ap && \
|
||||
_link->conf->mld_id == _mld_id; \
|
||||
hostapd_get_mld_id(_link) == _mld_id; \
|
||||
_link = NULL)
|
||||
#else /* CONFIG_IEEE80211BE */
|
||||
#define for_each_mld_link(_link, _bss_idx, _iface_idx, _ifaces, _mld_id) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue