svn commit: r193706 - projects/mesh11s/sys/net80211

Rui Paulo rpaulo at FreeBSD.org
Mon Jun 8 11:18:07 UTC 2009


Author: rpaulo
Date: Mon Jun  8 11:18:05 2009
New Revision: 193706
URL: http://svn.freebsd.org/changeset/base/193706

Log:
  Introduce different mesh control structures based on the value of the AE
  bit.
  Rename the struct fields to avoid redudancy.
  
  Idea by:	sam
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/mesh11s/sys/net80211/ieee80211_mesh.h

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h	Mon Jun  8 11:10:55 2009	(r193705)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h	Mon Jun  8 11:18:05 2009	(r193706)
@@ -338,12 +338,42 @@ enum {
 	/* 2-255 reserved */
 };
 
+/*
+ * Different mesh control structures based on the AE
+ * (Address Extension) bits.
+ *
+ * NB: not __packed because mc_seq isn't uint32_t.
+ */
 struct ieee80211_meshcntl {
-	uint8_t		mc_flags;
-	uint8_t		mc_ttl;
-	uint32_t	mc_seq;
-	/* more mesh addresses follow */
-} __packed;
+	uint8_t		mc_flags;	/* Address Extension 00 */
+	uint8_t		mc_ttl;		/* TTL */
+	uint8_t		mc_seq[4];	/* Sequence No. */
+	/* NB: more addresses may follow */
+};
+
+struct ieee80211_meshcntl_ae01 {
+	uint8_t		mc_flags;	/* Address Extension 01 */
+	uint8_t		mc_ttl;		/* TTL */
+	uint8_t		mc_seq[4];	/* Sequence No. */
+	uint8_t		mc_addr4[IEEE80211_ADDR_LEN];
+};
+
+struct ieee80211_meshcntl_ae10 {
+	uint8_t		mc_flags;	/* Address Extension 10 */
+	uint8_t		mc_ttl;		/* TTL */
+	uint8_t		mc_seq[4];	/* Sequence No. */
+	uint8_t		mc_addr5[IEEE80211_ADDR_LEN];
+	uint8_t		mc_addr6[IEEE80211_ADDR_LEN];
+};
+
+struct ieee80211_meshcntl_ae11 {
+	uint8_t		mc_flags;	/* Address Extension 11 */
+	uint8_t		mc_ttl;		/* TTL */
+	uint8_t		mc_seq[4];	/* Sequence No. */
+	uint8_t		mc_addr4[IEEE80211_ADDR_LEN];
+	uint8_t		mc_addr5[IEEE80211_ADDR_LEN];
+	uint8_t		mc_addr6[IEEE80211_ADDR_LEN];
+};
 
 #ifdef _KERNEL
 void		ieee80211_mesh_attach(struct ieee80211com *);


More information about the svn-src-projects mailing list