Lines Matching defs:vif

323 	if (WARN_ON(arvif->vif->type != NL80211_IFTYPE_AP &&
324 arvif->vif->type != NL80211_IFTYPE_ADHOC &&
325 arvif->vif->type != NL80211_IFTYPE_MESH_POINT))
339 switch (arvif->vif->type) {
381 if (arvif->vif->type != NL80211_IFTYPE_ADHOC)
524 if (ether_addr_equal(peer->addr, arvif->vif->addr))
533 ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vif vdev %i update key %i needs update\n",
645 int ath10k_mac_vif_chan(struct ieee80211_vif *vif,
651 conf = rcu_dereference(vif->chanctx_conf);
714 struct ieee80211_vif *vif,
761 peer->vif = vif;
1508 arg.ssid = arvif->vif->bss_conf.ssid;
1509 arg.ssid_len = arvif->vif->bss_conf.ssid_len;
1562 if (arvif->vif->type != NL80211_IFTYPE_AP || !arvif->vif->p2p)
1617 struct ieee80211_vif *vif = arvif->vif;
1629 bcn = ieee80211_beacon_get_template(hw, vif, &offs);
1667 struct ieee80211_vif *vif = arvif->vif;
1678 if (ieee80211_vif_is_mesh(vif))
1681 prb = ieee80211_proberesp_get(hw, vif);
1729 if (WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def)))
1916 struct ieee80211_vif *vif = arvif->vif;
1926 if (arvif->vif->type != NL80211_IFTYPE_STATION)
1940 /* mac80211 can update vif powersave state while disconnected.
1954 vif->bss_conf.beacon_int) / 1000;
2016 struct ieee80211_vif *vif = arvif->vif;
2027 if (!vif->csa_active)
2033 if (!ieee80211_beacon_cntdwn_is_complete(vif)) {
2034 ieee80211_beacon_update_cntdwn(vif);
2046 ieee80211_csa_finish(vif);
2062 struct ieee80211_vif *vif)
2066 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2068 if (vif->type != NL80211_IFTYPE_STATION)
2071 if (!ether_addr_equal(mgmt->bssid, vif->bss_conf.bssid))
2086 struct ieee80211_vif *vif)
2089 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2099 ieee80211_beacon_loss(vif);
2122 struct ieee80211_vif *vif = arvif->vif;
2127 ieee80211_connection_loss(vif);
2135 struct ieee80211_vif *vif)
2145 if (vif->type == NL80211_IFTYPE_STATION)
2152 struct ieee80211_vif *vif,
2156 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2161 if (vif->type == NL80211_IFTYPE_STATION)
2162 aid = vif->bss_conf.aid;
2170 arg->peer_listen_intval = ath10k_peer_assoc_h_listen_intval(ar, vif);
2172 arg->peer_caps = vif->bss_conf.assoc_capability;
2176 struct ieee80211_vif *vif,
2180 struct ieee80211_bss_conf *info = &vif->bss_conf;
2188 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
2228 struct ieee80211_vif *vif,
2232 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2244 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
2290 struct ieee80211_vif *vif,
2295 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2306 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
2539 struct ieee80211_vif *vif,
2544 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2553 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
2647 struct ieee80211_vif *vif,
2651 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2714 struct ieee80211_vif *vif,
2718 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2725 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
2783 struct ieee80211_vif *vif,
2791 ath10k_peer_assoc_h_basic(ar, vif, sta, arg);
2792 ath10k_peer_assoc_h_crypto(ar, vif, sta, arg);
2793 ath10k_peer_assoc_h_rates(ar, vif, sta, arg);
2794 ath10k_peer_assoc_h_ht(ar, vif, sta, arg);
2795 ath10k_peer_assoc_h_phymode(ar, vif, sta, arg);
2796 ath10k_peer_assoc_h_vht(ar, vif, sta, arg);
2797 ath10k_peer_assoc_h_qos(ar, vif, sta, arg);
2830 struct ieee80211_vif *vif,
2833 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2896 struct ieee80211_vif *vif,
2900 struct ath10k_vif *arvif = (void *)vif->drv_priv;
2914 ap_sta = ieee80211_find_sta(vif, bss_conf->bssid);
2928 ret = ath10k_peer_assoc_prepare(ar, vif, ap_sta, &peer_arg);
2952 ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap);
2996 struct ieee80211_vif *vif)
2999 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3015 ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap);
3091 struct ieee80211_vif *vif,
3095 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3101 ret = ath10k_peer_assoc_prepare(ar, vif, sta, &peer_arg);
3162 struct ieee80211_vif *vif,
3165 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3425 struct ieee80211_vif *vif)
3428 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3513 struct ieee80211_vif *vif)
3515 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3544 struct ieee80211_vif *vif,
3552 if (!vif || vif->type == NL80211_IFTYPE_MONITOR)
3598 static bool ath10k_tx_h_use_hwcrypto(struct ieee80211_vif *vif,
3612 if (vif)
3613 return !((struct ath10k_vif *)vif->drv_priv)->nohwcrypt;
3674 struct ieee80211_vif *vif,
3678 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3681 if (vif->type != NL80211_IFTYPE_AP || !vif->p2p)
3696 struct ieee80211_vif *vif,
3706 struct ath10k_vif *arvif = (void *)vif->drv_priv;
3712 if (!ath10k_tx_h_use_hwcrypto(vif, skb))
3750 cb->vif = vif;
3851 struct ieee80211_vif *vif,
3869 ath10k_tx_h_add_p2p_noa_ie(ar, vif, skb);
3870 ath10k_tx_h_seq_no(vif, skb);
3925 struct ieee80211_vif *vif;
3980 /* It's safe to access vif and sta - conf_mutex guarantees that
3986 vif = arvif->vif;
3987 sta = ieee80211_find_sta(vif, peer_addr);
3989 vif = NULL;
3993 txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb);
3996 ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, true);
4121 else if (peer->vif)
4122 return peer->vif->txq;
4198 struct ieee80211_vif *vif = txq->vif;
4226 ath10k_mac_tx_h_fill_cb(ar, vif, txq, sta, skb, airtime);
4229 txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb);
4248 ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false);
4483 struct ieee80211_vif *vif = info->control.vif;
4496 ath10k_mac_tx_h_fill_cb(ar, vif, txq, sta, skb, airtime);
4498 txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb);
4529 ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false);
5371 struct ieee80211_vif *vif)
5374 struct ath10k_vif *arvif = (void *)vif->drv_priv;
5383 vif->driver_flags |= IEEE80211_VIF_SUPPORTS_UAPSD;
5388 ath10k_mac_txq_init(vif->txq);
5391 arvif->vif = vif;
5426 switch (vif->type) {
5435 if (vif->p2p)
5456 if (vif->p2p)
5468 /* Using vdev_id as queue number will make it very easy to do per-vif
5471 * queues for regular vif tx.
5473 vif->cab_queue = arvif->vdev_id % (IEEE80211_MAX_QUEUES - 1);
5474 for (i = 0; i < ARRAY_SIZE(vif->hw_queue); i++)
5475 vif->hw_queue[i] = arvif->vdev_id % (IEEE80211_MAX_QUEUES - 1);
5489 * DMA-coherent buffer for a lifetime of a vif and use it for all
5493 if (vif->type == NL80211_IFTYPE_ADHOC ||
5494 vif->type == NL80211_IFTYPE_MESH_POINT ||
5495 vif->type == NL80211_IFTYPE_AP) {
5537 arvif->vdev_subtype, vif->addr);
5585 if (ar->cfg_tx_chainmask && (vif->type != NL80211_IFTYPE_MONITOR)) {
5601 ret = ath10k_peer_create(ar, vif, NULL, arvif->vdev_id,
5602 vif->addr, WMI_PEER_TYPE_DEFAULT);
5611 peer = ath10k_peer_find(ar, arvif->vdev_id, vif->addr);
5614 vif->addr, arvif->vdev_id);
5677 arvif->txpower = vif->bss_conf.txpower;
5695 if (vif->type == NL80211_IFTYPE_MONITOR) {
5715 ath10k_wmi_peer_delete(ar, arvif->vdev_id, vif->addr);
5717 vif->addr);
5752 struct ieee80211_vif *vif)
5755 struct ath10k_vif *arvif = (void *)vif->drv_priv;
5779 vif->addr);
5785 vif->addr);
5812 vif->addr);
5828 if (peer->vif == vif) {
5829 ath10k_warn(ar, "found vif peer %pM entry on vdev %i after it was supposedly removed\n",
5830 vif->addr, arvif->vdev_id);
5831 peer->vif = NULL;
5842 ath10k_mac_txq_unref(ar, vif->txq);
5844 if (vif->type == NL80211_IFTYPE_MONITOR) {
5859 ath10k_mac_txq_unref(ar, vif->txq);
5899 struct ieee80211_vif *vif,
5902 struct ath10k_vif *arvif = (void *)vif->drv_priv;
5913 basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1;
5930 struct ieee80211_vif *vif,
5935 struct ath10k_vif *arvif = (void *)vif->drv_priv;
5946 ath10k_control_ibss(arvif, info, vif->addr);
5979 if (ieee80211_vif_is_mesh(vif)) {
6010 vif->type == NL80211_IFTYPE_AP) {
6097 ath10k_bss_assoc(hw, vif, info);
6100 ath10k_bss_disassoc(hw, vif);
6115 arvif->ps = vif->bss_conf.ps;
6124 !ath10k_mac_vif_chan(arvif->vif, &def)) {
6126 mcast_rate = vif->bss_conf.mcast_rate[band];
6130 rateidx = ffs(vif->bss_conf.basic_rates) - 1;
6166 !ath10k_mac_vif_chan(arvif->vif, &def))
6167 ath10k_recalculate_mgmt_rate(ar, vif, &def);
6196 struct ieee80211_vif *sta_vif = arsta->arvif->vif;
6203 struct ieee80211_vif *vif)
6207 data.curr_vif = vif;
6216 struct ieee80211_vif *vif,
6220 struct ath10k_vif *arvif = (void *)vif->drv_priv;
6229 if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) {
6320 struct ieee80211_vif *vif)
6341 * frames with multi-vif APs. This is not required for main firmware
6346 * FIXME: It remains unknown if this is required for multi-vif STA
6374 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
6378 struct ath10k_vif *arvif = (void *)vif->drv_priv;
6411 peer_addr = vif->bss_conf.bssid;
6413 peer_addr = vif->addr;
6457 if (vif->type == NL80211_IFTYPE_ADHOC &&
6482 if (is_wep && !sta && vif->type == NL80211_IFTYPE_STATION) {
6529 struct ieee80211_vif *vif,
6533 struct ath10k_vif *arvif = (void *)vif->drv_priv;
6580 if (WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def)))
6652 err = ath10k_station_assoc(ar, arvif->vif, sta, true);
6694 struct ieee80211_vif *vif,
6698 struct ath10k_vif *arvif = (void *)vif->drv_priv;
6853 struct ieee80211_vif *vif,
6864 if (WARN_ON(ath10k_mac_vif_chan(vif, &def)))
6906 struct ieee80211_vif *vif, u32 changed,
6909 struct ath10k_vif *arvif = (void *)vif->drv_priv;
7041 struct ieee80211_vif *vif,
7088 ret = ath10k_mac_tid_bitrate_config(ar, vif, sta,
7108 ret = ath10k_mac_set_tid_config(ar, sta, vif, changed, arg);
7295 struct ieee80211_vif *sta_vif = arsta->arvif->vif;
7304 struct ieee80211_vif *vif,
7310 struct ath10k_vif *arvif = (void *)vif->drv_priv;
7351 num_tdls_stations = ath10k_mac_tdls_vif_stations_count(hw, vif);
7381 ret = ath10k_peer_create(ar, vif, sta, arvif->vdev_id,
7396 vif->addr, arvif->vdev_id);
7496 if (ath10k_mac_tdls_vif_stations_count(hw, vif))
7499 /* This was the last tdls peer in current vif */
7508 (vif->type == NL80211_IFTYPE_AP ||
7509 vif->type == NL80211_IFTYPE_MESH_POINT ||
7510 vif->type == NL80211_IFTYPE_ADHOC)) {
7517 ret = ath10k_station_assoc(ar, vif, sta, false);
7530 ret = ath10k_station_assoc(ar, vif, sta, false);
7544 (vif->type == NL80211_IFTYPE_AP ||
7545 vif->type == NL80211_IFTYPE_MESH_POINT ||
7546 vif->type == NL80211_IFTYPE_ADHOC)) {
7553 ret = ath10k_station_disassoc(ar, vif, sta);
7563 static int ath10k_conf_tx_uapsd(struct ath10k *ar, struct ieee80211_vif *vif,
7566 struct ath10k_vif *arvif = (void *)vif->drv_priv;
7670 struct ieee80211_vif *vif, u16 ac,
7674 struct ath10k_vif *arvif = (void *)vif->drv_priv;
7730 ret = ath10k_conf_tx_uapsd(ar, vif, ac, params->uapsd);
7740 struct ieee80211_vif *vif,
7746 struct ath10k_vif *arvif = (void *)vif->drv_priv;
7753 if (ath10k_mac_tdls_vif_stations_count(hw, vif) > 0) {
7828 struct ieee80211_vif *vif)
7921 static void ath10k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
7929 if (vif && vif->type == NL80211_IFTYPE_STATION) {
8236 struct ieee80211_vif *vif,
8239 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8255 if (ath10k_mac_vif_chan(vif, &def))
8305 * single vht rate, and don't update vif birate_mask, as
8346 struct ieee80211_vif *vif,
8352 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8432 struct ieee80211_vif *vif, s64 tsf_offset)
8435 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8456 struct ieee80211_vif *vif,
8460 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8507 * on a linked list now. Doing a lookup peer -> vif -> chanctx for each
8558 arvif = (void *)vifs[i].vif->drv_priv;
8591 arvif = (void *)vifs[i].vif->drv_priv;
8683 struct ieee80211_vif *vif)
8687 if (rcu_access_pointer(vif->chanctx_conf) != arg->ctx)
8695 struct ieee80211_vif *vif)
8700 ctx = rcu_access_pointer(vif->chanctx_conf);
8707 arg->vifs[arg->next_vif].vif = vif;
8772 struct ieee80211_vif *vif,
8776 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8793 arvif->vdev_id, vif->addr,
8807 if (vif->type == NL80211_IFTYPE_MONITOR) {
8808 ret = ath10k_wmi_vdev_up(ar, arvif->vdev_id, 0, vif->addr);
8851 struct ieee80211_vif *vif,
8855 struct ath10k_vif *arvif = (void *)vif->drv_priv;
8866 if (vif->type == NL80211_IFTYPE_MONITOR) {
8907 struct ieee80211_vif *vif,
9146 struct ieee80211_vif *vif,
9187 struct ieee80211_vif *vif,
9192 struct ath10k_vif *arvif = (void *)vif->drv_priv;
9204 ret = ath10k_mac_parse_tid_config(ar, sta, vif,
9216 data.curr_vif = vif;
9228 struct ieee80211_vif *vif,
9232 struct ath10k_vif *arvif = (void *)vif->drv_priv;
9246 data.curr_vif = vif;
9623 struct ieee80211_vif *vif)
9626 struct ath10k_vif *arvif = (void *)vif->drv_priv;
9973 ar->hw->wiphy->tid_config_support.vif |=
9983 ar->hw->wiphy->tid_config_support.vif |=
9988 ar->hw->wiphy->tid_config_support.vif;