Lines Matching refs:vif
103 struct ath6kl_vif *vif, in ath6kl_process_uapsdq() argument
107 struct ath6kl *ar = vif->ar; in ath6kl_process_uapsdq()
132 if (test_bit(WMM_ENABLED, &vif->flags)) { in ath6kl_process_uapsdq()
167 vif->fw_vif_idx, in ath6kl_process_uapsdq()
176 struct ath6kl_vif *vif, in ath6kl_process_psq() argument
181 struct ath6kl *ar = vif->ar; in ath6kl_process_psq()
204 vif->fw_vif_idx, in ath6kl_process_psq()
209 static bool ath6kl_powersave_ap(struct ath6kl_vif *vif, struct sk_buff *skb, in ath6kl_powersave_ap() argument
215 struct ath6kl *ar = vif->ar; in ath6kl_powersave_ap()
233 if (!test_bit(DTIM_EXPIRED, &vif->flags)) { in ath6kl_powersave_ap()
249 vif->fw_vif_idx, in ath6kl_powersave_ap()
265 conn = ath6kl_find_sta(vif, datap->h_dest); in ath6kl_powersave_ap()
275 vif, skb, flags); in ath6kl_powersave_ap()
278 vif, skb, flags); in ath6kl_powersave_ap()
361 struct ath6kl_vif *vif = netdev_priv(dev); in ath6kl_data_tx() local
378 if (!test_bit(CONNECTED, &vif->flags)) in ath6kl_data_tx()
388 if (vif->nw_type == AP_NETWORK) { in ath6kl_data_tx()
389 if (ath6kl_powersave_ap(vif, skb, &flags)) in ath6kl_data_tx()
408 vif->net_stats.tx_dropped++; in ath6kl_data_tx()
435 meta, vif->fw_vif_idx); in ath6kl_data_tx()
443 if ((vif->nw_type == ADHOC_NETWORK) && in ath6kl_data_tx()
444 ar->ibss_ps_enable && test_bit(CONNECTED, &vif->flags)) in ath6kl_data_tx()
449 vif->fw_vif_idx, skb, in ath6kl_data_tx()
450 0, test_bit(WMM_ENABLED, &vif->flags), &ac); in ath6kl_data_tx()
523 vif->net_stats.tx_dropped++; in ath6kl_data_tx()
524 vif->net_stats.tx_aborted_errors++; in ath6kl_data_tx()
595 struct ath6kl_vif *vif; in ath6kl_tx_queue_full() local
631 list_for_each_entry(vif, &ar->vif_list, list) { in ath6kl_tx_queue_full()
632 if (vif->nw_type == ADHOC_NETWORK || in ath6kl_tx_queue_full()
636 set_bit(NETQ_STOPPED, &vif->flags); in ath6kl_tx_queue_full()
637 netif_stop_queue(vif->ndev); in ath6kl_tx_queue_full()
648 static void ath6kl_tx_clear_node_map(struct ath6kl_vif *vif, in ath6kl_tx_clear_node_map() argument
651 struct ath6kl *ar = vif->ar; in ath6kl_tx_clear_node_map()
654 if (vif->nw_type != ADHOC_NETWORK) in ath6kl_tx_clear_node_map()
699 struct ath6kl_vif *vif; in ath6kl_tx_complete() local
759 vif = ath6kl_get_vif_by_index(ar, if_idx); in ath6kl_tx_complete()
760 if (!vif) { in ath6kl_tx_complete()
770 vif->net_stats.tx_errors++; in ath6kl_tx_complete()
786 vif->net_stats.tx_packets++; in ath6kl_tx_complete()
787 vif->net_stats.tx_bytes += skb->len; in ath6kl_tx_complete()
790 ath6kl_tx_clear_node_map(vif, eid, map_no); in ath6kl_tx_complete()
794 if (test_bit(NETQ_STOPPED, &vif->flags)) in ath6kl_tx_complete()
795 clear_bit(NETQ_STOPPED, &vif->flags); in ath6kl_tx_complete()
804 list_for_each_entry(vif, &ar->vif_list, list) { in ath6kl_tx_complete()
805 if (test_bit(CONNECTED, &vif->flags) && in ath6kl_tx_complete()
806 !flushing[vif->fw_vif_idx]) { in ath6kl_tx_complete()
808 netif_wake_queue(vif->ndev); in ath6kl_tx_complete()
1237 static void ath6kl_uapsd_trigger_frame_rx(struct ath6kl_vif *vif, in ath6kl_uapsd_trigger_frame_rx() argument
1240 struct ath6kl *ar = vif->ar; in ath6kl_uapsd_trigger_frame_rx()
1287 ath6kl_data_tx(skb, vif->ndev); in ath6kl_uapsd_trigger_frame_rx()
1299 vif->fw_vif_idx, in ath6kl_uapsd_trigger_frame_rx()
1322 struct ath6kl_vif *vif; in ath6kl_rx() local
1356 vif = ath6kl_get_vif_by_index(ar, if_idx); in ath6kl_rx()
1357 if (!vif) { in ath6kl_rx()
1366 spin_lock_bh(&vif->if_lock); in ath6kl_rx()
1368 vif->net_stats.rx_packets++; in ath6kl_rx()
1369 vif->net_stats.rx_bytes += packet->act_len; in ath6kl_rx()
1371 spin_unlock_bh(&vif->if_lock); in ath6kl_rx()
1373 skb->dev = vif->ndev; in ath6kl_rx()
1378 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); in ath6kl_rx()
1394 if (vif->nw_type != AP_NETWORK && in ath6kl_rx()
1398 vif->net_stats.rx_errors++; in ath6kl_rx()
1399 vif->net_stats.rx_length_errors++; in ath6kl_rx()
1405 if (vif->nw_type == AP_NETWORK) { in ath6kl_rx()
1428 conn = ath6kl_find_sta(vif, datap->h_source); in ath6kl_rx()
1453 ath6kl_uapsd_trigger_frame_rx(vif, conn); in ath6kl_rx()
1471 idx = vif->fw_vif_idx; in ath6kl_rx()
1488 ath6kl_data_tx(skbuff, vif->ndev); in ath6kl_rx()
1495 ath6kl_data_tx(skbuff, vif->ndev); in ath6kl_rx()
1503 vif->fw_vif_idx, in ath6kl_rx()
1507 ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_rx()
1564 if (!(vif->ndev->flags & IFF_UP)) { in ath6kl_rx()
1569 if (vif->nw_type == AP_NETWORK) { in ath6kl_rx()
1584 conn = ath6kl_find_sta(vif, datap->h_dest); in ath6kl_rx()
1595 ath6kl_data_tx(skb1, vif->ndev); in ath6kl_rx()
1606 if (vif->nw_type == AP_NETWORK) { in ath6kl_rx()
1607 conn = ath6kl_find_sta(vif, datap->h_source); in ath6kl_rx()
1612 aggr_conn = vif->aggr_cntxt->aggr_conn; in ath6kl_rx()
1621 vif->net_stats.multicast++; in ath6kl_rx()
1624 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); in ath6kl_rx()
1702 void aggr_recv_addba_req_evt(struct ath6kl_vif *vif, u8 tid_mux, u16 seq_no, in aggr_recv_addba_req_evt() argument
1712 if (vif->nw_type == AP_NETWORK) { in aggr_recv_addba_req_evt()
1714 sta = ath6kl_find_sta_by_aid(vif->ar, aid); in aggr_recv_addba_req_evt()
1718 aggr_conn = vif->aggr_cntxt->aggr_conn; in aggr_recv_addba_req_evt()
1752 void aggr_conn_init(struct ath6kl_vif *vif, struct aggr_info *aggr_info, in aggr_conn_init() argument
1759 aggr_conn->dev = vif->ndev; in aggr_conn_init()
1776 struct aggr_info *aggr_init(struct ath6kl_vif *vif) in aggr_init() argument
1793 aggr_conn_init(vif, p_aggr, p_aggr->aggr_conn); in aggr_init()
1801 void aggr_recv_delba_req_evt(struct ath6kl_vif *vif, u8 tid_mux) in aggr_recv_delba_req_evt() argument
1808 if (vif->nw_type == AP_NETWORK) { in aggr_recv_delba_req_evt()
1810 sta = ath6kl_find_sta_by_aid(vif->ar, aid); in aggr_recv_delba_req_evt()
1814 aggr_conn = vif->aggr_cntxt->aggr_conn; in aggr_recv_delba_req_evt()