Search Linux Wireless

Re: [PATCH] mac80211: support A-MSDU in fast-rx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2018-02-27 at 08:52 +0100, Felix Fietkau wrote:
> 
>  	if (fast_rx->key && !(status->flag & RX_FLAG_IV_STRIPPED)) {
> +		if (status->rx_flags & IEEE80211_RX_AMSDU)
> +			return false;

This seemed really odd to me.

>  		/* GCMP header length is the same */
>  		snap_offs += IEEE80211_CCMP_HDR_LEN;

I understand now though - the problem is that snap_offs isn't used in
__ieee80211_rx_h_amsdu(), and thus we can't do the necessary
adjustments.

I think though that perhaps it'd be better to teach
__ieee80211_rx_h_amsdu() about snap_offs, because assuming in the AMSDU
decap code that snap_offs is more-or-less constant will just make the
dependencies much harder to understand.

Better teach __ieee80211_rx_h_amsdu() about snap_offs, and make the
assumption on the constant in ieee80211_rx_h_amsdu()?


> +	if (status->rx_flags & IEEE80211_RX_AMSDU) {
> +		res = __ieee80211_rx_h_amsdu(rx);
> +		if (res != RX_QUEUED)
> +			goto drop;
> +
> +		return true;
> +	}

Btw, you also don't need the "res" variable, much less at function
scope; this block would do if at all, but also it should probably use
the right enum type or just be removed.

johannes



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux