/* The BSS color is shared amongst all BBSs on a specific phy.
* Therefore we always start the color change on the primary
* BSS. */
+ hapd = switch_link_hapd(hapd,
+ data->bss_color_collision.link_id);
wpa_printf(MSG_DEBUG, "BSS color collision on %s",
hapd->conf->iface);
hostapd_switch_color(hapd->iface->bss[0],
data->bss_color_collision.bitmap);
break;
case EVENT_CCA_STARTED_NOTIFY:
+ hapd = switch_link_hapd(hapd,
+ data->bss_color_collision.link_id);
wpa_printf(MSG_DEBUG, "CCA started on %s",
hapd->conf->iface);
break;
case EVENT_CCA_ABORTED_NOTIFY:
+ hapd = switch_link_hapd(hapd,
+ data->bss_color_collision.link_id);
wpa_printf(MSG_DEBUG, "CCA aborted on %s",
hapd->conf->iface);
hostapd_event_color_change(hapd, false);
break;
case EVENT_CCA_NOTIFY:
+ hapd = switch_link_hapd(hapd,
+ data->bss_color_collision.link_id);
wpa_printf(MSG_DEBUG, "CCA finished on %s",
hapd->conf->iface);
hostapd_event_color_change(hapd, true);
enum wpa_event_type event_type;
os_memset(&data, 0, sizeof(data));
+ data.bss_color_collision.link_id = NL80211_DRV_LINK_ID_NA;
switch (cmd) {
case NL80211_CMD_OBSS_COLOR_COLLISION:
return;
}
+ if (tb[NL80211_ATTR_MLO_LINK_ID]) {
+ data.bss_color_collision.link_id =
+ nla_get_u8(tb[NL80211_ATTR_MLO_LINK_ID]);
+
+ if (!nl80211_link_valid(bss->valid_links,
+ data.bss_color_collision.link_id)) {
+ wpa_printf(MSG_DEBUG,
+ "nl80211: Invalid BSS color event link ID %d",
+ data.bss_color_collision.link_id);
+ return;
+ }
+
+ wpa_printf(MSG_DEBUG, "nl80211: BSS color event - Link ID %d",
+ data.bss_color_collision.link_id);
+ }
+
wpa_supplicant_event(bss->ctx, event_type, &data);
}