Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jun 2009 11:18:05 +0000 (UTC)
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r193706 - projects/mesh11s/sys/net80211
Message-ID:  <200906081118.n58BI5Fs027767@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 *);



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