Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Sep 2025 03:29:44 GMT
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 167520e47d37 - main - [net80211] clean up M_SEQNO_SET and M_SEQNO_GET() to always limit to the sequence number range
Message-ID:  <202509020329.5823TiLr018855@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=167520e47d37ab72ff5561c41b9a2d95e5d70bd5

commit 167520e47d37ab72ff5561c41b9a2d95e5d70bd5
Author:     Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2025-08-31 03:03:40 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-09-02 03:29:30 +0000

    [net80211] clean up M_SEQNO_SET and M_SEQNO_GET() to always limit to the sequence number range
    
    Use '% IEEE80211_SEQ_RANGE' to limit the sequence numbers being
    stored and retrieved to 0..4095 inclusive.
    
    Differential Revision:  https://reviews.freebsd.org/D52302
    Reviewed by:    bz
---
 sys/net80211/ieee80211_freebsd.h | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sys/net80211/ieee80211_freebsd.h b/sys/net80211/ieee80211_freebsd.h
index 3684fba52c5c..954801d95787 100644
--- a/sys/net80211/ieee80211_freebsd.h
+++ b/sys/net80211/ieee80211_freebsd.h
@@ -341,11 +341,16 @@ struct mbuf *ieee80211_getmgtframe(uint8_t **frm, int headroom, int pktlen);
 #define	M_AGE_SUB(m,adj)	(m->m_pkthdr.csum_data -= adj)
 
 /*
- * Store the sequence number.
+ * Store / retrieve the sequence number in an mbuf.
+ *
+ * The sequence number being stored/retreived is the 12 bit
+ * base sequence number, not the 16 bit sequence number field.
+ * I.e., it's from 0..4095 inclusive, with no 4 bit padding for
+ * fragment numbers.
  */
 #define	M_SEQNO_SET(m, seqno) \
-	((m)->m_pkthdr.tso_segsz = (seqno))
-#define	M_SEQNO_GET(m)	((m)->m_pkthdr.tso_segsz)
+	((m)->m_pkthdr.tso_segsz = ((seqno) % IEEE80211_SEQ_RANGE))
+#define	M_SEQNO_GET(m)	(((m)->m_pkthdr.tso_segsz) % IEEE80211_SEQ_RANGE)
 
 #define	MTAG_ABI_NET80211	1132948340	/* net80211 ABI */
 



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