mac80211: add A-MSDU tx support
authorFelix Fietkau <nbd@openwrt.org>
Thu, 3 Mar 2016 21:59:00 +0000 (22:59 +0100)
committerChristian Lamparter <chunkeey@googlemail.com>
Wed, 27 Apr 2016 13:38:14 +0000 (15:38 +0200)
Requires software tx queueing and fast-xmit support. For good
performance, drivers need frag_list support as well. This avoids the
need for copying data of aggregated frames. Running without it is only
supported for debugging purposes.

To avoid performance and packet size issues, the rate control module or
driver needs to limit the maximum A-MSDU size by setting
max_rc_amsdu_len in struct ieee80211_sta.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
[fix locking issue]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
include/linux/ieee80211.h

index 4c5a283dbff4b3bb3906aabc4d03aa67c46fde14..7bc9f831972294ed6205c18eab456ffa9a2236aa 100644 (file)
@@ -159,6 +159,9 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
 /* 30 byte 4 addr hdr, 2 byte QoS, 2304 byte MSDU, 12 byte crypt, 4 byte FCS */
 #define IEEE80211_MAX_FRAME_LEN                2352
 
+/* Maximal size of an A-MSDU that can be transported in a HT BA session */
+#define IEEE80211_MAX_MPDU_LEN_HT_BA           4095
+
 /* Maximal size of an A-MSDU */
 #define IEEE80211_MAX_MPDU_LEN_HT_3839         3839
 #define IEEE80211_MAX_MPDU_LEN_HT_7935         7935