Lines Matching defs:link

304 		 * off-channel. See the link below and
585 struct ieee80211_link_data *link;
590 link = &tx->sdata->deflink;
592 link = rcu_dereference(tx->sdata->link[link_id]);
593 if (!link)
598 return rcu_dereference(link->default_multicast_key);
602 return rcu_dereference(link->default_mgmt_key);
604 return rcu_dereference(link->default_multicast_key);
2496 * TDLS link during setup - throw out frames to
2498 * peers for the special case of a link teardown
2651 struct ieee80211_link_data *link;
2654 link = rcu_dereference(sdata->link[link_id]);
2655 if (WARN_ON(!link)) {
2659 memcpy(hdr.addr2, link->conf->addr, ETH_ALEN);
2758 /* For TDLS only one link can be valid with peer STA */
2761 struct ieee80211_link_data *link;
2766 link = rcu_dereference(sdata->link[tdls_link_id]);
2767 if (WARN_ON_ONCE(!link)) {
2771 memcpy(hdr.addr3, link->u.mgd.bssid, ETH_ALEN);
2966 net_info_ratelimited("%s: dropped frame to %pM with bad link ID request (%d vs. %d)\n",
3081 /* For TDLS only one link can be valid with peer STA */
3084 struct ieee80211_link_data *link;
3090 link = rcu_dereference(sdata->link[tdls_link_id]);
3091 if (!WARN_ON_ONCE(!link))
3092 memcpy(hdr->addr3, link->u.mgd.bssid, ETH_ALEN);
3138 struct ieee80211_link_data *link;
3141 link = rcu_dereference(sdata->link[link_id]);
3142 if (WARN_ON(!link)) {
3146 memcpy(hdr->addr2, link->conf->addr, ETH_ALEN);
4455 unsigned int link;
4467 for_each_set_bit(link, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
4468 ieee80211_mlo_multicast_tx_one(sdata, skb, ctrl_flags, link);
4865 struct ieee80211_link_data *link,
4872 struct ieee80211_bss_conf *link_conf = link->conf;
4927 if (ieee80211_get_link_sband(link)->band != NL80211_BAND_S1GHZ) {
4936 struct ieee80211_link_data *link,
4950 __ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
4953 __ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template);
4962 struct ieee80211_link_data *link)
4987 resp = rcu_dereference(link->u.ap.probe_resp);
4991 if (link->conf->csa_active)
5130 struct ieee80211_link_data *link)
5137 tx.key = rcu_dereference(link->default_beacon_key);
5167 struct ieee80211_link_data *link,
5203 txrc.bss_conf = link->conf;
5214 info->control.flags |= u32_encode_bits(link->link_id,
5253 struct ieee80211_link_data *link,
5271 ieee80211_set_beacon_cntdwn(sdata, beacon, link);
5290 ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template);
5309 if (ieee80211_beacon_protect(skb, local, sdata, link) < 0)
5312 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5320 struct ieee80211_link_data *link,
5337 ieee80211_beacon_get_ap(hw, vif, link,
5368 struct ieee80211_link_data *link;
5373 link = rcu_dereference(sdata->link[link_id]);
5374 if (!link)
5377 rcu_dereference(link->conf->chanctx_conf);
5386 beacon = rcu_dereference(link->u.ap.beacon);
5392 ieee80211_beacon_get_ap_ema_list(hw, vif, link,
5408 skb = ieee80211_beacon_get_ap(hw, vif, link, offs,
5425 ieee80211_set_beacon_cntdwn(sdata, beacon, link);
5439 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5457 ieee80211_set_beacon_cntdwn(sdata, beacon, link);
5472 ieee80211_beacon_add_tim(sdata, link, &ifmsh->ps, skb,
5481 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5711 struct ieee80211_link_data *link = NULL;
5733 link = rcu_dereference(sdata->link[link_id]);
5734 if (WARN_ON_ONCE(!link)) {
5760 if (link) {
5761 memcpy(nullfunc->addr1, link->conf->bssid, ETH_ALEN);
5762 memcpy(nullfunc->addr2, link->conf->addr, ETH_ALEN);
5763 memcpy(nullfunc->addr3, link->conf->bssid, ETH_ALEN);
6015 unsigned int link;
6028 link = 0;
6030 link = link_id;
6033 link = IEEE80211_LINK_UNSPECIFIED;
6035 /* otherwise must be addressed from a link */
6037 for (link = 0; link < ARRAY_SIZE(sdata->vif.link_conf); link++) {
6040 link_conf = rcu_dereference(sdata->vif.link_conf[link]);
6048 if (WARN_ON_ONCE(link == ARRAY_SIZE(sdata->vif.link_conf)))
6049 link = ffs(sdata->vif.active_links) - 1;
6053 u32_encode_bits(link, IEEE80211_TX_CTRL_MLO_LINK);
6190 * the link ID has been selected already