Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Aug 2008 16:03:41 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 147236 for review
Message-ID:  <200808121603.m7CG3fh5040228@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=147236

Change 147236 by sam@sam_ebb on 2008/08/12 16:03:29

	reject frags in ieee80211_ampdu_reorder

Affected files ...

.. //depot/projects/vap/sys/net80211/ieee80211_ht.c#27 edit

Differences ...

==== //depot/projects/vap/sys/net80211/ieee80211_ht.c#27 (text+ko) ====

@@ -535,7 +535,21 @@
 		 */
 		return PROCESS;
 	}
-	rxseq = le16toh(*(uint16_t *)wh->i_seq) >> IEEE80211_SEQ_SEQ_SHIFT;
+	rxseq = le16toh(*(uint16_t *)wh->i_seq);
+	if ((rxseq & IEEE80211_SEQ_FRAG_MASK) != 0) {
+		/*
+		 * Fragments are not allowed; toss.
+		 */
+		IEEE80211_DISCARD_MAC(vap,
+		    IEEE80211_MSG_INPUT | IEEE80211_MSG_11N, ni->ni_macaddr,
+		    "A-MPDU", "fragment, rxseq 0x%x tid %u%s", rxseq, tid,
+		    wh->i_fc[1] & IEEE80211_FC1_RETRY ? " (retransmit)" : "");
+		vap->iv_stats.is_ampdu_rx_drop++;
+		IEEE80211_NODE_STAT(ni, rx_drop);
+		m_freem(m);
+		return CONSUMED;
+	}
+	rxseq >>= IEEE80211_SEQ_SEQ_SHIFT;
 	rap->rxa_nframes++;
 again:
 	if (rxseq == rap->rxa_start) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808121603.m7CG3fh5040228>