Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfa95b50 authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo
Browse files

ath10k: implement 802.3 SNAP rx decap type A-MSDU handling



This enables driver to rx another decapped a-msdu
frames. It should possibly help with throughputs
in some cases and reduce (or eliminate) number of
messages like this:

  ath10k: error processing msdus -524

Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 0e1cbf9a
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -610,8 +610,7 @@ static int ath10k_htt_rx_amsdu(struct ath10k_htt *htt,
			RX_MPDU_START_INFO0_ENCRYPT_TYPE);

	/* FIXME: No idea what assumptions are safe here. Need logs */
	if ((fmt == RX_MSDU_DECAP_RAW && skb->next) ||
	    (fmt == RX_MSDU_DECAP_8023_SNAP_LLC)) {
	if ((fmt == RX_MSDU_DECAP_RAW && skb->next)) {
		ath10k_htt_rx_free_msdu_chain(skb->next);
		skb->next = NULL;
		return -ENOTSUPP;
@@ -659,6 +658,15 @@ static int ath10k_htt_rx_amsdu(struct ath10k_htt *htt,
			decap_hdr += roundup(crypto_len, 4);
		}

		/* When fmt == RX_MSDU_DECAP_8023_SNAP_LLC:
		 *
		 * SNAP 802.3 consists of:
		 * [dst:6][src:6][len:2][dsap:1][ssap:1][ctl:1][snap:5]
		 * [data][fcs:4].
		 *
		 * Since this overlaps with A-MSDU header (da, sa, len)
		 * there's nothing extra to do. */

		if (fmt == RX_MSDU_DECAP_ETHERNET2_DIX) {
			/* Ethernet2 decap inserts ethernet header in place of
			 * A-MSDU subframe header. */