Lines Matching refs:msdu

2010 static void ath12k_dp_rx_h_csum_offload(struct sk_buff *msdu,  in ath12k_dp_rx_h_csum_offload()  argument
2013 msdu->ip_summed = (rx_info->ip_csum_fail || rx_info->l4_csum_fail) ? in ath12k_dp_rx_h_csum_offload()
2097 struct sk_buff *msdu, in ath12k_dp_rx_h_undecap_nwifi() argument
2102 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_undecap_nwifi()
2110 hdr = (struct ieee80211_hdr *)msdu->data; in ath12k_dp_rx_h_undecap_nwifi()
2112 skb_pull(msdu, hdr_len); in ath12k_dp_rx_h_undecap_nwifi()
2132 crypto_hdr = skb_push(msdu, ath12k_dp_rx_crypto_param_len(ar, enctype)); in ath12k_dp_rx_h_undecap_nwifi()
2138 memcpy(skb_push(msdu, in ath12k_dp_rx_h_undecap_nwifi()
2141 memcpy(skb_push(msdu, hdr_len), decap_hdr, hdr_len); in ath12k_dp_rx_h_undecap_nwifi()
2144 static void ath12k_dp_rx_h_undecap_raw(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_undecap_raw() argument
2149 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_undecap_raw()
2160 skb_trim(msdu, msdu->len - FCS_LEN); in ath12k_dp_rx_h_undecap_raw()
2165 hdr = (void *)msdu->data; in ath12k_dp_rx_h_undecap_raw()
2169 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_raw()
2172 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_raw()
2177 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_raw()
2182 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_raw()
2190 skb_trim(msdu, msdu->len - IEEE80211_CCMP_MIC_LEN); in ath12k_dp_rx_h_undecap_raw()
2197 memmove(msdu->data + crypto_len, msdu->data, hdr_len); in ath12k_dp_rx_h_undecap_raw()
2198 skb_pull(msdu, crypto_len); in ath12k_dp_rx_h_undecap_raw()
2203 struct sk_buff *msdu, in ath12k_get_dot11_hdr_from_rx_desc() argument
2221 crypto_hdr = skb_push(msdu, crypto_len); in ath12k_get_dot11_hdr_from_rx_desc()
2225 skb_push(msdu, hdr_len); in ath12k_get_dot11_hdr_from_rx_desc()
2226 memcpy(msdu->data, &hdr, min(hdr_len, sizeof(hdr))); in ath12k_get_dot11_hdr_from_rx_desc()
2233 struct ieee80211_hdr *qos_ptr = (struct ieee80211_hdr *)msdu->data; in ath12k_get_dot11_hdr_from_rx_desc()
2244 struct sk_buff *msdu, in ath12k_dp_rx_h_undecap_eth() argument
2252 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_undecap_eth()
2255 eth = (struct ethhdr *)msdu->data; in ath12k_dp_rx_h_undecap_eth()
2259 skb_pull(msdu, sizeof(*eth)); in ath12k_dp_rx_h_undecap_eth()
2260 memcpy(skb_push(msdu, sizeof(rfc)), &rfc, in ath12k_dp_rx_h_undecap_eth()
2262 ath12k_get_dot11_hdr_from_rx_desc(ar, msdu, rxcb, status, enctype); in ath12k_dp_rx_h_undecap_eth()
2267 hdr = (struct ieee80211_hdr *)msdu->data; in ath12k_dp_rx_h_undecap_eth()
2272 static void ath12k_dp_rx_h_undecap(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_undecap() argument
2286 ath12k_dp_rx_h_undecap_nwifi(ar, msdu, enctype, status); in ath12k_dp_rx_h_undecap()
2289 ath12k_dp_rx_h_undecap_raw(ar, msdu, enctype, status, in ath12k_dp_rx_h_undecap()
2293 ehdr = (struct ethhdr *)msdu->data; in ath12k_dp_rx_h_undecap()
2297 ATH12K_SKB_RXCB(msdu)->is_eapol = true; in ath12k_dp_rx_h_undecap()
2298 ath12k_dp_rx_h_undecap_eth(ar, msdu, enctype, status); in ath12k_dp_rx_h_undecap()
2305 if (ATH12K_SKB_RXCB(msdu)->is_mcbc && decrypted) in ath12k_dp_rx_h_undecap()
2306 ath12k_dp_rx_h_undecap_eth(ar, msdu, enctype, status); in ath12k_dp_rx_h_undecap()
2315 ath12k_dp_rx_h_find_peer(struct ath12k_base *ab, struct sk_buff *msdu, in ath12k_dp_rx_h_find_peer() argument
2318 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_find_peer()
2336 struct sk_buff *msdu, in ath12k_dp_rx_h_mpdu() argument
2350 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_mpdu()
2357 peer = ath12k_dp_rx_h_find_peer(ar->ab, msdu, rx_info); in ath12k_dp_rx_h_mpdu()
2400 ath12k_dp_rx_h_csum_offload(msdu, rx_info); in ath12k_dp_rx_h_mpdu()
2401 ath12k_dp_rx_h_undecap(ar, msdu, rx_desc, in ath12k_dp_rx_h_mpdu()
2408 hdr = (void *)msdu->data; in ath12k_dp_rx_h_mpdu()
2563 struct sk_buff *msdu, in ath12k_dp_rx_deliver_msdu() argument
2570 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_deliver_msdu()
2577 peer = ath12k_dp_rx_h_find_peer(ab, msdu, rx_info); in ath12k_dp_rx_deliver_msdu()
2590 msdu, in ath12k_dp_rx_deliver_msdu()
2591 msdu->len, in ath12k_dp_rx_deliver_msdu()
2615 msdu->data, msdu->len); in ath12k_dp_rx_deliver_msdu()
2617 rx_status = IEEE80211_SKB_RXCB(msdu); in ath12k_dp_rx_deliver_msdu()
2631 ieee80211_rx_napi(ath12k_ar_to_hw(ar), pubsta, msdu, napi); in ath12k_dp_rx_deliver_msdu()
2636 struct sk_buff *msdu) in ath12k_dp_rx_check_nwifi_hdr_len_valid() argument
2646 hdr = (struct ieee80211_hdr *)msdu->data; in ath12k_dp_rx_check_nwifi_hdr_len_valid()
2658 struct sk_buff *msdu, in ath12k_dp_rx_process_msdu() argument
2671 last_buf = ath12k_dp_rx_get_msdu_last_buf(msdu_list, msdu); in ath12k_dp_rx_process_msdu()
2679 rx_desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_process_msdu()
2687 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_msdu()
2693 skb_pull(msdu, hal_rx_desc_sz); in ath12k_dp_rx_process_msdu()
2702 skb_put(msdu, hal_rx_desc_sz + l3_pad_bytes + msdu_len); in ath12k_dp_rx_process_msdu()
2703 skb_pull(msdu, hal_rx_desc_sz + l3_pad_bytes); in ath12k_dp_rx_process_msdu()
2706 msdu, last_buf, in ath12k_dp_rx_process_msdu()
2715 if (unlikely(!ath12k_dp_rx_check_nwifi_hdr_len_valid(ab, rx_desc, msdu))) { in ath12k_dp_rx_process_msdu()
2722 ath12k_dp_rx_h_mpdu(ar, msdu, rx_desc, rx_info); in ath12k_dp_rx_process_msdu()
2740 struct sk_buff *msdu; in ath12k_dp_rx_process_received_packets() local
2756 while ((msdu = __skb_dequeue(msdu_list))) { in ath12k_dp_rx_process_received_packets()
2757 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_received_packets()
2765 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_received_packets()
2770 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_received_packets()
2774 ret = ath12k_dp_rx_process_msdu(ar, msdu, msdu_list, &rx_info); in ath12k_dp_rx_process_received_packets()
2778 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_received_packets()
2782 ath12k_dp_rx_deliver_msdu(ar, napi, msdu, &rx_info); in ath12k_dp_rx_process_received_packets()
2828 struct sk_buff *msdu; in ath12k_dp_rx_process() local
2884 msdu = desc_info->skb; in ath12k_dp_rx_process()
2889 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process()
2891 msdu->len + skb_tailroom(msdu), in ath12k_dp_rx_process()
2901 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process()
2921 __skb_queue_tail(&msdu_list, msdu); in ath12k_dp_rx_process()
3070 struct sk_buff *msdu) in ath12k_dp_rx_h_verify_tkip_mic() argument
3073 struct hal_rx_desc *rx_desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_h_verify_tkip_mic()
3074 struct ieee80211_rx_status *rxs = IEEE80211_SKB_RXCB(msdu); in ath12k_dp_rx_h_verify_tkip_mic()
3091 hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz); in ath12k_dp_rx_h_verify_tkip_mic()
3103 data = msdu->data + head_len; in ath12k_dp_rx_h_verify_tkip_mic()
3104 data_len = msdu->len - head_len - tail_len; in ath12k_dp_rx_h_verify_tkip_mic()
3114 (ATH12K_SKB_RXCB(msdu))->is_first_msdu = true; in ath12k_dp_rx_h_verify_tkip_mic()
3115 (ATH12K_SKB_RXCB(msdu))->is_last_msdu = true; in ath12k_dp_rx_h_verify_tkip_mic()
3121 skb_pull(msdu, hal_rx_desc_sz); in ath12k_dp_rx_h_verify_tkip_mic()
3123 if (unlikely(!ath12k_dp_rx_check_nwifi_hdr_len_valid(ab, rx_desc, msdu))) in ath12k_dp_rx_h_verify_tkip_mic()
3127 ath12k_dp_rx_h_undecap(ar, msdu, rx_desc, in ath12k_dp_rx_h_verify_tkip_mic()
3129 ieee80211_rx(ath12k_ar_to_hw(ar), msdu); in ath12k_dp_rx_h_verify_tkip_mic()
3133 static void ath12k_dp_rx_h_undecap_frag(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_undecap_frag() argument
3144 hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz); in ath12k_dp_rx_h_undecap_frag()
3147 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_frag()
3151 skb_trim(msdu, msdu->len - in ath12k_dp_rx_h_undecap_frag()
3158 memmove(msdu->data + hal_rx_desc_sz + crypto_len, in ath12k_dp_rx_h_undecap_frag()
3159 msdu->data + hal_rx_desc_sz, hdr_len); in ath12k_dp_rx_h_undecap_frag()
3160 skb_pull(msdu, crypto_len); in ath12k_dp_rx_h_undecap_frag()
3462 struct sk_buff *msdu, in ath12k_dp_rx_frag_h_mpdu() argument
3476 rx_desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_frag_h_mpdu()
3480 frag_no = ath12k_dp_rx_h_frag_no(ab, msdu); in ath12k_dp_rx_frag_h_mpdu()
3481 more_frags = ath12k_dp_rx_h_more_frags(ab, msdu); in ath12k_dp_rx_frag_h_mpdu()
3528 __skb_queue_tail(&rx_tid->rx_frags, msdu); in ath12k_dp_rx_frag_h_mpdu()
3530 ath12k_dp_rx_h_sort_frags(ab, &rx_tid->rx_frags, msdu); in ath12k_dp_rx_frag_h_mpdu()
3593 struct sk_buff *msdu; in ath12k_dp_process_rx_err_buf() local
3618 msdu = desc_info->skb; in ath12k_dp_process_rx_err_buf()
3623 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_process_rx_err_buf()
3625 msdu->len + skb_tailroom(msdu), in ath12k_dp_process_rx_err_buf()
3629 dev_kfree_skb_any(msdu); in ath12k_dp_process_rx_err_buf()
3635 dev_kfree_skb_any(msdu); in ath12k_dp_process_rx_err_buf()
3640 dev_kfree_skb_any(msdu); in ath12k_dp_process_rx_err_buf()
3644 rx_desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_process_rx_err_buf()
3650 dev_kfree_skb_any(msdu); in ath12k_dp_process_rx_err_buf()
3654 skb_put(msdu, hal_rx_desc_sz + msdu_len); in ath12k_dp_process_rx_err_buf()
3656 if (ath12k_dp_rx_frag_h_mpdu(ar, msdu, desc)) { in ath12k_dp_process_rx_err_buf()
3657 dev_kfree_skb_any(msdu); in ath12k_dp_process_rx_err_buf()
3823 static int ath12k_dp_rx_h_null_q_desc(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_null_q_desc() argument
3829 struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_h_null_q_desc()
3831 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_null_q_desc()
3867 skb_pull(msdu, hal_rx_desc_sz); in ath12k_dp_rx_h_null_q_desc()
3874 skb_put(msdu, hal_rx_desc_sz + l3pad_bytes + msdu_len); in ath12k_dp_rx_h_null_q_desc()
3875 skb_pull(msdu, hal_rx_desc_sz + l3pad_bytes); in ath12k_dp_rx_h_null_q_desc()
3877 if (unlikely(!ath12k_dp_rx_check_nwifi_hdr_len_valid(ab, desc, msdu))) in ath12k_dp_rx_h_null_q_desc()
3882 ath12k_dp_rx_h_mpdu(ar, msdu, desc, rx_info); in ath12k_dp_rx_h_null_q_desc()
3893 static bool ath12k_dp_rx_h_reo_err(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_reo_err() argument
3897 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_reo_err()
3904 if (ath12k_dp_rx_h_null_q_desc(ar, msdu, rx_info, msdu_list)) in ath12k_dp_rx_h_reo_err()
3924 static bool ath12k_dp_rx_h_tkip_mic_err(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_tkip_mic_err() argument
3929 struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_h_tkip_mic_err()
3931 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_tkip_mic_err()
3948 skb_put(msdu, hal_rx_desc_sz + l3pad_bytes + msdu_len); in ath12k_dp_rx_h_tkip_mic_err()
3949 skb_pull(msdu, hal_rx_desc_sz + l3pad_bytes); in ath12k_dp_rx_h_tkip_mic_err()
3951 if (unlikely(!ath12k_dp_rx_check_nwifi_hdr_len_valid(ab, desc, msdu))) in ath12k_dp_rx_h_tkip_mic_err()
3959 ath12k_dp_rx_h_undecap(ar, msdu, desc, in ath12k_dp_rx_h_tkip_mic_err()
3964 static bool ath12k_dp_rx_h_rxdma_err(struct ath12k *ar, struct sk_buff *msdu, in ath12k_dp_rx_h_rxdma_err() argument
3968 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_h_rxdma_err()
3969 struct hal_rx_desc *rx_desc = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_h_rxdma_err()
3981 drop = ath12k_dp_rx_h_tkip_mic_err(ar, msdu, rx_info); in ath12k_dp_rx_h_rxdma_err()
3998 struct sk_buff *msdu, in ath12k_dp_rx_wbm_err() argument
4001 struct ath12k_skb_rxcb *rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_wbm_err()
4011 drop = ath12k_dp_rx_h_reo_err(ar, msdu, &rx_info, msdu_list); in ath12k_dp_rx_wbm_err()
4014 drop = ath12k_dp_rx_h_rxdma_err(ar, msdu, &rx_info); in ath12k_dp_rx_wbm_err()
4022 dev_kfree_skb_any(msdu); in ath12k_dp_rx_wbm_err()
4028 ath12k_dp_rx_deliver_msdu(ar, napi, msdu, &rx_info); in ath12k_dp_rx_wbm_err()
4041 struct sk_buff *msdu; in ath12k_dp_rx_process_wbm_err() local
4094 msdu = desc_info->skb; in ath12k_dp_rx_process_wbm_err()
4100 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4111 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_wbm_err()
4113 msdu->len + skb_tailroom(msdu), in ath12k_dp_rx_process_wbm_err()
4124 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4128 msdu_data = (struct hal_rx_desc *)msdu->data; in ath12k_dp_rx_process_wbm_err()
4137 __skb_queue_tail(&scatter_msdu_list, msdu); in ath12k_dp_rx_process_wbm_err()
4144 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4154 struct sk_buff *msdu; in ath12k_dp_rx_process_wbm_err() local
4156 skb_queue_walk(&scatter_msdu_list, msdu) { in ath12k_dp_rx_process_wbm_err()
4157 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_wbm_err()
4165 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_wbm_err()
4167 __skb_queue_tail(&msdu_list, msdu); in ath12k_dp_rx_process_wbm_err()
4195 while ((msdu = __skb_dequeue(&msdu_list))) { in ath12k_dp_rx_process_wbm_err()
4196 rxcb = ATH12K_SKB_RXCB(msdu); in ath12k_dp_rx_process_wbm_err()
4205 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4214 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4219 dev_kfree_skb_any(msdu); in ath12k_dp_rx_process_wbm_err()
4228 ath12k_dp_rx_wbm_err(ar, napi, msdu, &msdu_list); in ath12k_dp_rx_process_wbm_err()