Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Aug 2013 14:25:12 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254527 - in head/sys: net80211 netinet sys
Message-ID:  <201308191425.r7JEPCsT086845@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Mon Aug 19 14:25:11 2013
New Revision: 254527
URL: http://svnweb.freebsd.org/changeset/base/254527

Log:
  Reorder the mbuf defines to make more sense and group related flags
  together.
  
  Add M_FLAG_PRINTF for use with printf(9) %b indentifier.
  
  Use the generic mbuf flags print names in the net80211 code and adjust
  the protocol specific bits for their new positions.
  
  Change SCTP M_PROTO mapping from 5 to 1 to fit within the 16bit field
  they use internally to store some additional information.
  
  Discussed with:	trociny, glebius

Modified:
  head/sys/net80211/ieee80211_freebsd.h
  head/sys/netinet/sctp_os_bsd.h
  head/sys/sys/mbuf.h

Modified: head/sys/net80211/ieee80211_freebsd.h
==============================================================================
--- head/sys/net80211/ieee80211_freebsd.h	Mon Aug 19 14:07:31 2013	(r254526)
+++ head/sys/net80211/ieee80211_freebsd.h	Mon Aug 19 14:25:11 2013	(r254527)
@@ -250,16 +250,13 @@ struct mbuf *ieee80211_getmgtframe(uint8
 #define	M_80211_RX	(M_AMPDU|M_WEP|M_AMPDU_MPDU)
 
 #define	IEEE80211_MBUF_TX_FLAG_BITS \
-	"\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY\5M_ENCAP\6M_WEP\7M_EAPOL" \
-	"\10M_PWR_SAV\11M_MORE_DATA\12M_BCAST\13M_MCAST\14M_FRAG\15M_FIRSTFRAG" \
-	"\16M_LASTFRAG\17M_SKIP_FIREWALL\20M_FREELIST\21M_VLANTAG\22M_PROMISC" \
-	"\23M_NOFREE\24M_FF\25M_TXCB\26M_AMPDU_MPDU\27M_FLOWID"
+	M_FLAG_BITS \
+	"\15M_ENCAP\17M_EAPOL\20M_PWR_SAV\21M_MORE_DATA\22M_FF\23M_TXCB" \
+	"\24M_AMPDU_MPDU\25M_FRAG\26M_FIRSTFRAG\27M_LASTFRAG"
 
 #define	IEEE80211_MBUF_RX_FLAG_BITS \
-	"\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY\5M_AMPDU\6M_WEP\7M_PROTO3" \
-	"\10M_PROTO4\11M_PROTO5\12M_BCAST\13M_MCAST\14M_FRAG\15M_FIRSTFRAG" \
-	"\16M_LASTFRAG\17M_SKIP_FIREWALL\20M_FREELIST\21M_VLANTAG\22M_PROMISC" \
-	"\23M_NOFREE\24M_PROTO6\25M_PROTO7\26M_AMPDU_MPDU\27M_FLOWID"
+	M_FLAG_BITS \
+	"\15M_AMPDU\16M_WEP\24M_AMPDU_MPDU"
 
 /*
  * Store WME access control bits in the vlan tag.

Modified: head/sys/netinet/sctp_os_bsd.h
==============================================================================
--- head/sys/netinet/sctp_os_bsd.h	Mon Aug 19 14:07:31 2013	(r254526)
+++ head/sys/netinet/sctp_os_bsd.h	Mon Aug 19 14:25:11 2013	(r254527)
@@ -431,7 +431,7 @@ typedef struct rtentry sctp_rtentry_t;
 /*
  * SCTP protocol specific mbuf flags.
  */
-#define	M_NOTIFICATION		M_PROTO5	/* SCTP notification */
+#define	M_NOTIFICATION		M_PROTO1	/* SCTP notification */
 
 /*
  * IP output routines

Modified: head/sys/sys/mbuf.h
==============================================================================
--- head/sys/sys/mbuf.h	Mon Aug 19 14:07:31 2013	(r254526)
+++ head/sys/sys/mbuf.h	Mon Aug 19 14:25:11 2013	(r254527)
@@ -186,26 +186,25 @@ struct mbuf {
 #define	M_PKTHDR	0x00000002 /* start of record */
 #define	M_EOR		0x00000004 /* end of record */
 #define	M_RDONLY	0x00000008 /* associated data is marked read-only */
-#define	M_PROTO1	0x00000010 /* protocol-specific */
-#define	M_PROTO2	0x00000020 /* protocol-specific */
-#define	M_PROTO3	0x00000040 /* protocol-specific */
-#define	M_PROTO4	0x00000080 /* protocol-specific */
-#define	M_PROTO5	0x00000100 /* protocol-specific */
-#define	M_BCAST		0x00000200 /* send/received as link-level broadcast */
-#define	M_MCAST		0x00000400 /* send/received as link-level multicast */
-		     /*	0x00000800    free */
-		     /*	0x00001000    free */
-		     /*	0x00002000    free */
-#define	M_PROTO9	0x00004000 /* protocol-specific */
-#define	M_PROTO10	0x00008000 /* protocol-specific */
-#define	M_VLANTAG	0x00010000 /* ether_vtag is valid */
-#define	M_PROMISC	0x00020000 /* packet was not for us */
-#define	M_PROTO11	0x00040000 /* protocol-specific */
-#define	M_PROTO6	0x00080000 /* protocol-specific */
-#define	M_PROTO7	0x00100000 /* protocol-specific */
-#define	M_PROTO8	0x00200000 /* protocol-specific */
-#define	M_FLOWID	0x00400000 /* deprecated: flowid is valid */
+#define	M_BCAST		0x00000010 /* send/received as link-level broadcast */
+#define	M_MCAST		0x00000020 /* send/received as link-level multicast */
+#define	M_PROMISC	0x00000040 /* packet was not for us */
+#define	M_VLANTAG	0x00000080 /* ether_vtag is valid */
+#define	M_FLOWID	0x00000100 /* deprecated: flowid is valid */
+
+#define	M_PROTO1	0x00001000 /* protocol-specific */
+#define	M_PROTO2	0x00002000 /* protocol-specific */
+#define	M_PROTO3	0x00004000 /* protocol-specific */
+#define	M_PROTO4	0x00008000 /* protocol-specific */
+#define	M_PROTO5	0x00010000 /* protocol-specific */
+#define	M_PROTO6	0x00020000 /* protocol-specific */
+#define	M_PROTO7	0x00040000 /* protocol-specific */
+#define	M_PROTO8	0x00080000 /* protocol-specific */
+#define	M_PROTO9	0x00100000 /* protocol-specific */
+#define	M_PROTO10	0x00200000 /* protocol-specific */
+#define	M_PROTO11	0x00400000 /* protocol-specific */
 #define	M_PROTO12	0x00800000 /* protocol-specific */
+
 #define	M_HASHTYPEBITS	0x0F000000 /* mask of bits holding flowid hash type */
 
 /*
@@ -216,6 +215,18 @@ struct mbuf {
      M_PROTO9|M_PROTO10|M_PROTO11|M_PROTO12)
 
 /*
+ * Mbuf flag description for use with printf(9) %b identifier.
+ */
+#define	M_FLAG_BITS \
+    "\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY\5M_BCAST\6M_MCAST" \
+    "\7M_PROMISC\10M_VLANTAG\11M_FLOWID"
+#define	M_FLAG_PROTOBITS \
+    "\15M_PROTO1\16M_PROTO2\17M_PROTO3\20M_PROTO4\21M_PROTO5" \
+    "\22M_PROTO6\23M_PROTO7\24M_PROTO8\25M_PROTO9\26M_PROTO10" \
+    "\27M_PROTO11\30M_PROTO12"
+#define	M_FLAG_PRINTF (M_FLAG_BITS M_FLAG_PROTOBITS)
+
+/*
  * Network interface cards are able to hash protocol fields (such as IPv4
  * addresses and TCP port numbers) classify packets into flows.  These flows
  * can then be used to maintain ordering while delivering packets to the OS
@@ -253,8 +264,8 @@ struct mbuf {
  * Flags preserved when copying m_pkthdr.
  */
 #define	M_COPYFLAGS \
-    (M_PKTHDR|M_EOR|M_RDONLY|M_PROTOFLAGS|M_BCAST|M_MCAST|\
-     M_VLANTAG|M_PROMISC|M_HASHTYPEBITS)
+    (M_PKTHDR|M_EOR|M_RDONLY|M_BCAST|M_MCAST|M_VLANTAG|M_PROMISC| \
+     M_PROTOFLAGS|M_HASHTYPEBITS)
 
 /*
  * External buffer types: identify ext_buf type.



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