Message ID | 1365444377-9959-2-git-send-email-thomas@cozybit.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Subject should probably say "reordering" rather than "accounting" > Since multicast aggregation is not currently supported by > mac80211, we can safely ignore them when reordering > aggregate MPDUs. Multicast may have a lower expectation of ordering than unicast, but is this really the right thing to do? It seems better to just fix it? johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 9, 2013 at 2:47 AM, Johannes Berg <johannes@sipsolutions.net> wrote: > Subject should probably say "reordering" rather than "accounting" > >> Since multicast aggregation is not currently supported by >> mac80211, we can safely ignore them when reordering >> aggregate MPDUs. > > Multicast may have a lower expectation of ordering than unicast, but is > this really the right thing to do? It seems better to just fix it? It appears one of our changes actually introduced this bug! It is not reproducible with mac80211-next. Thanks for making me take a closer look at this.
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 5168f89..cb55ef0 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -864,7 +864,8 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx, u16 sc; u8 tid, ack_policy; - if (!ieee80211_is_data_qos(hdr->frame_control)) + if (!ieee80211_is_data_qos(hdr->frame_control) || + is_multicast_ether_addr(hdr->addr1)) goto dont_reorder; /*
Since multicast aggregation is not currently supported by mac80211, we can safely ignore them when reordering aggregate MPDUs. This fixes a bug where the expected sequence number might be reset after processing a multicast frame from a STA with an established aggregation session. The expected sequence number would then be incorrect and all aggregated frames until the sequence number rolled over would be dropped. Signed-off-by: Thomas Pedersen <thomas@cozybit.com> --- net/mac80211/rx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)