On 3/27/2023 4:31 PM, Johannes Berg wrote:
Hi,
+ list_for_each_entry(sta, &local->sta_list, list) {
+ if (sdata != sta->sdata)
+ continue;
+ ret = drv_change_sta_links(local, sdata, &sta->sta,
+ old_active,
+ old_active | active_links);
+ WARN_ON_ONCE(ret);
+ }
+
+ ret = ieee80211_key_switch_links(sdata, rem, add);
I see ieee80211_key_switch_link() only handler the per-link(link_id >=
0) keys,
So I think lower driver also install the pairwise keys(link_id = -1) for
the added links at this moment?
Well from mac80211 POV they're already installed, so we can't really
install them again. We'd have to remove them but that's racy, obviously.
So I think the low-level driver just has to handle that, e.g. when the
station links are updated (and the key belongs to the station.)
Thanks Johannes,
Also it does not have BSS_CHANGED_ASSOC(exists in
ieee80211_set_associated()) for
ieee80211_link_info_change_notify()/ieee80211_vif_cfg_change_notify().
So I think low-level driver also need to auto add BSS_CHANGED_ASSOC
logic for the added link as well as the pairwise key you said, right?