Lines Matching refs:vif

60 	chanctx_conf = rcu_dereference(tx->sdata->vif.bss_conf.chanctx_conf);
144 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i))
183 tx->sdata->vif.bss_conf.use_short_preamble);
192 tx->sdata->vif.bss_conf.use_short_preamble);
230 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION)
304 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB)
350 if (sdata->vif.type == NL80211_IFTYPE_AP)
352 else if (ieee80211_vif_is_mesh(&sdata->vif))
403 if (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
404 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
409 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) {
424 info->hw_queue = tx->sdata->vif.cab_queue;
519 info->control.vif = &tx->sdata->vif;
698 txrc.bss_conf = &tx->sdata->vif.bss_conf;
712 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
713 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
714 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC ||
715 tx->sdata->vif.type == NL80211_IFTYPE_OCB);
723 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot;
731 if (tx->sdata->vif.bss_conf.use_short_preamble &&
830 if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR))
847 ieee80211_vif_is_mld(info->control.vif) &&
848 info->control.vif->type == NL80211_IFTYPE_AP)) {
1156 info->control.vif = &tx->sdata->vif;
1232 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
1295 struct ieee80211_vif *vif,
1311 vif->type == NL80211_IFTYPE_STATION) &&
1327 txq = vif->txq;
1367 local = vif_to_sdata(txqi->txq.vif)->local;
1386 local = vif_to_sdata(txqi->txq.vif)->local;
1475 return info->control.vif == data;
1486 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN))
1491 if (!ap->vif.txq)
1494 txqi = to_txq_info(ap->vif.txq);
1498 fq_tin_filter(fq, tin, fq_vlan_filter_func, &sdata->vif,
1513 txqi->txq.vif = &sdata->vif;
1516 sdata->vif.txq = &txqi->txq;
1524 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
1646 struct ieee80211_vif *vif;
1649 if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
1652 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1656 vif = &sdata->vif;
1657 txqi = ieee80211_get_txq(local, vif, sta, skb);
1670 struct ieee80211_vif *vif,
1732 info->control.vif = vif;
1751 struct ieee80211_vif *vif;
1760 sdata = vif_to_sdata(info->control.vif);
1764 switch (sdata->vif.type) {
1767 vif = &sdata->vif;
1772 vif = &sdata->vif;
1774 vif->hw_queue[skb_get_queue_mapping(skb)];
1779 vif = NULL;
1786 vif = &sdata->vif;
1790 result = ieee80211_tx_frags(local, vif, sta, skbs, txpending);
1892 struct ieee80211_vif *vif, struct sk_buff *skb,
1895 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
1904 info->control.vif = vif;
1905 info->hw_queue = vif->hw_queue[skb_get_queue_mapping(skb)];
1961 sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
2049 info->control.vif = &sdata->vif;
2051 if (ieee80211_vif_is_mesh(&sdata->vif)) {
2379 if (tmp_sdata->vif.type == NL80211_IFTYPE_MONITOR ||
2380 tmp_sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
2382 if (ether_addr_equal(tmp_sdata->vif.addr, hdr->addr2)) {
2388 chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
2393 rcu_dereference(tmp_sdata->vif.bss_conf.chanctx_conf);
2426 sdata->vif.type))
2478 switch (sdata->vif.type) {
2526 sta = sta_info_get(sdata, sdata->vif.cfg.ap_addr);
2633 if (!ieee80211_vif_is_mld(&sdata->vif))
2635 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
2637 switch (sdata->vif.type) {
2643 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2650 if (!ieee80211_vif_is_mld(&sdata->vif)) {
2658 rcu_dereference(ap_sdata->vif.bss_conf.chanctx_conf);
2668 if (ieee80211_vif_is_mld(&sdata->vif) && sta && !sta->sta.mlo) {
2680 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2684 conf = rcu_dereference(sdata->vif.link_conf[link_id]);
2728 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) &&
2749 mesh_da, sdata->vif.addr);
2797 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2804 memcpy(hdr.addr1, sdata->vif.cfg.ap_addr, ETH_ALEN);
2830 if (!ieee80211_vif_is_mld(&sdata->vif)) {
2846 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
2861 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) &&
2862 (sdata->vif.type != NL80211_IFTYPE_OCB) &&
3038 if (ieee80211_vif_is_mesh(&sdata->vif))
3056 sdata->vif.type == NL80211_IFTYPE_STATION)
3076 if (!ieee80211_vif_is_mld(&sdata->vif)) {
3079 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
3093 switch (sdata->vif.type) {
3126 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3134 memcpy(hdr->addr1, sdata->vif.cfg.ap_addr, ETH_ALEN);
3145 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3156 if (sta->sta.mlo || !ieee80211_vif_is_mld(&sdata->vif)) {
3157 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3373 switch (sdata->vif.type) {
3375 bssid = sdata->vif.cfg.ap_addr;
3379 bssid = sdata->vif.addr;
3429 if (sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)
3432 if (ieee80211_vif_is_mesh(&sdata->vif))
3584 info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
3619 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN)
3620 return sdata->vif.netdev_features;
3626 return sdata->vif.netdev_features;
3708 info->control.vif = &sdata->vif;
3744 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
3749 ieee80211_tx_frags(local, &sdata->vif, sta, &tx.skbs, false);
3819 struct ieee80211_vif *vif = txq->vif;
3820 int q = vif->hw_queue[txq->ac];
3869 tx.sdata = vif_to_sdata(info->control.vif);
3879 !ieee80211_vif_is_mesh(&tx.sdata->vif) &&
3880 tx.sdata->vif.type != NL80211_IFTYPE_OCB &&
3955 switch (tx.sdata->vif.type) {
3958 vif = &tx.sdata->vif;
3963 vif = &tx.sdata->vif;
3965 vif->hw_queue[skb_get_queue_mapping(skb)];
3970 info->control.vif = NULL;
3979 vif = &tx.sdata->vif;
3984 info->control.vif = vif;
3991 airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
4289 if (ieee80211_vif_is_mesh(&sdata->vif) &&
4373 switch (sdata->vif.type) {
4474 unsigned long links = sdata->vif.active_links;
4526 } else if (ieee80211_vif_is_mld(&sdata->vif) &&
4527 sdata->vif.type == NL80211_IFTYPE_AP &&
4646 info->hw_queue = sdata->vif.hw_queue[queue];
4648 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
4653 info->control.vif = &sdata->vif;
4801 sdata = vif_to_sdata(info->control.vif);
4805 if (!ieee80211_vif_is_mld(&sdata->vif)) {
4807 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
4867 if (WARN_ON(!info->control.vif)) {
4995 switch (sdata->vif.type) {
5026 if (sdata->vif.type == NL80211_IFTYPE_AP && resp) {
5044 u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif *vif, unsigned int link_id)
5046 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5060 if (sdata->vif.type == NL80211_IFTYPE_AP)
5062 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
5064 else if (ieee80211_vif_is_mesh(&sdata->vif))
5078 void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter)
5080 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5085 if (sdata->vif.type == NL80211_IFTYPE_AP)
5087 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
5089 else if (ieee80211_vif_is_mesh(&sdata->vif))
5103 bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif *vif,
5106 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5125 if (vif->type == NL80211_IFTYPE_AP) {
5131 } else if (vif->type == NL80211_IFTYPE_ADHOC) {
5140 } else if (vif->type == NL80211_IFTYPE_MESH_POINT) {
5209 struct ieee80211_vif *vif,
5218 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5256 info->control.vif = vif;
5295 struct ieee80211_vif *vif,
5304 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5312 ieee80211_beacon_update_cntdwn(vif, link->link_id);
5355 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5362 struct ieee80211_vif *vif,
5380 ieee80211_beacon_get_ap(hw, vif, link,
5399 struct ieee80211_vif *vif,
5415 sdata = vif_to_sdata(vif);
5428 if (sdata->vif.type == NL80211_IFTYPE_AP) {
5435 ieee80211_beacon_get_ap_ema_list(hw, vif, link,
5451 skb = ieee80211_beacon_get_ap(hw, vif, link, offs,
5456 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
5482 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5484 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
5524 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5539 struct ieee80211_vif *vif,
5543 return __ieee80211_beacon_get(hw, vif, offs, true, link_id,
5550 struct ieee80211_vif *vif,
5554 return __ieee80211_beacon_get(hw, vif, offs, true, link_id, ema_index,
5575 struct ieee80211_vif *vif,
5580 WARN_ON(__ieee80211_beacon_get(hw, vif, NULL, true, link_id, 0,
5588 struct ieee80211_vif *vif,
5593 struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false,
5624 struct ieee80211_vif *vif)
5629 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5631 if (sdata->vif.type != NL80211_IFTYPE_AP)
5655 struct ieee80211_vif *vif)
5659 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5661 if (sdata->vif.type != NL80211_IFTYPE_AP)
5684 struct ieee80211_vif *vif)
5688 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5690 if (sdata->vif.type != NL80211_IFTYPE_AP)
5712 struct ieee80211_vif *vif)
5719 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION))
5722 sdata = vif_to_sdata(vif);
5734 pspoll->aid = cpu_to_le16(sdata->vif.cfg.aid);
5740 memcpy(pspoll->ta, vif->addr, ETH_ALEN);
5747 struct ieee80211_vif *vif,
5750 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5757 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION))
5769 sta = sta_info_get(sdata, vif->cfg.ap_addr);
5806 memcpy(nullfunc->addr1, vif->cfg.ap_addr, ETH_ALEN);
5807 memcpy(nullfunc->addr2, vif->addr, ETH_ALEN);
5808 memcpy(nullfunc->addr3, vif->cfg.ap_addr, ETH_ALEN);
5854 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5863 rts->duration = ieee80211_rts_duration(hw, vif, frame_len,
5870 void ieee80211_ctstoself_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5879 cts->duration = ieee80211_ctstoself_duration(hw, vif,
5887 struct ieee80211_vif *vif)
5897 sdata = vif_to_sdata(vif);
5900 chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
5905 if (sdata->vif.type == NL80211_IFTYPE_AP) {
5913 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
5938 if (sdata->vif.type == NL80211_IFTYPE_AP)
5970 switch (sdata->vif.type) {
6006 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]);
6031 switch (sdata->vif.type) {
6068 if (!ieee80211_vif_is_mld(&sdata->vif)) {
6072 } else if (memcmp(sdata->vif.addr, hdr->addr2, ETH_ALEN) == 0) {
6078 for (link = 0; link < ARRAY_SIZE(sdata->vif.link_conf); link++) {
6081 link_conf = rcu_dereference(sdata->vif.link_conf[link]);
6089 if (WARN_ON_ONCE(link == ARRAY_SIZE(sdata->vif.link_conf)))
6090 link = ffs(sdata->vif.active_links) - 1;
6114 if (!ieee80211_vif_is_mld(&sdata->vif)) {
6117 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
6126 !(sdata->vif.active_links & BIT(link_id)));
6187 memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN);
6195 link_conf = rcu_dereference(sdata->vif.link_conf[link_id]);
6237 memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN);