Lines Matching refs:link

568 	struct ieee80211_link_data *link;  in ieee80211_select_link_key()  local
573 link = &tx->sdata->deflink; in ieee80211_select_link_key()
575 link = rcu_dereference(tx->sdata->link[link_id]); in ieee80211_select_link_key()
576 if (!link) in ieee80211_select_link_key()
581 return rcu_dereference(link->default_multicast_key); in ieee80211_select_link_key()
585 return rcu_dereference(link->default_mgmt_key); in ieee80211_select_link_key()
587 return rcu_dereference(link->default_multicast_key); in ieee80211_select_link_key()
2662 struct ieee80211_link_data *link; in ieee80211_build_hdr() local
2665 link = rcu_dereference(sdata->link[link_id]); in ieee80211_build_hdr()
2666 if (WARN_ON(!link)) { in ieee80211_build_hdr()
2670 memcpy(hdr.addr2, link->conf->addr, ETH_ALEN); in ieee80211_build_hdr()
2771 struct ieee80211_link_data *link; in ieee80211_build_hdr() local
2776 link = rcu_dereference(sdata->link[tdls_link_id]); in ieee80211_build_hdr()
2777 if (WARN_ON_ONCE(!link)) { in ieee80211_build_hdr()
2781 memcpy(hdr.addr3, link->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
3096 struct ieee80211_link_data *link; in ieee80211_check_fast_xmit() local
3102 link = rcu_dereference(sdata->link[tdls_link_id]); in ieee80211_check_fast_xmit()
3103 if (!WARN_ON_ONCE(!link)) in ieee80211_check_fast_xmit()
3104 memcpy(hdr->addr3, link->u.mgd.bssid, ETH_ALEN); in ieee80211_check_fast_xmit()
3150 struct ieee80211_link_data *link; in ieee80211_check_fast_xmit() local
3153 link = rcu_dereference(sdata->link[link_id]); in ieee80211_check_fast_xmit()
3154 if (WARN_ON(!link)) { in ieee80211_check_fast_xmit()
3158 memcpy(hdr->addr2, link->conf->addr, ETH_ALEN); in ieee80211_check_fast_xmit()
4470 unsigned int link; in ieee80211_mlo_multicast_tx() local
4482 for_each_set_bit(link, &links, IEEE80211_MLD_MAX_NUM_LINKS) { in ieee80211_mlo_multicast_tx()
4483 ieee80211_mlo_multicast_tx_one(sdata, skb, ctrl_flags, link); in ieee80211_mlo_multicast_tx()
4886 struct ieee80211_link_data *link, in __ieee80211_beacon_add_tim() argument
4893 struct ieee80211_bss_conf *link_conf = link->conf; in __ieee80211_beacon_add_tim()
4948 if (ieee80211_get_link_sband(link)->band != NL80211_BAND_S1GHZ) { in __ieee80211_beacon_add_tim()
4957 struct ieee80211_link_data *link, in ieee80211_beacon_add_tim() argument
4971 __ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template); in ieee80211_beacon_add_tim()
4974 __ieee80211_beacon_add_tim(sdata, link, ps, skb, is_template); in ieee80211_beacon_add_tim()
4983 struct ieee80211_link_data *link) in ieee80211_set_beacon_cntdwn() argument
5008 resp = rcu_dereference(link->u.ap.probe_resp); in ieee80211_set_beacon_cntdwn()
5012 if (link->conf->csa_active) in ieee80211_set_beacon_cntdwn()
5030 static u8 __ieee80211_beacon_update_cntdwn(struct ieee80211_link_data *link, in __ieee80211_beacon_update_cntdwn() argument
5043 link_err_once(link, in __ieee80211_beacon_update_cntdwn()
5056 struct ieee80211_link_data *link; in ieee80211_beacon_update_cntdwn() local
5065 link = rcu_dereference(sdata->link[link_id]); in ieee80211_beacon_update_cntdwn()
5066 if (!link) in ieee80211_beacon_update_cntdwn()
5070 beacon = rcu_dereference(link->u.ap.beacon); in ieee80211_beacon_update_cntdwn()
5079 count = __ieee80211_beacon_update_cntdwn(link, beacon); in ieee80211_beacon_update_cntdwn()
5116 struct ieee80211_link_data *link; in ieee80211_beacon_cntdwn_is_complete() local
5130 link = rcu_dereference(sdata->link[link_id]); in ieee80211_beacon_cntdwn_is_complete()
5131 if (!link) in ieee80211_beacon_cntdwn_is_complete()
5135 beacon = rcu_dereference(link->u.ap.beacon); in ieee80211_beacon_cntdwn_is_complete()
5182 struct ieee80211_link_data *link) in ieee80211_beacon_protect() argument
5189 tx.key = rcu_dereference(link->default_beacon_key); in ieee80211_beacon_protect()
5219 struct ieee80211_link_data *link, in ieee80211_beacon_get_finish() argument
5255 txrc.bss_conf = link->conf; in ieee80211_beacon_get_finish()
5266 info->control.flags |= u32_encode_bits(link->link_id, in ieee80211_beacon_get_finish()
5305 struct ieee80211_link_data *link, in __ieee80211_beacon_get_ap() argument
5321 ieee80211_beacon_update_cntdwn(vif, link->link_id); in __ieee80211_beacon_get_ap()
5323 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get_ap()
5342 ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template); in __ieee80211_beacon_get_ap()
5361 if (ieee80211_beacon_protect(skb, local, sdata, link) < 0) { in __ieee80211_beacon_get_ap()
5366 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get_ap()
5372 struct ieee80211_link_data *link) in ieee80211_s1g_need_long_beacon() argument
5377 ps->sb_count = link->conf->s1g_long_beacon_period - 1; in ieee80211_s1g_need_long_beacon()
5387 struct ieee80211_link_data *link, in ieee80211_s1g_short_beacon_get() argument
5406 ieee80211_beacon_add_tim(sdata, link, &ap->ps, skb, is_template); in ieee80211_s1g_short_beacon_get()
5411 ieee80211_beacon_get_finish(hw, vif, link, NULL, NULL, skb, in ieee80211_s1g_short_beacon_get()
5418 struct ieee80211_link_data *link, in ieee80211_beacon_get_ap() argument
5427 ieee80211_s1g_need_long_beacon(sdata, link)) in ieee80211_beacon_get_ap()
5428 return __ieee80211_beacon_get_ap(hw, vif, link, offs, in ieee80211_beacon_get_ap()
5432 return ieee80211_s1g_short_beacon_get(hw, vif, link, chanctx_conf, in ieee80211_beacon_get_ap()
5439 struct ieee80211_link_data *link, in ieee80211_beacon_get_ap_ema_list() argument
5456 ieee80211_beacon_get_ap(hw, vif, link, in ieee80211_beacon_get_ap_ema_list()
5487 struct ieee80211_link_data *link; in __ieee80211_beacon_get() local
5493 link = rcu_dereference(sdata->link[link_id]); in __ieee80211_beacon_get()
5494 if (!link) in __ieee80211_beacon_get()
5497 rcu_dereference(link->conf->chanctx_conf); in __ieee80211_beacon_get()
5506 beacon = rcu_dereference(link->u.ap.beacon); in __ieee80211_beacon_get()
5510 if (vif->cfg.s1g && link->u.ap.s1g_short_beacon) { in __ieee80211_beacon_get()
5512 rcu_dereference(link->u.ap.s1g_short_beacon); in __ieee80211_beacon_get()
5519 ieee80211_beacon_get_ap_ema_list(hw, vif, link, in __ieee80211_beacon_get()
5535 skb = ieee80211_beacon_get_ap(hw, vif, link, offs, in __ieee80211_beacon_get()
5550 __ieee80211_beacon_update_cntdwn(link, beacon); in __ieee80211_beacon_get()
5552 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get()
5566 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get()
5582 __ieee80211_beacon_update_cntdwn(link, beacon); in __ieee80211_beacon_get()
5584 ieee80211_set_beacon_cntdwn(sdata, beacon, link); in __ieee80211_beacon_get()
5599 ieee80211_beacon_add_tim(sdata, link, &ifmsh->ps, skb, in __ieee80211_beacon_get()
5608 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb, in __ieee80211_beacon_get()
5836 struct ieee80211_link_data *link = NULL; in ieee80211_nullfunc_get() local
5858 link = rcu_dereference(sdata->link[link_id]); in ieee80211_nullfunc_get()
5859 if (WARN_ON_ONCE(!link)) { in ieee80211_nullfunc_get()
5885 if (link) { in ieee80211_nullfunc_get()
5886 memcpy(nullfunc->addr1, link->conf->bssid, ETH_ALEN); in ieee80211_nullfunc_get()
5887 memcpy(nullfunc->addr2, link->conf->addr, ETH_ALEN); in ieee80211_nullfunc_get()
5888 memcpy(nullfunc->addr3, link->conf->bssid, ETH_ALEN); in ieee80211_nullfunc_get()
6140 unsigned int link; in __ieee80211_tx_skb_tid_band() local
6153 link = 0; in __ieee80211_tx_skb_tid_band()
6155 link = link_id; in __ieee80211_tx_skb_tid_band()
6158 link = IEEE80211_LINK_UNSPECIFIED; in __ieee80211_tx_skb_tid_band()
6162 for (link = 0; link < ARRAY_SIZE(sdata->vif.link_conf); link++) { in __ieee80211_tx_skb_tid_band()
6165 link_conf = rcu_dereference(sdata->vif.link_conf[link]); in __ieee80211_tx_skb_tid_band()
6173 if (WARN_ON_ONCE(link == ARRAY_SIZE(sdata->vif.link_conf))) in __ieee80211_tx_skb_tid_band()
6174 link = ffs(sdata->vif.active_links) - 1; in __ieee80211_tx_skb_tid_band()
6178 u32_encode_bits(link, IEEE80211_TX_CTRL_MLO_LINK); in __ieee80211_tx_skb_tid_band()