Lines Matching full:links

44 	for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {  in cfg80211_rx_assoc_resp()
45 cr.links[link_id].status = data->links[link_id].status; in cfg80211_rx_assoc_resp()
46 cr.links[link_id].bss = data->links[link_id].bss; in cfg80211_rx_assoc_resp()
48 WARN_ON_ONCE(cr.links[link_id].status != WLAN_STATUS_SUCCESS && in cfg80211_rx_assoc_resp()
49 (!cr.ap_mld_addr || !cr.links[link_id].bss)); in cfg80211_rx_assoc_resp()
51 if (!cr.links[link_id].bss) in cfg80211_rx_assoc_resp()
53 cr.links[link_id].bssid = data->links[link_id].bss->bssid; in cfg80211_rx_assoc_resp()
54 cr.links[link_id].addr = data->links[link_id].addr; in cfg80211_rx_assoc_resp()
57 !is_valid_ether_addr(cr.links[link_id].addr)); in cfg80211_rx_assoc_resp()
59 BUG_ON(!cr.links[link_id].bss->channel); in cfg80211_rx_assoc_resp()
61 if (cr.links[link_id].bss->channel->band == NL80211_BAND_S1GHZ) { in cfg80211_rx_assoc_resp()
82 for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) { in cfg80211_rx_assoc_resp()
83 struct cfg80211_bss *bss = data->links[link_id].bss; in cfg80211_rx_assoc_resp()
359 * The Recommended Max Simultaneous Links subfield in particular is in cfg80211_mlme_check_mlo_compat()
361 * also change when the AP adds/removes links. The BTM MLD in cfg80211_mlme_check_mlo_compat()
386 const struct ieee80211_multi_link_elem *mles[ARRAY_SIZE(req->links)] = {}; in cfg80211_mlme_check_mlo()
392 if (!req->links[req->link_id].bss) { in cfg80211_mlme_check_mlo()
398 for (i = 0; i < ARRAY_SIZE(req->links); i++) { in cfg80211_mlme_check_mlo()
402 if (!req->links[i].bss) in cfg80211_mlme_check_mlo()
405 if (ether_addr_equal(req->links[i].bss->bssid, dev->dev_addr)) { in cfg80211_mlme_check_mlo()
407 req->links[i].error = -EINVAL; in cfg80211_mlme_check_mlo()
411 ies = rcu_dereference(req->links[i].bss->ies); in cfg80211_mlme_check_mlo()
416 req->links[i].error = -EINVAL; in cfg80211_mlme_check_mlo()
424 req->links[i].error = -EINVAL; in cfg80211_mlme_check_mlo()
432 req->links[i].error = -EINVAL; in cfg80211_mlme_check_mlo()
440 for (i = 0; i < ARRAY_SIZE(req->links); i++) { in cfg80211_mlme_check_mlo()
441 if (i == req->link_id || !req->links[i].bss) in cfg80211_mlme_check_mlo()
449 req->links[i].error = -EINVAL; in cfg80211_mlme_check_mlo()
500 for (link_id = 0; link_id < ARRAY_SIZE(req->links); link_id++) { in cfg80211_mlme_assoc()
501 if (!req->links[link_id].bss) in cfg80211_mlme_assoc()
503 cfg80211_ref_bss(&rdev->wiphy, req->links[link_id].bss); in cfg80211_mlme_assoc()
504 cfg80211_hold_bss(bss_from_pub(req->links[link_id].bss)); in cfg80211_mlme_assoc()
810 if (ether_addr_equal(addr, wdev->links[i].addr)) in cfg80211_allowed_address()
923 wdev->links[params->link_id].addr))) in cfg80211_mlme_mgmt_tx()
1146 if (WARN_ON(!wdev->links[link_id].cac_started && in cfg80211_cac_event()
1152 timeout = wdev->links[link_id].cac_start_time + in cfg80211_cac_event()
1153 msecs_to_jiffies(wdev->links[link_id].cac_time_ms); in cfg80211_cac_event()
1162 wdev->links[link_id].cac_started = false; in cfg80211_cac_event()
1165 wdev->links[link_id].cac_started = true; in cfg80211_cac_event()
1363 for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) { in cfg80211_mlo_reconf_add_done()
1364 struct cfg80211_bss *bss = data->links[link_id].bss; in cfg80211_mlo_reconf_add_done()
1373 for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) { in cfg80211_mlo_reconf_add_done()
1374 struct cfg80211_bss *bss = data->links[link_id].bss; in cfg80211_mlo_reconf_add_done()
1380 wdev->links[link_id].client.current_bss = in cfg80211_mlo_reconf_add_done()
1386 memcpy(wdev->links[link_id].addr, in cfg80211_mlo_reconf_add_done()
1387 data->links[link_id].addr, in cfg80211_mlo_reconf_add_done()