From: Johannes Berg <johannes.berg@xxxxxxxxx> 802.11 says: "Sequence numbers for QoS (+)Null frames may be set to any value." However, if we use the normal counters then peers will get confused with aggregation since there'll be holes in the sequence number sequence. To avoid that, neither assign a sequence number to QoS null frames nor put them on aggregation. Cc: stable@xxxxxxxxxx Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx> --- chr pointed this out to me ... thanks! Cc stable since I'm changing hostapd to use QoS null frames... net/mac80211/tx.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/net/mac80211/tx.c 2011-09-28 14:13:19.000000000 +0200 +++ b/net/mac80211/tx.c 2011-09-28 14:51:13.000000000 +0200 @@ -804,6 +804,9 @@ ieee80211_tx_h_sequence(struct ieee80211 if (ieee80211_hdrlen(hdr->frame_control) < 24) return TX_CONTINUE; + if (ieee80211_is_qos_nullfunc(hdr->frame_control)) + return TX_CONTINUE; + /* * Anything but QoS data that has a sequence number field * (is long enough) gets a sequence number from the global @@ -1236,6 +1239,7 @@ ieee80211_tx_prepare(struct ieee80211_su tx->sta = sta_info_get(sdata, hdr->addr1); if (tx->sta && ieee80211_is_data_qos(hdr->frame_control) && + !ieee80211_is_qos_nullfunc(hdr->frame_control) && (local->hw.flags & IEEE80211_HW_AMPDU_AGGREGATION) && !(local->hw.flags & IEEE80211_HW_TX_AMPDU_SETUP_IN_HW)) { struct tid_ampdu_tx *tid_tx; -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html