Lines Matching defs:sdata

69 	chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf);
154 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i))
160 if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE)
196 tx->sdata->vif.bss_conf.use_short_preamble,
206 tx->sdata->vif.bss_conf.use_short_preamble,
245 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION)
251 ifmgd = &tx->sdata->u.mgd;
303 test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) &&
319 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB)
322 if (tx->sdata->vif.type == NL80211_IFTYPE_WDS)
335 sdata_info(tx->sdata,
343 ieee80211_vif_get_num_mcast_if(tx->sdata) == 0)) {
362 struct ieee80211_sub_if_data *sdata;
365 list_for_each_entry_rcu(sdata, &local->interfaces, list) {
368 if (sdata->vif.type == NL80211_IFTYPE_AP)
369 ps = &sdata->u.ap.ps;
370 else if (ieee80211_vif_is_mesh(&sdata->vif))
371 ps = &sdata->u.mesh.ps;
421 if (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
422 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
423 if (!tx->sdata->bss)
426 ps = &tx->sdata->bss->ps;
427 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) {
428 ps = &tx->sdata->u.mesh.ps;
442 info->hw_queue = tx->sdata->vif.cab_queue;
459 ps_dbg(tx->sdata,
508 ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n",
529 ps_dbg(tx->sdata,
537 info->control.vif = &tx->sdata->vif;
556 ps_dbg(tx->sdata,
581 if (unlikely(tx->sdata->control_port_protocol == tx->skb->protocol)) {
582 if (tx->sdata->control_port_no_encrypt)
607 (key = rcu_dereference(tx->sdata->default_multicast_key)))
612 (key = rcu_dereference(tx->sdata->default_mgmt_key)))
615 (key = rcu_dereference(tx->sdata->default_multicast_key)))
618 (key = rcu_dereference(tx->sdata->default_unicast_key)))
660 tx->skb->protocol != tx->sdata->control_port_protocol)
695 txrc.bss_conf = &tx->sdata->vif.bss_conf;
698 txrc.rate_idx_mask = tx->sdata->rc_rateidx_mask[info->band];
700 if (tx->sdata->rc_has_mcs_mask[info->band])
702 tx->sdata->rc_rateidx_mcs_mask[info->band];
704 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
705 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
706 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC ||
707 tx->sdata->vif.type == NL80211_IFTYPE_OCB);
715 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot;
723 if (tx->sdata->vif.bss_conf.use_short_preamble &&
746 tx->sdata->name, hdr->addr1,
754 rate_control_get_rate(tx->sdata, tx->sta, &txrc);
847 hdr->seq_ctrl = cpu_to_le16(tx->sdata->sequence_number);
848 tx->sdata->sequence_number += 0x10;
895 tx->sdata->encrypt_headroom +
903 local->tx_headroom + tx->sdata->encrypt_headroom);
1137 ps_dbg(tx->sta->sdata,
1141 info->control.vif = &tx->sdata->vif;
1167 ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata,
1171 struct ieee80211_local *local = sdata->local;
1179 tx->sdata = sdata;
1195 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
1196 tx->sta = rcu_dereference(sdata->u.vlan.sta);
1197 if (!tx->sta && sdata->wdev.use_4addr)
1201 tx->sdata->control_port_protocol == tx->skb->protocol) {
1202 tx->sta = sta_info_get_bss(sdata, hdr->addr1);
1205 tx->sta = sta_info_get(sdata, hdr->addr1);
1434 struct ieee80211_sub_if_data *sdata)
1441 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN))
1444 ap = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap);
1453 fq_tin_filter(fq, tin, fq_vlan_filter_func, &sdata->vif,
1458 void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata,
1469 txqi->txq.vif = &sdata->vif;
1472 sdata->vif.txq = &txqi->txq;
1480 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
1482 if (!ieee80211_hw_check(&sdata->local->hw,
1485 } else if (!ieee80211_hw_check(&sdata->local->hw,
1604 struct ieee80211_sub_if_data *sdata,
1612 sdata->vif.type == NL80211_IFTYPE_MONITOR)
1615 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1616 sdata = container_of(sdata->bss,
1619 vif = &sdata->vif;
1713 struct ieee80211_sub_if_data *sdata;
1725 sdata = vif_to_sdata(info->control.vif);
1729 switch (sdata->vif.type) {
1731 if (sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) {
1732 vif = &sdata->vif;
1735 sdata = rcu_dereference(local->monitor_sdata);
1736 if (sdata) {
1737 vif = &sdata->vif;
1747 sdata = container_of(sdata->bss,
1751 vif = &sdata->vif;
1861 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
1866 if (ieee80211_tx_prepare(sdata, &tx, NULL, skb) == TX_DROP)
1898 static bool ieee80211_tx(struct ieee80211_sub_if_data *sdata,
1902 struct ieee80211_local *local = sdata->local;
1916 res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb);
1929 sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
1934 if (ieee80211_queue_skb(local, sdata, tx.sta, tx.skb))
1952 static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata,
1957 struct ieee80211_local *local = sdata->local;
1963 sdata->crypto_tx_tailroom_needed_cnt);
1989 void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
1992 struct ieee80211_local *local = sdata->local;
2007 headroom += sdata->encrypt_headroom;
2011 if (ieee80211_skb_resize(sdata, skb, headroom, encrypt)) {
2018 info->control.vif = &sdata->vif;
2020 if (ieee80211_vif_is_mesh(&sdata->vif)) {
2023 if (mesh_nexthop_resolve(sdata, skb))
2026 ieee80211_mps_set_frame_flags(sdata, NULL, hdr);
2030 ieee80211_set_qos_hdr(sdata, skb);
2031 ieee80211_tx(sdata, sta, skb, false);
2247 struct ieee80211_sub_if_data *tmp_sdata, *sdata;
2321 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
2331 sdata = tmp_sdata;
2336 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2368 sdata->vif.type))
2384 ieee80211_xmit(sdata, NULL, skb);
2405 int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata,
2411 switch (sdata->vif.type) {
2413 sta = rcu_dereference(sdata->u.vlan.sta);
2417 } else if (sdata->wdev.use_4addr) {
2428 sta = sta_info_get_bss(sdata, skb->data);
2431 sta = sta_info_get(sdata, sdata->u.wds.remote_addr);
2440 if (sdata->wdev.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS) {
2441 sta = sta_info_get(sdata, skb->data);
2462 sta = sta_info_get(sdata, sdata->u.mgd.bssid);
2513 * @sdata: virtual interface to build the header for
2532 static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata,
2537 struct ieee80211_local *local = sdata->local;
2569 switch (sdata->vif.type) {
2571 if (sdata->wdev.use_4addr) {
2575 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2582 ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data,
2590 if (sdata->wdev.use_4addr)
2594 if (sdata->vif.type == NL80211_IFTYPE_AP)
2595 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2603 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2611 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN);
2612 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2628 mpath = mesh_path_lookup(sdata, skb->data);
2639 mppath = mpp_path_lookup(sdata, skb->data);
2645 mesh_path_del(sdata, mpath->dst);
2654 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) &&
2658 meshhdrlen = ieee80211_new_mesh_header(sdata, &mesh_hdr,
2675 mesh_da, sdata->vif.addr);
2679 sdata, &mesh_hdr,
2684 sdata, &mesh_hdr, skb->data,
2688 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2711 memcpy(hdr.addr3, sdata->u.mgd.bssid, ETH_ALEN);
2713 } else if (sdata->u.mgd.use_4addr &&
2714 cpu_to_be16(ethertype) != sdata->control_port_protocol) {
2718 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN);
2719 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2726 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN);
2731 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2744 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2755 memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN);
2757 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2775 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
2790 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) &&
2791 (sdata->vif.type != NL80211_IFTYPE_OCB) &&
2793 (cpu_to_be16(ethertype) != sdata->control_port_protocol ||
2794 !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) {
2797 sdata->name, hdr.addr1);
2864 head_need += sdata->encrypt_headroom;
2867 if (ieee80211_skb_resize(sdata, skb, head_need, ENCRYPT_DATA)) {
2936 struct ieee80211_sub_if_data *sdata = sta->sdata;
2959 sdata->vif.type == NL80211_IFTYPE_STATION)
2971 if (sdata->noack_map)
2980 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
2990 switch (sdata->vif.type) {
2995 memcpy(hdr->addr3, sdata->u.ibss.bssid, ETH_ALEN);
3003 memcpy(hdr->addr3, sdata->u.mgd.bssid, ETH_ALEN);
3008 if (sdata->u.mgd.use_4addr) {
3013 memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN);
3014 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3022 memcpy(hdr->addr1, sdata->u.mgd.bssid, ETH_ALEN);
3028 if (sdata->wdev.use_4addr) {
3033 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3044 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3065 build.key = rcu_access_pointer(sdata->default_unicast_key);
3170 void ieee80211_check_fast_xmit_iface(struct ieee80211_sub_if_data *sdata)
3172 struct ieee80211_local *local = sdata->local;
3178 if (sdata != sta->sdata &&
3179 (!sta->sdata->bss || sta->sdata->bss != sdata->bss))
3217 static bool ieee80211_amsdu_prepare_head(struct ieee80211_sub_if_data *sdata,
3221 struct ieee80211_local *local = sdata->local;
3258 switch (sdata->vif.type) {
3260 bssid = sdata->u.mgd.bssid;
3264 bssid = sdata->vif.addr;
3284 static bool ieee80211_amsdu_aggregate(struct ieee80211_sub_if_data *sdata,
3289 struct ieee80211_local *local = sdata->local;
3370 if (!ieee80211_amsdu_prepare_head(sdata, fast_tx, head))
3429 static void ieee80211_xmit_fast_finish(struct ieee80211_sub_if_data *sdata,
3448 hdr->seq_ctrl = cpu_to_le16(sdata->sequence_number);
3449 sdata->sequence_number += 0x10;
3458 info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
3488 static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata,
3493 struct ieee80211_local *local = sdata->local;
3496 int hw_headroom = sdata->local->hw.extra_tx_headroom;
3506 if (cpu_to_be16(ethertype) == sdata->control_port_protocol)
3541 ieee80211_amsdu_aggregate(sdata, sta, fast_tx, skb))
3548 if (unlikely(ieee80211_skb_resize(sdata, skb,
3565 info->control.vif = &sdata->vif;
3585 tx.sdata = sdata;
3602 if (ieee80211_queue_skb(local, sdata, sta, skb))
3605 ieee80211_xmit_fast_finish(sdata, sta, fast_tx->pn_offs,
3608 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
3609 sdata = container_of(sdata->bss,
3613 ieee80211_tx_frags(local, &sdata->vif, sta, &tx.skbs, false);
3666 tx.sdata = vif_to_sdata(info->control.vif);
3676 !ieee80211_vif_is_mesh(&tx.sdata->vif) &&
3677 tx.sdata->vif.type != NL80211_IFTYPE_OCB &&
3682 !ether_addr_equal(tx.sdata->vif.addr,
3717 ieee80211_xmit_fast_finish(sta->sdata, sta, pn_offs,
3741 switch (tx.sdata->vif.type) {
3743 if (tx.sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) {
3744 vif = &tx.sdata->vif;
3747 tx.sdata = rcu_dereference(local->monitor_sdata);
3748 if (tx.sdata) {
3749 vif = &tx.sdata->vif;
3760 tx.sdata = container_of(tx.sdata->bss,
3764 vif = &tx.sdata->vif;
3982 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
3983 struct ieee80211_local *local = sdata->local;
3994 if (ieee80211_lookup_ra_sta(sdata, skb, &sta))
4001 u16 queue = __ieee80211_select_queue(sdata, sta, skb);
4009 sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
4014 ieee80211_xmit_fast(sdata, sta, fast_tx, skb))
4050 if (skb->protocol == sdata->control_port_protocol)
4053 skb = ieee80211_build_hdr(sdata, skb, info_flags,
4062 ieee80211_xmit(sdata, sta, skb);
4089 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
4097 switch (sdata->vif.type) {
4099 if (sdata->u.vlan.sta)
4101 if (sdata->wdev.use_4addr)
4106 if (!sdata->bss->multicast_to_unicast)
4133 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
4134 struct ieee80211_local *local = sdata->local;
4142 if (sdata != sta->sdata)
4204 static bool ieee80211_tx_8023(struct ieee80211_sub_if_data *sdata,
4209 struct ieee80211_local *local = sdata->local;
4216 if (ieee80211_queue_skb(local, sdata, sta, skb))
4245 static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
4250 struct ieee80211_local *local = sdata->local;
4255 u16 queue = __ieee80211_select_queue(sdata, sta, skb);
4261 test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state))
4285 info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
4292 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
4293 sdata = container_of(sdata->bss,
4297 info->control.vif = &sdata->vif;
4302 ieee80211_tx_8023(sdata, skb, skb->len, sta, false);
4313 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
4325 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) {
4332 sdata->control_port_protocol == ehdr->h_proto))
4337 key = rcu_dereference(sdata->default_unicast_key);
4343 ieee80211_8023_xmit(sdata, dev, sta, key, skb);
4355 ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata,
4360 .local = sdata->local,
4361 .sdata = sdata,
4367 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) {
4373 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0, NULL);
4378 tx.sta = sta_info_get(sdata, hdr->addr1);
4416 struct ieee80211_sub_if_data *sdata;
4422 sdata = vif_to_sdata(info->control.vif);
4425 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
4431 result = ieee80211_tx(sdata, NULL, skb, true);
4433 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) {
4441 result = ieee80211_tx_8023(sdata, skb, skb->len, sta, true);
4449 sta = sta_info_get(sdata, hdr->addr1);
4508 static void __ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata,
4525 ps->dtim_count = sdata->vif.bss_conf.dtim_period - 1;
4534 *pos++ = sdata->vif.bss_conf.dtim_period;
4573 static int ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata,
4577 struct ieee80211_local *local = sdata->local;
4587 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template);
4590 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template);
4597 static void ieee80211_set_beacon_cntdwn(struct ieee80211_sub_if_data *sdata,
4606 switch (sdata->vif.type) {
4625 resp = rcu_dereference(sdata->u.ap.probe_resp);
4637 if (sdata->vif.type == NL80211_IFTYPE_AP && resp)
4655 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
4661 if (sdata->vif.type == NL80211_IFTYPE_AP)
4662 beacon = rcu_dereference(sdata->u.ap.beacon);
4663 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
4664 beacon = rcu_dereference(sdata->u.ibss.presp);
4665 else if (ieee80211_vif_is_mesh(&sdata->vif))
4666 beacon = rcu_dereference(sdata->u.mesh.beacon);
4681 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
4686 if (sdata->vif.type == NL80211_IFTYPE_AP)
4687 beacon = rcu_dereference(sdata->u.ap.beacon);
4688 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
4689 beacon = rcu_dereference(sdata->u.ibss.presp);
4690 else if (ieee80211_vif_is_mesh(&sdata->vif))
4691 beacon = rcu_dereference(sdata->u.mesh.beacon);
4706 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
4712 if (!ieee80211_sdata_running(sdata))
4717 struct ieee80211_if_ap *ap = &sdata->u.ap;
4725 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
4734 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
4765 struct ieee80211_sub_if_data *sdata)
4772 tx.key = rcu_dereference(sdata->default_beacon_key);
4776 tx.sdata = sdata;
4799 struct ieee80211_sub_if_data *sdata = NULL;
4807 sdata = vif_to_sdata(vif);
4808 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
4810 if (!ieee80211_sdata_running(sdata) || !chanctx_conf)
4816 if (sdata->vif.type == NL80211_IFTYPE_AP) {
4817 struct ieee80211_if_ap *ap = &sdata->u.ap;
4825 ieee80211_set_beacon_cntdwn(sdata, beacon);
4842 ieee80211_beacon_add_tim(sdata, &ap->ps, skb,
4857 if (ieee80211_beacon_protect(skb, local, sdata) < 0)
4861 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
4862 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
4873 ieee80211_set_beacon_cntdwn(sdata, beacon);
4886 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
4887 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
4902 ieee80211_set_beacon_cntdwn(sdata, beacon);
4906 ifmsh->sync_ops->adjust_tsf(sdata, beacon);
4917 ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template);
4955 txrc.bss_conf = &sdata->vif.bss_conf;
4958 if (sdata->beacon_rate_set && sdata->beacon_rateidx_mask[band])
4959 txrc.rate_idx_mask = sdata->beacon_rateidx_mask[band];
4961 txrc.rate_idx_mask = sdata->rc_rateidx_mask[band];
4963 rate_control_get_rate(sdata, NULL, &txrc);
5032 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5034 if (sdata->vif.type != NL80211_IFTYPE_AP)
5039 ap = &sdata->u.ap;
5064 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5066 if (sdata->vif.type != NL80211_IFTYPE_AP)
5070 tmpl = rcu_dereference(sdata->u.ap.fils_discovery);
5076 skb = dev_alloc_skb(sdata->local->hw.extra_tx_headroom + tmpl->len);
5078 skb_reserve(skb, sdata->local->hw.extra_tx_headroom);
5093 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5095 if (sdata->vif.type != NL80211_IFTYPE_AP)
5099 tmpl = rcu_dereference(sdata->u.ap.unsol_bcast_probe_resp);
5105 skb = dev_alloc_skb(sdata->local->hw.extra_tx_headroom + tmpl->len);
5107 skb_reserve(skb, sdata->local->hw.extra_tx_headroom);
5119 struct ieee80211_sub_if_data *sdata;
5128 sdata = vif_to_sdata(vif);
5129 ifmgd = &sdata->u.mgd;
5130 local = sdata->local;
5141 pspoll->aid = cpu_to_le16(sdata->vif.bss_conf.aid);
5158 struct ieee80211_sub_if_data *sdata;
5167 sdata = vif_to_sdata(vif);
5168 ifmgd = &sdata->u.mgd;
5169 local = sdata->local;
5175 sta = sta_info_get(sdata, ifmgd->bssid);
5288 struct ieee80211_sub_if_data *sdata;
5293 sdata = vif_to_sdata(vif);
5296 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf);
5301 if (sdata->vif.type == NL80211_IFTYPE_AP) {
5303 rcu_dereference(sdata->u.ap.beacon);
5308 ps = &sdata->u.ap.ps;
5309 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
5310 ps = &sdata->u.mesh.ps;
5334 if (sdata->vif.type == NL80211_IFTYPE_AP)
5335 sdata = IEEE80211_DEV_TO_SUB_IF(skb->dev);
5336 if (!ieee80211_tx_prepare(sdata, &tx, NULL, skb))
5358 struct ieee80211_sub_if_data *sdata = sta->sdata;
5359 struct ieee80211_local *local = sdata->local;
5366 switch (sdata->vif.type) {
5385 sdata_err(sdata, "TID reservation already active\n");
5390 ieee80211_stop_vif_queues(sdata->local, sdata,
5402 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]);
5403 __ieee80211_flush_queues(local, sdata, queues, false);
5407 ieee80211_wake_vif_queues(local, sdata,
5422 struct ieee80211_sub_if_data *sdata = sta->sdata;
5424 lockdep_assert_held(&sdata->local->sta_mtx);
5427 switch (sdata->vif.type) {
5438 sdata_err(sdata, "TID to unreserve (%d) isn't reserved\n", tid);
5446 void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata,
5456 skb->dev = sdata->dev;
5465 ieee80211_xmit(sdata, NULL, skb);
5474 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
5475 struct ieee80211_local *local = sdata->local;
5484 if (proto != sdata->control_port_protocol &&
5488 if (proto == sdata->control_port_protocol)
5512 memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN);
5535 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
5536 struct ieee80211_local *local = sdata->local;