Lines Matching refs:msdu

1862 static void ath11k_dp_rx_h_csum_offload(struct ath11k *ar, struct sk_buff *msdu)  in ath11k_dp_rx_h_csum_offload()  argument
1864 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_csum_offload()
1872 msdu->ip_summed = (ip_csum_fail || l4_csum_fail) ? in ath11k_dp_rx_h_csum_offload()
1957 struct sk_buff *msdu, in ath11k_dp_rx_h_undecap_nwifi() argument
1962 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_undecap_nwifi()
1972 hdr = (struct ieee80211_hdr *)msdu->data; in ath11k_dp_rx_h_undecap_nwifi()
1976 skb_pull(msdu, ieee80211_hdrlen(hdr->frame_control)); in ath11k_dp_rx_h_undecap_nwifi()
2011 memcpy(skb_push(msdu, in ath11k_dp_rx_h_undecap_nwifi()
2018 memcpy(skb_push(msdu, in ath11k_dp_rx_h_undecap_nwifi()
2021 memcpy(skb_push(msdu, hdr_len), decap_hdr, hdr_len); in ath11k_dp_rx_h_undecap_nwifi()
2025 memcpy(skb_push(msdu, hdr_len), hdr, hdr_len); in ath11k_dp_rx_h_undecap_nwifi()
2030 hdr = (struct ieee80211_hdr *)msdu->data; in ath11k_dp_rx_h_undecap_nwifi()
2035 static void ath11k_dp_rx_h_undecap_raw(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_undecap_raw() argument
2040 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_undecap_raw()
2051 skb_trim(msdu, msdu->len - FCS_LEN); in ath11k_dp_rx_h_undecap_raw()
2056 hdr = (void *)msdu->data; in ath11k_dp_rx_h_undecap_raw()
2060 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_raw()
2063 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_raw()
2068 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_raw()
2073 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_raw()
2081 skb_trim(msdu, msdu->len - IEEE80211_CCMP_MIC_LEN); in ath11k_dp_rx_h_undecap_raw()
2088 memmove((void *)msdu->data + crypto_len, in ath11k_dp_rx_h_undecap_raw()
2089 (void *)msdu->data, hdr_len); in ath11k_dp_rx_h_undecap_raw()
2090 skb_pull(msdu, crypto_len); in ath11k_dp_rx_h_undecap_raw()
2095 struct sk_buff *msdu, in ath11k_dp_rx_h_find_rfc1042() argument
2098 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_find_rfc1042()
2122 struct sk_buff *msdu, in ath11k_dp_rx_h_undecap_eth() argument
2134 rfc1042 = ath11k_dp_rx_h_find_rfc1042(ar, msdu, enctype); in ath11k_dp_rx_h_undecap_eth()
2139 eth = (struct ethhdr *)msdu->data; in ath11k_dp_rx_h_undecap_eth()
2142 skb_pull(msdu, sizeof(struct ethhdr)); in ath11k_dp_rx_h_undecap_eth()
2145 memcpy(skb_push(msdu, sizeof(struct ath11k_dp_rfc1042_hdr)), rfc1042, in ath11k_dp_rx_h_undecap_eth()
2153 memcpy(skb_push(msdu, in ath11k_dp_rx_h_undecap_eth()
2159 memcpy(skb_push(msdu, hdr_len), hdr, hdr_len); in ath11k_dp_rx_h_undecap_eth()
2164 hdr = (struct ieee80211_hdr *)msdu->data; in ath11k_dp_rx_h_undecap_eth()
2169 static void ath11k_dp_rx_h_undecap(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_undecap() argument
2184 ath11k_dp_rx_h_undecap_nwifi(ar, msdu, first_hdr, in ath11k_dp_rx_h_undecap()
2188 ath11k_dp_rx_h_undecap_raw(ar, msdu, enctype, status, in ath11k_dp_rx_h_undecap()
2192 ehdr = (struct ethhdr *)msdu->data; in ath11k_dp_rx_h_undecap()
2196 ATH11K_SKB_RXCB(msdu)->is_eapol = true; in ath11k_dp_rx_h_undecap()
2197 ath11k_dp_rx_h_undecap_eth(ar, msdu, first_hdr, in ath11k_dp_rx_h_undecap()
2205 if (ATH11K_SKB_RXCB(msdu)->is_mcbc && decrypted) in ath11k_dp_rx_h_undecap()
2206 ath11k_dp_rx_h_undecap_eth(ar, msdu, first_hdr, in ath11k_dp_rx_h_undecap()
2216 ath11k_dp_rx_h_find_peer(struct ath11k_base *ab, struct sk_buff *msdu) in ath11k_dp_rx_h_find_peer() argument
2218 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_find_peer()
2239 struct sk_buff *msdu, in ath11k_dp_rx_h_mpdu() argument
2253 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_mpdu()
2263 peer = ath11k_dp_rx_h_find_peer(ar->ab, msdu); in ath11k_dp_rx_h_mpdu()
2302 ath11k_dp_rx_h_csum_offload(ar, msdu); in ath11k_dp_rx_h_mpdu()
2303 ath11k_dp_rx_h_undecap(ar, msdu, rx_desc, in ath11k_dp_rx_h_mpdu()
2311 hdr = (void *)msdu->data; in ath11k_dp_rx_h_mpdu()
2434 struct sk_buff *msdu, in ath11k_dp_rx_deliver_msdu() argument
2446 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_deliver_msdu()
2454 he = skb_push(msdu, sizeof(known)); in ath11k_dp_rx_deliver_msdu()
2463 peer = ath11k_dp_rx_h_find_peer(ar->ab, msdu); in ath11k_dp_rx_deliver_msdu()
2470 msdu, in ath11k_dp_rx_deliver_msdu()
2471 msdu->len, in ath11k_dp_rx_deliver_msdu()
2493 msdu->data, msdu->len); in ath11k_dp_rx_deliver_msdu()
2495 rx_status = IEEE80211_SKB_RXCB(msdu); in ath11k_dp_rx_deliver_msdu()
2509 ieee80211_rx_napi(ar->hw, pubsta, msdu, napi); in ath11k_dp_rx_deliver_msdu()
2513 struct sk_buff *msdu, in ath11k_dp_rx_process_msdu() argument
2528 last_buf = ath11k_dp_rx_get_msdu_last_buf(msdu_list, msdu); in ath11k_dp_rx_process_msdu()
2536 rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_process_msdu()
2551 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_process_msdu()
2557 skb_pull(msdu, hal_rx_desc_sz); in ath11k_dp_rx_process_msdu()
2569 skb_put(msdu, hal_rx_desc_sz + l3_pad_bytes + msdu_len); in ath11k_dp_rx_process_msdu()
2570 skb_pull(msdu, hal_rx_desc_sz + l3_pad_bytes); in ath11k_dp_rx_process_msdu()
2573 msdu, last_buf, in ath11k_dp_rx_process_msdu()
2583 ath11k_dp_rx_h_mpdu(ar, msdu, rx_desc, rx_status); in ath11k_dp_rx_process_msdu()
2598 struct sk_buff *msdu; in ath11k_dp_rx_process_received_packets() local
2617 while ((msdu = __skb_dequeue(msdu_list))) { in ath11k_dp_rx_process_received_packets()
2618 ret = ath11k_dp_rx_process_msdu(ar, msdu, msdu_list, &rx_status); in ath11k_dp_rx_process_received_packets()
2622 dev_kfree_skb_any(msdu); in ath11k_dp_rx_process_received_packets()
2626 ath11k_dp_rx_deliver_msdu(ar, napi, msdu, &rx_status); in ath11k_dp_rx_process_received_packets()
2640 struct sk_buff *msdu; in ath11k_dp_process_rx() local
2671 msdu = idr_find(&rx_ring->bufs_idr, buf_id); in ath11k_dp_process_rx()
2672 if (unlikely(!msdu)) { in ath11k_dp_process_rx()
2682 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_process_rx()
2684 msdu->len + skb_tailroom(msdu), in ath11k_dp_process_rx()
2693 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx()
2712 __skb_queue_tail(&msdu_list[mac_id], msdu); in ath11k_dp_process_rx()
3187 struct sk_buff *msdu) in ath11k_dp_rx_h_verify_tkip_mic() argument
3189 struct hal_rx_desc *rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_h_verify_tkip_mic()
3190 struct ieee80211_rx_status *rxs = IEEE80211_SKB_RXCB(msdu); in ath11k_dp_rx_h_verify_tkip_mic()
3204 hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz); in ath11k_dp_rx_h_verify_tkip_mic()
3216 data = msdu->data + head_len; in ath11k_dp_rx_h_verify_tkip_mic()
3217 data_len = msdu->len - head_len - tail_len; in ath11k_dp_rx_h_verify_tkip_mic()
3227 (ATH11K_SKB_RXCB(msdu))->is_first_msdu = true; in ath11k_dp_rx_h_verify_tkip_mic()
3228 (ATH11K_SKB_RXCB(msdu))->is_last_msdu = true; in ath11k_dp_rx_h_verify_tkip_mic()
3232 skb_pull(msdu, hal_rx_desc_sz); in ath11k_dp_rx_h_verify_tkip_mic()
3235 ath11k_dp_rx_h_undecap(ar, msdu, rx_desc, in ath11k_dp_rx_h_verify_tkip_mic()
3237 ieee80211_rx(ar->hw, msdu); in ath11k_dp_rx_h_verify_tkip_mic()
3241 static void ath11k_dp_rx_h_undecap_frag(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_undecap_frag() argument
3252 hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz); in ath11k_dp_rx_h_undecap_frag()
3255 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_frag()
3259 skb_trim(msdu, msdu->len - in ath11k_dp_rx_h_undecap_frag()
3266 memmove((void *)msdu->data + hal_rx_desc_sz + crypto_len, in ath11k_dp_rx_h_undecap_frag()
3267 (void *)msdu->data + hal_rx_desc_sz, hdr_len); in ath11k_dp_rx_h_undecap_frag()
3268 skb_pull(msdu, crypto_len); in ath11k_dp_rx_h_undecap_frag()
3537 struct sk_buff *msdu, in ath11k_dp_rx_frag_h_mpdu() argument
3552 rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_frag_h_mpdu()
3556 frag_no = ath11k_dp_rx_h_mpdu_start_frag_no(ar->ab, msdu); in ath11k_dp_rx_frag_h_mpdu()
3557 more_frags = ath11k_dp_rx_h_mpdu_start_more_frags(ar->ab, msdu); in ath11k_dp_rx_frag_h_mpdu()
3601 __skb_queue_tail(&rx_tid->rx_frags, msdu); in ath11k_dp_rx_frag_h_mpdu()
3603 ath11k_dp_rx_h_sort_frags(ar, &rx_tid->rx_frags, msdu); in ath11k_dp_rx_frag_h_mpdu()
3665 struct sk_buff *msdu; in ath11k_dp_process_rx_err_buf() local
3673 msdu = idr_find(&rx_ring->bufs_idr, buf_id); in ath11k_dp_process_rx_err_buf()
3674 if (!msdu) { in ath11k_dp_process_rx_err_buf()
3684 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_process_rx_err_buf()
3686 msdu->len + skb_tailroom(msdu), in ath11k_dp_process_rx_err_buf()
3690 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx_err_buf()
3696 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx_err_buf()
3701 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx_err_buf()
3705 rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_process_rx_err_buf()
3714 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx_err_buf()
3718 skb_put(msdu, hal_rx_desc_sz + msdu_len); in ath11k_dp_process_rx_err_buf()
3720 if (ath11k_dp_rx_frag_h_mpdu(ar, msdu, ring_desc)) { in ath11k_dp_process_rx_err_buf()
3721 dev_kfree_skb_any(msdu); in ath11k_dp_process_rx_err_buf()
3867 static int ath11k_dp_rx_h_null_q_desc(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_null_q_desc() argument
3872 struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_h_null_q_desc()
3875 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_null_q_desc()
3908 skb_pull(msdu, hal_rx_desc_sz); in ath11k_dp_rx_h_null_q_desc()
3915 skb_put(msdu, hal_rx_desc_sz + l3pad_bytes + msdu_len); in ath11k_dp_rx_h_null_q_desc()
3916 skb_pull(msdu, hal_rx_desc_sz + l3pad_bytes); in ath11k_dp_rx_h_null_q_desc()
3920 ath11k_dp_rx_h_mpdu(ar, msdu, desc, status); in ath11k_dp_rx_h_null_q_desc()
3931 static bool ath11k_dp_rx_h_reo_err(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_reo_err() argument
3935 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_reo_err()
3942 if (ath11k_dp_rx_h_null_q_desc(ar, msdu, status, msdu_list)) in ath11k_dp_rx_h_reo_err()
3962 static void ath11k_dp_rx_h_tkip_mic_err(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_tkip_mic_err() argument
3966 struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_h_tkip_mic_err()
3968 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_tkip_mic_err()
3976 skb_put(msdu, hal_rx_desc_sz + l3pad_bytes + msdu_len); in ath11k_dp_rx_h_tkip_mic_err()
3977 skb_pull(msdu, hal_rx_desc_sz + l3pad_bytes); in ath11k_dp_rx_h_tkip_mic_err()
3984 ath11k_dp_rx_h_undecap(ar, msdu, desc, in ath11k_dp_rx_h_tkip_mic_err()
3988 static bool ath11k_dp_rx_h_rxdma_err(struct ath11k *ar, struct sk_buff *msdu, in ath11k_dp_rx_h_rxdma_err() argument
3991 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_h_rxdma_err()
3998 ath11k_dp_rx_h_tkip_mic_err(ar, msdu, status); in ath11k_dp_rx_h_rxdma_err()
4013 struct sk_buff *msdu, in ath11k_dp_rx_wbm_err() argument
4016 struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_wbm_err()
4022 drop = ath11k_dp_rx_h_reo_err(ar, msdu, &rxs, msdu_list); in ath11k_dp_rx_wbm_err()
4025 drop = ath11k_dp_rx_h_rxdma_err(ar, msdu, &rxs); in ath11k_dp_rx_wbm_err()
4033 dev_kfree_skb_any(msdu); in ath11k_dp_rx_wbm_err()
4037 ath11k_dp_rx_deliver_msdu(ar, napi, msdu, &rxs); in ath11k_dp_rx_wbm_err()
4048 struct sk_buff *msdu; in ath11k_dp_rx_process_wbm_err() local
4086 msdu = idr_find(&rx_ring->bufs_idr, buf_id); in ath11k_dp_rx_process_wbm_err()
4087 if (!msdu) { in ath11k_dp_rx_process_wbm_err()
4097 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_process_wbm_err()
4099 msdu->len + skb_tailroom(msdu), in ath11k_dp_rx_process_wbm_err()
4108 dev_kfree_skb_any(msdu); in ath11k_dp_rx_process_wbm_err()
4114 rxcb->rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_process_wbm_err()
4115 __skb_queue_tail(&msdu_list[mac_id], msdu); in ath11k_dp_rx_process_wbm_err()
4150 while ((msdu = __skb_dequeue(&msdu_list[i])) != NULL) in ath11k_dp_rx_process_wbm_err()
4151 ath11k_dp_rx_wbm_err(ar, napi, msdu, &msdu_list[i]); in ath11k_dp_rx_process_wbm_err()
4610 struct sk_buff *msdu = NULL, *last = NULL; in ath11k_dp_rx_mon_mpdu_pop() local
4688 msdu = idr_find(&rx_ring->bufs_idr, buf_id); in ath11k_dp_rx_mon_mpdu_pop()
4690 if (!msdu) { in ath11k_dp_rx_mon_mpdu_pop()
4695 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_mon_mpdu_pop()
4698 msdu->len + in ath11k_dp_rx_mon_mpdu_pop()
4699 skb_tailroom(msdu), in ath11k_dp_rx_mon_mpdu_pop()
4706 i, msdu, *ppdu_id); in ath11k_dp_rx_mon_mpdu_pop()
4707 dev_kfree_skb_any(msdu); in ath11k_dp_rx_mon_mpdu_pop()
4708 msdu = NULL; in ath11k_dp_rx_mon_mpdu_pop()
4712 rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_mon_mpdu_pop()
4720 dev_kfree_skb_any(msdu); in ath11k_dp_rx_mon_mpdu_pop()
4721 msdu = NULL; in ath11k_dp_rx_mon_mpdu_pop()
4734 dev_kfree_skb_any(msdu); in ath11k_dp_rx_mon_mpdu_pop()
4735 msdu = NULL; in ath11k_dp_rx_mon_mpdu_pop()
4748 ath11k_dp_pkt_set_pktlen(msdu, rx_buf_size); in ath11k_dp_rx_mon_mpdu_pop()
4751 *head_msdu = msdu; in ath11k_dp_rx_mon_mpdu_pop()
4753 last->next = msdu; in ath11k_dp_rx_mon_mpdu_pop()
4755 last = msdu; in ath11k_dp_rx_mon_mpdu_pop()
4788 *tail_msdu = msdu; in ath11k_dp_rx_mon_mpdu_pop()
4796 static void ath11k_dp_rx_msdus_set_payload(struct ath11k *ar, struct sk_buff *msdu) in ath11k_dp_rx_msdus_set_payload() argument
4802 (struct hal_rx_desc *)msdu->data); in ath11k_dp_rx_msdus_set_payload()
4803 skb_pull(msdu, rx_pkt_offset + l2_hdr_offset); in ath11k_dp_rx_msdus_set_payload()
4813 struct sk_buff *msdu, *prev_buf; in ath11k_dp_rx_mon_merg_msdus() local
4842 msdu = head_msdu->next; in ath11k_dp_rx_mon_merg_msdus()
4844 while (msdu) { in ath11k_dp_rx_mon_merg_msdus()
4845 ath11k_dp_rx_msdus_set_payload(ar, msdu); in ath11k_dp_rx_mon_merg_msdus()
4847 prev_buf = msdu; in ath11k_dp_rx_mon_merg_msdus()
4848 msdu = msdu->next; in ath11k_dp_rx_mon_merg_msdus()
4866 msdu = head_msdu; in ath11k_dp_rx_mon_merg_msdus()
4868 while (msdu) { in ath11k_dp_rx_mon_merg_msdus()
4869 ath11k_dp_rx_msdus_set_payload(ar, msdu); in ath11k_dp_rx_mon_merg_msdus()
4871 dest = skb_push(msdu, sizeof(__le16)); in ath11k_dp_rx_mon_merg_msdus()
4876 prev_buf = msdu; in ath11k_dp_rx_mon_merg_msdus()
4877 msdu = msdu->next; in ath11k_dp_rx_mon_merg_msdus()
5257 struct sk_buff *msdu = NULL, *last = NULL; in ath11k_dp_rx_full_mon_mpdu_pop() local
5317 msdu = idr_find(&rx_ring->bufs_idr, buf_id); in ath11k_dp_rx_full_mon_mpdu_pop()
5318 if (!msdu) { in ath11k_dp_rx_full_mon_mpdu_pop()
5328 rxcb = ATH11K_SKB_RXCB(msdu); in ath11k_dp_rx_full_mon_mpdu_pop()
5331 msdu->len + in ath11k_dp_rx_full_mon_mpdu_pop()
5332 skb_tailroom(msdu), in ath11k_dp_rx_full_mon_mpdu_pop()
5339 i, msdu, sw_mon_entries->ppdu_id); in ath11k_dp_rx_full_mon_mpdu_pop()
5340 dev_kfree_skb_any(msdu); in ath11k_dp_rx_full_mon_mpdu_pop()
5345 rx_desc = (struct hal_rx_desc *)msdu->data; in ath11k_dp_rx_full_mon_mpdu_pop()
5353 dev_kfree_skb_any(msdu); in ath11k_dp_rx_full_mon_mpdu_pop()
5354 msdu = NULL; in ath11k_dp_rx_full_mon_mpdu_pop()
5366 ath11k_dp_pkt_set_pktlen(msdu, rx_buf_size); in ath11k_dp_rx_full_mon_mpdu_pop()
5369 *head_msdu = msdu; in ath11k_dp_rx_full_mon_mpdu_pop()
5371 last->next = msdu; in ath11k_dp_rx_full_mon_mpdu_pop()
5373 last = msdu; in ath11k_dp_rx_full_mon_mpdu_pop()
5397 *tail_msdu = msdu; in ath11k_dp_rx_full_mon_mpdu_pop()