Lines Matching refs:sdata

64 	chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf);  in ieee80211_duration()
149 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i)) in ieee80211_duration()
155 if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) in ieee80211_duration()
189 tx->sdata->vif.bss_conf.use_short_preamble, in ieee80211_duration()
199 tx->sdata->vif.bss_conf.use_short_preamble, in ieee80211_duration()
237 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION) in ieee80211_tx_h_dynamic_ps()
240 ifmgd = &tx->sdata->u.mgd; in ieee80211_tx_h_dynamic_ps()
292 test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && in ieee80211_tx_h_check_assoc()
308 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB) in ieee80211_tx_h_check_assoc()
311 if (tx->sdata->vif.type == NL80211_IFTYPE_WDS) in ieee80211_tx_h_check_assoc()
324 sdata_info(tx->sdata, in ieee80211_tx_h_check_assoc()
331 } else if (unlikely(tx->sdata->vif.type == NL80211_IFTYPE_AP && in ieee80211_tx_h_check_assoc()
333 !atomic_read(&tx->sdata->u.ap.num_mcast_sta))) { in ieee80211_tx_h_check_assoc()
352 struct ieee80211_sub_if_data *sdata; in purge_old_ps_buffers() local
355 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in purge_old_ps_buffers()
358 if (sdata->vif.type == NL80211_IFTYPE_AP) in purge_old_ps_buffers()
359 ps = &sdata->u.ap.ps; in purge_old_ps_buffers()
360 else if (ieee80211_vif_is_mesh(&sdata->vif)) in purge_old_ps_buffers()
361 ps = &sdata->u.mesh.ps; in purge_old_ps_buffers()
411 if (tx->sdata->vif.type == NL80211_IFTYPE_AP || in ieee80211_tx_h_multicast_ps_buf()
412 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { in ieee80211_tx_h_multicast_ps_buf()
413 if (!tx->sdata->bss) in ieee80211_tx_h_multicast_ps_buf()
416 ps = &tx->sdata->bss->ps; in ieee80211_tx_h_multicast_ps_buf()
417 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) { in ieee80211_tx_h_multicast_ps_buf()
418 ps = &tx->sdata->u.mesh.ps; in ieee80211_tx_h_multicast_ps_buf()
432 info->hw_queue = tx->sdata->vif.cab_queue; in ieee80211_tx_h_multicast_ps_buf()
449 ps_dbg(tx->sdata, in ieee80211_tx_h_multicast_ps_buf()
498 ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n", in ieee80211_tx_h_unicast_ps_buf()
519 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
527 info->control.vif = &tx->sdata->vif; in ieee80211_tx_h_unicast_ps_buf()
546 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
571 if (unlikely(tx->sdata->control_port_protocol == tx->skb->protocol)) { in ieee80211_tx_h_check_control_port_protocol()
572 if (tx->sdata->control_port_no_encrypt) in ieee80211_tx_h_check_control_port_protocol()
596 (key = rcu_dereference(tx->sdata->default_mgmt_key))) in ieee80211_tx_h_select_key()
599 (key = rcu_dereference(tx->sdata->default_multicast_key))) in ieee80211_tx_h_select_key()
602 (key = rcu_dereference(tx->sdata->default_unicast_key))) in ieee80211_tx_h_select_key()
674 txrc.bss_conf = &tx->sdata->vif.bss_conf; in ieee80211_tx_h_rate_ctrl()
677 txrc.rate_idx_mask = tx->sdata->rc_rateidx_mask[info->band]; in ieee80211_tx_h_rate_ctrl()
683 if (tx->sdata->rc_has_mcs_mask[info->band]) in ieee80211_tx_h_rate_ctrl()
685 tx->sdata->rc_rateidx_mcs_mask[info->band]; in ieee80211_tx_h_rate_ctrl()
687 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP || in ieee80211_tx_h_rate_ctrl()
688 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT || in ieee80211_tx_h_rate_ctrl()
689 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC || in ieee80211_tx_h_rate_ctrl()
690 tx->sdata->vif.type == NL80211_IFTYPE_OCB); in ieee80211_tx_h_rate_ctrl()
698 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot; in ieee80211_tx_h_rate_ctrl()
706 if (tx->sdata->vif.bss_conf.use_short_preamble && in ieee80211_tx_h_rate_ctrl()
725 tx->sdata->name, hdr->addr1, in ieee80211_tx_h_rate_ctrl()
733 rate_control_get_rate(tx->sdata, tx->sta, &txrc); in ieee80211_tx_h_rate_ctrl()
824 hdr->seq_ctrl = cpu_to_le16(tx->sdata->sequence_number); in ieee80211_tx_h_sequence()
825 tx->sdata->sequence_number += 0x10; in ieee80211_tx_h_sequence()
875 tx->sdata->encrypt_headroom + in ieee80211_fragment()
883 local->tx_headroom + tx->sdata->encrypt_headroom); in ieee80211_fragment()
1115 info->control.vif = &tx->sdata->vif; in ieee80211_tx_prep_agg()
1143 ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata, in ieee80211_tx_prepare() argument
1147 struct ieee80211_local *local = sdata->local; in ieee80211_tx_prepare()
1156 tx->sdata = sdata; in ieee80211_tx_prepare()
1172 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { in ieee80211_tx_prepare()
1173 tx->sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_tx_prepare()
1174 if (!tx->sta && sdata->wdev.use_4addr) in ieee80211_tx_prepare()
1178 tx->sdata->control_port_protocol == tx->skb->protocol) { in ieee80211_tx_prepare()
1179 tx->sta = sta_info_get_bss(sdata, hdr->addr1); in ieee80211_tx_prepare()
1182 tx->sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_prepare()
1237 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_drv_tx() local
1265 atomic_inc(&sdata->txqs_len[ac]); in ieee80211_drv_tx()
1266 if (atomic_read(&sdata->txqs_len[ac]) >= local->hw.txq_ac_max_pending) in ieee80211_drv_tx()
1267 netif_stop_subqueue(sdata->dev, ac); in ieee80211_drv_tx()
1282 struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->vif); in ieee80211_tx_dequeue() local
1297 atomic_dec(&sdata->txqs_len[ac]); in ieee80211_tx_dequeue()
1298 if (__netif_subqueue_stopped(sdata->dev, ac)) in ieee80211_tx_dequeue()
1299 ieee80211_propagate_queue_wake(local, sdata->vif.hw_queue[ac]); in ieee80211_tx_dequeue()
1400 struct ieee80211_sub_if_data *sdata; in __ieee80211_tx() local
1413 sdata = vif_to_sdata(info->control.vif); in __ieee80211_tx()
1422 switch (sdata->vif.type) { in __ieee80211_tx()
1424 if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) { in __ieee80211_tx()
1425 vif = &sdata->vif; in __ieee80211_tx()
1428 sdata = rcu_dereference(local->monitor_sdata); in __ieee80211_tx()
1429 if (sdata) { in __ieee80211_tx()
1430 vif = &sdata->vif; in __ieee80211_tx()
1440 sdata = container_of(sdata->bss, in __ieee80211_tx()
1444 vif = &sdata->vif; in __ieee80211_tx()
1518 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_tx_prepare_skb() local
1523 if (ieee80211_tx_prepare(sdata, &tx, NULL, skb) == TX_DROP) in ieee80211_tx_prepare_skb()
1555 static bool ieee80211_tx(struct ieee80211_sub_if_data *sdata, in ieee80211_tx() argument
1559 struct ieee80211_local *local = sdata->local; in ieee80211_tx()
1573 res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb); in ieee80211_tx()
1586 sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; in ieee80211_tx()
1597 static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata, in ieee80211_skb_resize() argument
1601 struct ieee80211_local *local = sdata->local; in ieee80211_skb_resize()
1604 if (may_encrypt && sdata->crypto_tx_tailroom_needed_cnt) { in ieee80211_skb_resize()
1613 (may_encrypt && sdata->crypto_tx_tailroom_needed_cnt))) in ieee80211_skb_resize()
1629 void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, in ieee80211_xmit() argument
1632 struct ieee80211_local *local = sdata->local; in ieee80211_xmit()
1642 headroom += sdata->encrypt_headroom; in ieee80211_xmit()
1646 if (ieee80211_skb_resize(sdata, skb, headroom, may_encrypt)) { in ieee80211_xmit()
1652 info->control.vif = &sdata->vif; in ieee80211_xmit()
1654 if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_xmit()
1657 if (mesh_nexthop_resolve(sdata, skb)) in ieee80211_xmit()
1660 ieee80211_mps_set_frame_flags(sdata, NULL, hdr); in ieee80211_xmit()
1664 ieee80211_set_qos_hdr(sdata, skb); in ieee80211_xmit()
1665 ieee80211_tx(sdata, sta, skb, false); in ieee80211_xmit()
1760 struct ieee80211_sub_if_data *tmp_sdata, *sdata; in ieee80211_monitor_start_xmit() local
1835 sdata = IEEE80211_DEV_TO_SUB_IF(dev); in ieee80211_monitor_start_xmit()
1845 sdata = tmp_sdata; in ieee80211_monitor_start_xmit()
1850 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_monitor_start_xmit()
1882 sdata->vif.type)) in ieee80211_monitor_start_xmit()
1886 ieee80211_xmit(sdata, NULL, skb); in ieee80211_monitor_start_xmit()
1907 static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, in ieee80211_lookup_ra_sta() argument
1913 switch (sdata->vif.type) { in ieee80211_lookup_ra_sta()
1915 sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_lookup_ra_sta()
1919 } else if (sdata->wdev.use_4addr) { in ieee80211_lookup_ra_sta()
1930 sta = sta_info_get_bss(sdata, skb->data); in ieee80211_lookup_ra_sta()
1933 sta = sta_info_get(sdata, sdata->u.wds.remote_addr); in ieee80211_lookup_ra_sta()
1942 if (sdata->wdev.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS) { in ieee80211_lookup_ra_sta()
1943 sta = sta_info_get(sdata, skb->data); in ieee80211_lookup_ra_sta()
1971 sta = sta_info_get(sdata, sdata->u.mgd.bssid); in ieee80211_lookup_ra_sta()
2001 static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, in ieee80211_build_hdr() argument
2005 struct ieee80211_local *local = sdata->local; in ieee80211_build_hdr()
2033 switch (sdata->vif.type) { in ieee80211_build_hdr()
2035 if (sdata->wdev.use_4addr) { in ieee80211_build_hdr()
2039 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2046 ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, in ieee80211_build_hdr()
2054 if (sdata->wdev.use_4addr) in ieee80211_build_hdr()
2058 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_build_hdr()
2059 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2067 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2075 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN); in ieee80211_build_hdr()
2076 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2092 mpath = mesh_path_lookup(sdata, skb->data); in ieee80211_build_hdr()
2103 mppath = mpp_path_lookup(sdata, skb->data); in ieee80211_build_hdr()
2106 mesh_path_del(mpath->sdata, mpath->dst); in ieee80211_build_hdr()
2115 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) && in ieee80211_build_hdr()
2119 meshhdrlen = ieee80211_new_mesh_header(sdata, &mesh_hdr, in ieee80211_build_hdr()
2136 mesh_da, sdata->vif.addr); in ieee80211_build_hdr()
2140 sdata, &mesh_hdr, in ieee80211_build_hdr()
2145 sdata, &mesh_hdr, skb->data, in ieee80211_build_hdr()
2149 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2165 memcpy(hdr.addr3, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2167 } else if (sdata->u.mgd.use_4addr && in ieee80211_build_hdr()
2168 cpu_to_be16(ethertype) != sdata->control_port_protocol) { in ieee80211_build_hdr()
2172 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2173 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2180 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2185 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2198 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2209 memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN); in ieee80211_build_hdr()
2211 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2229 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_build_hdr()
2244 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) && in ieee80211_build_hdr()
2245 (sdata->vif.type != NL80211_IFTYPE_OCB) && in ieee80211_build_hdr()
2247 (cpu_to_be16(ethertype) != sdata->control_port_protocol || in ieee80211_build_hdr()
2248 !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) { in ieee80211_build_hdr()
2251 sdata->name, hdr.addr1); in ieee80211_build_hdr()
2340 head_need += sdata->encrypt_headroom; in ieee80211_build_hdr()
2343 if (ieee80211_skb_resize(sdata, skb, head_need, true)) { in ieee80211_build_hdr()
2425 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_check_fast_xmit() local
2448 sdata->vif.type == NL80211_IFTYPE_STATION) in ieee80211_check_fast_xmit()
2460 if (sdata->noack_map) in ieee80211_check_fast_xmit()
2469 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_check_fast_xmit()
2479 switch (sdata->vif.type) { in ieee80211_check_fast_xmit()
2484 memcpy(hdr->addr3, sdata->u.ibss.bssid, ETH_ALEN); in ieee80211_check_fast_xmit()
2492 memcpy(hdr->addr3, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_check_fast_xmit()
2497 if (sdata->u.mgd.use_4addr) { in ieee80211_check_fast_xmit()
2502 memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_check_fast_xmit()
2503 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_check_fast_xmit()
2511 memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_check_fast_xmit()
2517 if (sdata->wdev.use_4addr) { in ieee80211_check_fast_xmit()
2522 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_check_fast_xmit()
2533 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_check_fast_xmit()
2554 build.key = rcu_access_pointer(sdata->default_unicast_key); in ieee80211_check_fast_xmit()
2661 void ieee80211_check_fast_xmit_iface(struct ieee80211_sub_if_data *sdata) in ieee80211_check_fast_xmit_iface() argument
2663 struct ieee80211_local *local = sdata->local; in ieee80211_check_fast_xmit_iface()
2669 if (sdata != sta->sdata && in ieee80211_check_fast_xmit_iface()
2670 (!sta->sdata->bss || sta->sdata->bss != sdata->bss)) in ieee80211_check_fast_xmit_iface()
2692 static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata, in ieee80211_xmit_fast() argument
2697 struct ieee80211_local *local = sdata->local; in ieee80211_xmit_fast()
2700 int hw_headroom = sdata->local->hw.extra_tx_headroom; in ieee80211_xmit_fast()
2710 if (cpu_to_be16(ethertype) == sdata->control_port_protocol) in ieee80211_xmit_fast()
2750 if (unlikely(ieee80211_skb_resize(sdata, skb, in ieee80211_xmit_fast()
2766 info->control.vif = &sdata->vif; in ieee80211_xmit_fast()
2777 hdr->seq_ctrl = cpu_to_le16(sdata->sequence_number); in ieee80211_xmit_fast()
2778 sdata->sequence_number += 0x10; in ieee80211_xmit_fast()
2787 info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; in ieee80211_xmit_fast()
2793 tx.sdata = sdata; in ieee80211_xmit_fast()
2839 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) in ieee80211_xmit_fast()
2840 sdata = container_of(sdata->bss, in ieee80211_xmit_fast()
2844 ieee80211_tx_frags(local, &sdata->vif, &sta->sta, &tx.skbs, false); in ieee80211_xmit_fast()
2852 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); in __ieee80211_subif_start_xmit() local
2863 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) in __ieee80211_subif_start_xmit()
2872 ieee80211_xmit_fast(sdata, dev, sta, fast_tx, skb)) in __ieee80211_subif_start_xmit()
2913 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); in __ieee80211_subif_start_xmit()
2919 ieee80211_xmit(sdata, sta, skb); in __ieee80211_subif_start_xmit()
2943 ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata, in ieee80211_build_data_template() argument
2948 .local = sdata->local, in ieee80211_build_data_template()
2949 .sdata = sdata, in ieee80211_build_data_template()
2955 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in ieee80211_build_data_template()
2961 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); in ieee80211_build_data_template()
2966 tx.sta = sta_info_get(sdata, hdr->addr1); in ieee80211_build_data_template()
3004 struct ieee80211_sub_if_data *sdata; in ieee80211_tx_pending_skb() local
3010 sdata = vif_to_sdata(info->control.vif); in ieee80211_tx_pending_skb()
3013 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_tx_pending_skb()
3019 result = ieee80211_tx(sdata, NULL, skb, true); in ieee80211_tx_pending_skb()
3027 sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_pending_skb()
3086 static void __ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, in __ieee80211_beacon_add_tim() argument
3103 ps->dtim_count = sdata->vif.bss_conf.dtim_period - 1; in __ieee80211_beacon_add_tim()
3112 *pos++ = sdata->vif.bss_conf.dtim_period; in __ieee80211_beacon_add_tim()
3151 static int ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, in ieee80211_beacon_add_tim() argument
3155 struct ieee80211_local *local = sdata->local; in ieee80211_beacon_add_tim()
3165 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); in ieee80211_beacon_add_tim()
3168 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); in ieee80211_beacon_add_tim()
3175 static void ieee80211_set_csa(struct ieee80211_sub_if_data *sdata, in ieee80211_set_csa() argument
3184 switch (sdata->vif.type) { in ieee80211_set_csa()
3203 resp = rcu_dereference(sdata->u.ap.probe_resp); in ieee80211_set_csa()
3215 if (sdata->vif.type == NL80211_IFTYPE_AP && resp) in ieee80211_set_csa()
3233 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_csa_update_counter() local
3239 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_csa_update_counter()
3240 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_csa_update_counter()
3241 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) in ieee80211_csa_update_counter()
3242 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_csa_update_counter()
3243 else if (ieee80211_vif_is_mesh(&sdata->vif)) in ieee80211_csa_update_counter()
3244 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_csa_update_counter()
3259 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_csa_is_complete() local
3265 if (!ieee80211_sdata_running(sdata)) in ieee80211_csa_is_complete()
3270 struct ieee80211_if_ap *ap = &sdata->u.ap; in ieee80211_csa_is_complete()
3278 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_csa_is_complete()
3287 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_csa_is_complete()
3325 struct ieee80211_sub_if_data *sdata = NULL; in __ieee80211_beacon_get() local
3333 sdata = vif_to_sdata(vif); in __ieee80211_beacon_get()
3334 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in __ieee80211_beacon_get()
3336 if (!ieee80211_sdata_running(sdata) || !chanctx_conf) in __ieee80211_beacon_get()
3342 if (sdata->vif.type == NL80211_IFTYPE_AP) { in __ieee80211_beacon_get()
3343 struct ieee80211_if_ap *ap = &sdata->u.ap; in __ieee80211_beacon_get()
3351 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
3369 ieee80211_beacon_add_tim(sdata, &ap->ps, skb, in __ieee80211_beacon_get()
3385 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { in __ieee80211_beacon_get()
3386 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in __ieee80211_beacon_get()
3397 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
3411 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in __ieee80211_beacon_get()
3412 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in __ieee80211_beacon_get()
3427 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
3431 ifmsh->sync_ops->adjust_tbtt(sdata, beacon); in __ieee80211_beacon_get()
3443 ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template); in __ieee80211_beacon_get()
3482 txrc.bss_conf = &sdata->vif.bss_conf; in __ieee80211_beacon_get()
3485 txrc.rate_idx_mask = sdata->rc_rateidx_mask[band]; in __ieee80211_beacon_get()
3491 rate_control_get_rate(sdata, NULL, &txrc); in __ieee80211_beacon_get()
3556 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_proberesp_get() local
3558 if (sdata->vif.type != NL80211_IFTYPE_AP) in ieee80211_proberesp_get()
3563 ap = &sdata->u.ap; in ieee80211_proberesp_get()
3586 struct ieee80211_sub_if_data *sdata; in ieee80211_pspoll_get() local
3595 sdata = vif_to_sdata(vif); in ieee80211_pspoll_get()
3596 ifmgd = &sdata->u.mgd; in ieee80211_pspoll_get()
3597 local = sdata->local; in ieee80211_pspoll_get()
3625 struct ieee80211_sub_if_data *sdata; in ieee80211_nullfunc_get() local
3633 sdata = vif_to_sdata(vif); in ieee80211_nullfunc_get()
3634 ifmgd = &sdata->u.mgd; in ieee80211_nullfunc_get()
3635 local = sdata->local; in ieee80211_nullfunc_get()
3734 struct ieee80211_sub_if_data *sdata; in ieee80211_get_buffered_bc() local
3739 sdata = vif_to_sdata(vif); in ieee80211_get_buffered_bc()
3742 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_get_buffered_bc()
3747 if (sdata->vif.type == NL80211_IFTYPE_AP) { in ieee80211_get_buffered_bc()
3749 rcu_dereference(sdata->u.ap.beacon); in ieee80211_get_buffered_bc()
3754 ps = &sdata->u.ap.ps; in ieee80211_get_buffered_bc()
3755 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_get_buffered_bc()
3756 ps = &sdata->u.mesh.ps; in ieee80211_get_buffered_bc()
3780 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_get_buffered_bc()
3781 sdata = IEEE80211_DEV_TO_SUB_IF(skb->dev); in ieee80211_get_buffered_bc()
3782 if (!ieee80211_tx_prepare(sdata, &tx, NULL, skb)) in ieee80211_get_buffered_bc()
3804 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_reserve_tid() local
3805 struct ieee80211_local *local = sdata->local; in ieee80211_reserve_tid()
3812 switch (sdata->vif.type) { in ieee80211_reserve_tid()
3831 sdata_err(sdata, "TID reservation already active\n"); in ieee80211_reserve_tid()
3836 ieee80211_stop_vif_queues(sdata->local, sdata, in ieee80211_reserve_tid()
3848 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]); in ieee80211_reserve_tid()
3849 __ieee80211_flush_queues(local, sdata, queues, false); in ieee80211_reserve_tid()
3853 ieee80211_wake_vif_queues(local, sdata, in ieee80211_reserve_tid()
3868 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_unreserve_tid() local
3870 lockdep_assert_held(&sdata->local->sta_mtx); in ieee80211_unreserve_tid()
3873 switch (sdata->vif.type) { in ieee80211_unreserve_tid()
3884 sdata_err(sdata, "TID to unreserve (%d) isn't reserved\n", tid); in ieee80211_unreserve_tid()
3892 void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, in __ieee80211_tx_skb_tid_band() argument
3905 skb->dev = sdata->dev; in __ieee80211_tx_skb_tid_band()
3914 ieee80211_xmit(sdata, NULL, skb); in __ieee80211_tx_skb_tid_band()