Lines Matching defs:vif

60 	chanctx_conf = rcu_dereference(tx->sdata->vif.bss_conf.chanctx_conf);
145 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i))
188 tx->sdata->vif.bss_conf.use_short_preamble,
198 tx->sdata->vif.bss_conf.use_short_preamble,
237 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION)
311 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB)
357 if (sdata->vif.type == NL80211_IFTYPE_AP)
359 else if (ieee80211_vif_is_mesh(&sdata->vif))
410 if (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
411 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
416 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) {
431 info->hw_queue = tx->sdata->vif.cab_queue;
526 info->control.vif = &tx->sdata->vif;
705 txrc.bss_conf = &tx->sdata->vif.bss_conf;
714 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP ||
715 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
716 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC ||
717 tx->sdata->vif.type == NL80211_IFTYPE_OCB);
725 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot;
733 if (tx->sdata->vif.bss_conf.use_short_preamble &&
832 if (unlikely(info->control.vif->type == NL80211_IFTYPE_MONITOR))
849 ieee80211_vif_is_mld(info->control.vif) &&
850 info->control.vif->type == NL80211_IFTYPE_AP)) {
1158 info->control.vif = &tx->sdata->vif;
1234 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
1297 struct ieee80211_vif *vif,
1313 vif->type == NL80211_IFTYPE_STATION) &&
1329 txq = vif->txq;
1369 local = vif_to_sdata(txqi->txq.vif)->local;
1388 local = vif_to_sdata(txqi->txq.vif)->local;
1477 return info->control.vif == data;
1488 if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP_VLAN))
1493 if (!ap->vif.txq)
1496 txqi = to_txq_info(ap->vif.txq);
1500 fq_tin_filter(fq, tin, fq_vlan_filter_func, &sdata->vif,
1515 txqi->txq.vif = &sdata->vif;
1518 sdata->vif.txq = &txqi->txq;
1526 if (sdata->vif.type == NL80211_IFTYPE_STATION) {
1648 struct ieee80211_vif *vif;
1651 if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
1654 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
1658 vif = &sdata->vif;
1659 txqi = ieee80211_get_txq(local, vif, sta, skb);
1672 struct ieee80211_vif *vif,
1734 info->control.vif = vif;
1753 struct ieee80211_vif *vif;
1762 sdata = vif_to_sdata(info->control.vif);
1766 switch (sdata->vif.type) {
1769 vif = &sdata->vif;
1774 vif = &sdata->vif;
1776 vif->hw_queue[skb_get_queue_mapping(skb)];
1781 vif = NULL;
1788 vif = &sdata->vif;
1792 result = ieee80211_tx_frags(local, vif, sta, skbs, txpending);
1894 struct ieee80211_vif *vif, struct sk_buff *skb,
1897 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
1906 info->control.vif = vif;
1907 info->hw_queue = vif->hw_queue[skb_get_queue_mapping(skb)];
1963 sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
2051 info->control.vif = &sdata->vif;
2053 if (ieee80211_vif_is_mesh(&sdata->vif)) {
2367 if (tmp_sdata->vif.type == NL80211_IFTYPE_MONITOR ||
2368 tmp_sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
2370 if (ether_addr_equal(tmp_sdata->vif.addr, hdr->addr2)) {
2376 chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
2381 rcu_dereference(tmp_sdata->vif.bss_conf.chanctx_conf);
2408 sdata->vif.type))
2460 switch (sdata->vif.type) {
2508 sta = sta_info_get(sdata, sdata->vif.cfg.ap_addr);
2615 if (!ieee80211_vif_is_mld(&sdata->vif))
2617 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
2619 switch (sdata->vif.type) {
2625 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2632 if (!ieee80211_vif_is_mld(&sdata->vif)) {
2640 rcu_dereference(ap_sdata->vif.bss_conf.chanctx_conf);
2650 if (ieee80211_vif_is_mld(&sdata->vif) && sta && !sta->sta.mlo) {
2662 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2666 conf = rcu_dereference(sdata->vif.link_conf[link_id]);
2710 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) &&
2731 mesh_da, sdata->vif.addr);
2779 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN);
2786 memcpy(hdr.addr1, sdata->vif.cfg.ap_addr, ETH_ALEN);
2812 if (!ieee80211_vif_is_mld(&sdata->vif)) {
2828 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
2843 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) &&
2844 (sdata->vif.type != NL80211_IFTYPE_OCB) &&
3016 if (ieee80211_vif_is_mesh(&sdata->vif))
3034 sdata->vif.type == NL80211_IFTYPE_STATION)
3054 if (!ieee80211_vif_is_mld(&sdata->vif)) {
3057 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
3071 switch (sdata->vif.type) {
3104 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3112 memcpy(hdr->addr1, sdata->vif.cfg.ap_addr, ETH_ALEN);
3123 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3134 if (sta->sta.mlo || !ieee80211_vif_is_mld(&sdata->vif)) {
3135 memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
3351 switch (sdata->vif.type) {
3353 bssid = sdata->vif.cfg.ap_addr;
3357 bssid = sdata->vif.addr;
3407 if (sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)
3410 if (ieee80211_vif_is_mesh(&sdata->vif))
3562 info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)];
3597 if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN)
3598 return sdata->vif.netdev_features;
3604 return sdata->vif.netdev_features;
3686 info->control.vif = &sdata->vif;
3722 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
3727 ieee80211_tx_frags(local, &sdata->vif, sta, &tx.skbs, false);
3797 struct ieee80211_vif *vif = txq->vif;
3798 int q = vif->hw_queue[txq->ac];
3847 tx.sdata = vif_to_sdata(info->control.vif);
3857 !ieee80211_vif_is_mesh(&tx.sdata->vif) &&
3858 tx.sdata->vif.type != NL80211_IFTYPE_OCB &&
3933 switch (tx.sdata->vif.type) {
3936 vif = &tx.sdata->vif;
3941 vif = &tx.sdata->vif;
3943 vif->hw_queue[skb_get_queue_mapping(skb)];
3948 vif = NULL;
3956 vif = &tx.sdata->vif;
3961 info->control.vif = vif;
3968 airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
4269 if (ieee80211_vif_is_mesh(&sdata->vif) &&
4353 switch (sdata->vif.type) {
4454 unsigned long links = sdata->vif.active_links;
4504 } else if (ieee80211_vif_is_mld(&sdata->vif) &&
4505 sdata->vif.type == NL80211_IFTYPE_AP &&
4624 info->hw_queue = sdata->vif.hw_queue[queue];
4626 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
4631 info->control.vif = &sdata->vif;
4776 sdata = vif_to_sdata(info->control.vif);
4780 if (!ieee80211_vif_is_mld(&sdata->vif)) {
4782 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
4842 if (WARN_ON(!info->control.vif)) {
4970 switch (sdata->vif.type) {
5001 if (sdata->vif.type == NL80211_IFTYPE_AP && resp) {
5019 u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif *vif)
5021 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5027 if (sdata->vif.type == NL80211_IFTYPE_AP)
5029 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
5031 else if (ieee80211_vif_is_mesh(&sdata->vif))
5045 void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter)
5047 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5052 if (sdata->vif.type == NL80211_IFTYPE_AP)
5054 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC)
5056 else if (ieee80211_vif_is_mesh(&sdata->vif))
5070 bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif *vif)
5072 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5082 if (vif->type == NL80211_IFTYPE_AP) {
5088 } else if (vif->type == NL80211_IFTYPE_ADHOC) {
5097 } else if (vif->type == NL80211_IFTYPE_MESH_POINT) {
5166 struct ieee80211_vif *vif,
5175 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5213 info->control.vif = vif;
5252 struct ieee80211_vif *vif,
5261 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5269 ieee80211_beacon_update_cntdwn(vif);
5312 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5319 struct ieee80211_vif *vif,
5337 ieee80211_beacon_get_ap(hw, vif, link,
5356 struct ieee80211_vif *vif,
5372 sdata = vif_to_sdata(vif);
5385 if (sdata->vif.type == NL80211_IFTYPE_AP) {
5392 ieee80211_beacon_get_ap_ema_list(hw, vif, link,
5408 skb = ieee80211_beacon_get_ap(hw, vif, link, offs,
5413 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
5439 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5441 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
5481 ieee80211_beacon_get_finish(hw, vif, link, offs, beacon, skb,
5496 struct ieee80211_vif *vif,
5500 return __ieee80211_beacon_get(hw, vif, offs, true, link_id,
5507 struct ieee80211_vif *vif,
5511 return __ieee80211_beacon_get(hw, vif, offs, true, link_id, ema_index,
5532 struct ieee80211_vif *vif,
5537 WARN_ON(__ieee80211_beacon_get(hw, vif, NULL, true, link_id, 0,
5545 struct ieee80211_vif *vif,
5550 struct sk_buff *bcn = __ieee80211_beacon_get(hw, vif, &offs, false,
5575 shift = ieee80211_vif_get_shift(vif);
5583 struct ieee80211_vif *vif)
5588 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5590 if (sdata->vif.type != NL80211_IFTYPE_AP)
5614 struct ieee80211_vif *vif)
5618 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5620 if (sdata->vif.type != NL80211_IFTYPE_AP)
5643 struct ieee80211_vif *vif)
5647 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5649 if (sdata->vif.type != NL80211_IFTYPE_AP)
5671 struct ieee80211_vif *vif)
5678 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION))
5681 sdata = vif_to_sdata(vif);
5693 pspoll->aid = cpu_to_le16(sdata->vif.cfg.aid);
5699 memcpy(pspoll->ta, vif->addr, ETH_ALEN);
5706 struct ieee80211_vif *vif,
5709 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
5716 if (WARN_ON(vif->type != NL80211_IFTYPE_STATION))
5728 sta = sta_info_get(sdata, vif->cfg.ap_addr);
5765 memcpy(nullfunc->addr1, vif->cfg.ap_addr, ETH_ALEN);
5766 memcpy(nullfunc->addr2, vif->addr, ETH_ALEN);
5767 memcpy(nullfunc->addr3, vif->cfg.ap_addr, ETH_ALEN);
5813 void ieee80211_rts_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5822 rts->duration = ieee80211_rts_duration(hw, vif, frame_len,
5829 void ieee80211_ctstoself_get(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5838 cts->duration = ieee80211_ctstoself_duration(hw, vif,
5846 struct ieee80211_vif *vif)
5856 sdata = vif_to_sdata(vif);
5859 chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
5864 if (sdata->vif.type == NL80211_IFTYPE_AP) {
5872 } else if (ieee80211_vif_is_mesh(&sdata->vif)) {
5897 if (sdata->vif.type == NL80211_IFTYPE_AP)
5929 switch (sdata->vif.type) {
5965 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]);
5990 switch (sdata->vif.type) {
6027 if (!ieee80211_vif_is_mld(&sdata->vif)) {
6031 } else if (memcmp(sdata->vif.addr, hdr->addr2, ETH_ALEN) == 0) {
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;
6073 if (!ieee80211_vif_is_mld(&sdata->vif)) {
6076 rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
6085 !(sdata->vif.active_links & BIT(link_id)));
6143 memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN);
6151 link_conf = rcu_dereference(sdata->vif.link_conf[link_id]);
6193 memcpy(ehdr->h_source, sdata->vif.addr, ETH_ALEN);