Transmitting interface of an MBSSID group can be part of an MLD, hence
interface index is not enough to identify the correct link. Store and
pass the link ID of the transmitted interface to the kernel when
configuring a new non-transmitting profile for an AP MLD.
Signed-off-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Signed-off-by: Muna Sinada <muna.sinada@oss.qualcomm.com>
Signed-off-by: Aloka Dixit <aloka.dixit@oss.qualcomm.com>
if (iface->conf->mbssid == ENHANCED_MBSSID_ENABLED)
params->ema = true;
+ params->mbssid_tx_iface_linkid = -1;
+#ifdef CONFIG_IEEE80211BE
+ if (tx_bss->conf->mld_ap)
+ params->mbssid_tx_iface_linkid = tx_bss->mld_link_id;
+#endif /* CONFIG_IEEE80211BE */
+
return 0;
fail:
*/
const char *mbssid_tx_iface;
+ /**
+ * mbssid_tx_iface_linkid - Link ID of the transmitting interface if
+ * it is part of an MLD. Otherwise, -1.
+ */
+ int mbssid_tx_iface_linkid;
+
/**
* mbssid_index - The index of this BSS in the MBSSID set
*/
nla_put_u32(msg, NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
ifidx))
return -1;
+ if (params->mbssid_tx_iface_linkid >= 0 &&
+ nla_put_u8(msg, NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID,
+ params->mbssid_tx_iface_linkid))
+ return -1;
}
if (params->ema && nla_put_flag(msg, NL80211_MBSSID_CONFIG_ATTR_EMA))