git: 167520e47d37 - main - [net80211] clean up M_SEQNO_SET and M_SEQNO_GET() to always limit to the sequence number range
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 02 Sep 2025 03:29:44 UTC
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 */