mac80211: fix comment regarding aggregation buf_size

The description for buf_size was misleading and
just said you couldn't TX larger aggregates, but
of course you can't TX aggregates in a way that
would exceed the window either, which is possible
even if the aggregates are shorter than that.

Expand the description, thanks to Emmanuel for
explaining this to me.

Cc: Emmanuel Grumbach <egrumbach@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by Johannes Berg and committed by John W. Linville 5312c3f6 8f06ca2c

+13 -2
+13 -2
include/net/mac80211.h
··· 1753 1753 * that TX/RX_STOP can pass NULL for this parameter. 1754 1754 * The @buf_size parameter is only valid when the action is set to 1755 1755 * %IEEE80211_AMPDU_TX_OPERATIONAL and indicates the peer's reorder 1756 - * buffer size (number of subframes) for this session -- aggregates 1757 - * containing more subframes than this may not be transmitted to the peer. 1756 + * buffer size (number of subframes) for this session -- the driver 1757 + * may neither send aggregates containing more subframes than this 1758 + * nor send aggregates in a way that lost frames would exceed the 1759 + * buffer size. If just limiting the aggregate size, this would be 1760 + * possible with a buf_size of 8: 1761 + * - TX: 1.....7 1762 + * - RX: 2....7 (lost frame #1) 1763 + * - TX: 8..1... 1764 + * which is invalid since #1 was now re-transmitted well past the 1765 + * buffer size of 8. Correct ways to retransmit #1 would be: 1766 + * - TX: 1 or 18 or 81 1767 + * Even "189" would be wrong since 1 could be lost again. 1768 + * 1758 1769 * Returns a negative error code on failure. 1759 1770 * The callback can sleep. 1760 1771 *