Lines Matching defs:vif

367 	struct wil6210_vif *vif = wil->vifs[mid];
380 if (vif->wdev.iftype == NL80211_IFTYPE_MONITOR)
409 if (vif->wdev.iftype != NL80211_IFTYPE_P2P_GO &&
410 vif->wdev.iftype != NL80211_IFTYPE_AP)
426 ta, vif->wdev.iftype, ftype, skb->len);
443 struct wil6210_vif *vif;
490 vif = wil->vifs[mid];
492 if (unlikely(!vif)) {
498 ndev = vif_to_ndev(vif);
549 wil_rx_bar(wil, vif, cid, tid, seq);
803 struct wil6210_vif *vif = container_of(work,
805 struct wil6210_priv *wil = vif_to_wil(vif);
809 if (vif->ptk_rekey_state != WIL_REKEY_WAIT_M4_SENT) {
811 vif->ptk_rekey_state);
816 cid = wil_find_cid_by_idx(wil, vif->mid, 0);
824 rc = wmi_add_cipher_key(vif, 0, wil->sta[cid].addr, 0, NULL,
827 vif->ptk_rekey_state = WIL_REKEY_IDLE;
834 void wil_tx_complete_handle_eapol(struct wil6210_vif *vif, struct sk_buff *skb)
836 struct wil6210_priv *wil = vif_to_wil(vif);
837 struct wireless_dev *wdev = vif_to_wdev(vif);
849 switch (vif->ptk_rekey_state) {
854 vif->ptk_rekey_state = WIL_REKEY_IDLE;
861 vif->ptk_rekey_state);
866 q = queue_work(wil->wmi_wq, &vif->enable_tx_key_worker);
872 static void wil_rx_handle_eapol(struct wil6210_vif *vif, struct sk_buff *skb)
874 struct wil6210_priv *wil = vif_to_wil(vif);
875 struct wireless_dev *wdev = vif_to_wdev(vif);
885 if (vif->ptk_rekey_state == WIL_REKEY_IDLE)
886 vif->ptk_rekey_state = WIL_REKEY_M3_RECEIVED;
896 struct wil6210_vif *vif = ndev_to_vif(ndev);
898 struct wireless_dev *wdev = vif_to_wdev(vif);
917 } else if (wdev->iftype == NL80211_IFTYPE_AP && !vif->ap_isolate) {
924 int xmit_cid = wil_find_cid(wil, vif->mid, da);
956 wil_rx_handle_eapol(vif, skb);
1134 static int wil_vring_init_tx(struct wil6210_vif *vif, int id, int size,
1137 struct wil6210_priv *wil = vif_to_wil(vif);
1197 if (!vif->privacy)
1199 rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
1214 txdata->mid = vif->mid;
1236 static int wil_tx_vring_modify(struct wil6210_vif *vif, int ring_id, int cid,
1239 struct wil6210_priv *wil = vif_to_wil(vif);
1288 rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
1319 int wil_vring_init_bcast(struct wil6210_vif *vif, int id, int size)
1321 struct wil6210_priv *wil = vif_to_wil(vif);
1366 if (!vif->privacy)
1368 rc = wmi_call(wil, WMI_BCAST_VRING_CFG_CMDID, vif->mid,
1384 txdata->mid = vif->mid;
1401 struct wil6210_vif *vif,
1408 cid = wil_find_cid(wil, vif->mid, da);
1438 static int wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
1442 struct wil6210_vif *vif,
1458 if (!ring->va || !txdata->enabled || txdata->mid != vif->mid)
1491 struct wil6210_vif *vif,
1496 int i = vif->bcast_ring;
1550 struct wil6210_vif *vif,
1565 if (!v->va || !txdata->enabled || txdata->mid != vif->mid)
1594 if (!v2->va || txdata2->mid != vif->mid)
1610 wil_tx_ring(wil, vif, v2, skb2);
1725 static int __wil_tx_vring_tso(struct wil6210_priv *wil, struct wil6210_vif *vif,
2026 static int __wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
2041 bool mcast = (ring_index == vif->bcast_ring);
2184 static int wil_tx_ring(struct wil6210_priv *wil, struct wil6210_vif *vif,
2203 (wil, vif, ring, skb);
2227 struct wil6210_vif *vif,
2234 if (unlikely(!vif))
2239 (int)(ring - wil->ring_tx), vif->mid, check_stop,
2240 vif->net_queue_stopped);
2243 check_stop, vif->mid, vif->net_queue_stopped);
2249 if (check_stop == vif->net_queue_stopped)
2256 netif_tx_stop_all_queues(vif_to_ndev(vif));
2257 vif->net_queue_stopped = true;
2273 if (txdata->mid != vif->mid || !cur_ring->va ||
2287 netif_tx_wake_all_queues(vif_to_ndev(vif));
2288 vif->net_queue_stopped = false;
2292 void wil_update_net_queues(struct wil6210_priv *wil, struct wil6210_vif *vif,
2296 __wil_update_net_queues(wil, vif, ring, check_stop);
2300 void wil_update_net_queues_bh(struct wil6210_priv *wil, struct wil6210_vif *vif,
2304 __wil_update_net_queues(wil, vif, ring, check_stop);
2310 struct wil6210_vif *vif = ndev_to_vif(ndev);
2311 struct wil6210_priv *wil = vif_to_wil(vif);
2326 if (unlikely(!test_bit(wil_vif_fwconnected, vif->status))) {
2331 if (unlikely(vif->wdev.iftype == NL80211_IFTYPE_MONITOR)) {
2338 if (vif->wdev.iftype == NL80211_IFTYPE_STATION && !vif->pbss) {
2340 ring = wil_find_tx_ring_sta(wil, vif, skb);
2342 if (vif->pbss || wil_check_multicast_to_unicast(wil, skb))
2346 ring = wil_find_tx_bcast_2(wil, vif, skb);
2347 else if (vif->wdev.iftype == NL80211_IFTYPE_AP)
2349 ring = wil_find_tx_bcast_1(wil, vif, skb);
2354 ring = wil_find_tx_bcast_2(wil, vif, skb);
2357 ring = wil_find_tx_ucast(wil, vif, skb);
2364 rc = wil_tx_ring(wil, vif, ring, skb);
2369 wil_update_net_queues_bh(wil, vif, ring, true);
2418 int wil_tx_complete(struct wil6210_vif *vif, int ringid)
2420 struct wil6210_priv *wil = vif_to_wil(vif);
2421 struct net_device *ndev = vif_to_ndev(vif);
2507 wil_tx_complete_handle_eapol(vif, skb);
2539 wil_update_net_queues(wil, vif, vring, false);