summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authormonthadar <monthadar@FreeBSD.org>2013-02-07 21:20:28 +0000
committermonthadar <monthadar@FreeBSD.org>2013-02-07 21:20:28 +0000
commit9c4d8abf339fc25f082518f9095e80990874b782 (patch)
treeefbca0d697e92440e39a2787d8f9ce1114734744 /sys/net80211
parent23b698b92fefd4ca8892bb5d116a1709e19c9c09 (diff)
downloadFreeBSD-src-9c4d8abf339fc25f082518f9095e80990874b782.zip
FreeBSD-src-9c4d8abf339fc25f082518f9095e80990874b782.tar.gz
Update net80211 mesh struct ieee80211_meshgann_ie.
* Change all field prefix from pann_ to gann_; * Added IEEE80211_MESHGANN_BASE_SZ macro to be used in the length field of a GANN frame according to 802.11 standard; * Changed gann_seq field type to uint32_t; * Added a Gate Announcement interval field according to IEEE802.11 2012 standard; * Added IEEE80211_MESHRT_FLAGS_GATE as flag bit to ieee80211_mesh_route; * Added IEEE80211_MESHRT_FLAGS_GATE as flag bit to ieee80211req_mesh_route; Approved by: adrian (mentor)
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_ioctl.h1
-rw-r--r--sys/net80211/ieee80211_mesh.h21
2 files changed, 15 insertions, 7 deletions
diff --git a/sys/net80211/ieee80211_ioctl.h b/sys/net80211/ieee80211_ioctl.h
index 2214b33..ee98026 100644
--- a/sys/net80211/ieee80211_ioctl.h
+++ b/sys/net80211/ieee80211_ioctl.h
@@ -342,6 +342,7 @@ struct ieee80211req_mesh_route {
#define IEEE80211_MESHRT_FLAGS_DISCOVER 0x01
#define IEEE80211_MESHRT_FLAGS_VALID 0x02
#define IEEE80211_MESHRT_FLAGS_PROXY 0x04
+#define IEEE80211_MESHRT_FLAGS_GATE 0x08
uint8_t imr_dest[IEEE80211_ADDR_LEN];
uint8_t imr_nexthop[IEEE80211_ADDR_LEN];
uint16_t imr_nhops;
diff --git a/sys/net80211/ieee80211_mesh.h b/sys/net80211/ieee80211_mesh.h
index f161012..1e14357 100644
--- a/sys/net80211/ieee80211_mesh.h
+++ b/sys/net80211/ieee80211_mesh.h
@@ -194,14 +194,20 @@ struct ieee80211_meshbeacont_ie {
#endif
/* Gate (GANN) Annoucement */
+/*
+ * NB: these macros used for the length in the IEs does not include 2 bytes
+ * for _ie and _len fields as is defined by the standard.
+ */
+#define IEEE80211_MESHGANN_BASE_SZ (15)
struct ieee80211_meshgann_ie {
- uint8_t pann_ie; /* IEEE80211_ELEMID_MESHGANN */
- uint8_t pann_len;
- uint8_t pann_flags;
- uint8_t pann_hopcount;
- uint8_t pann_ttl;
- uint8_t pann_addr[IEEE80211_ADDR_LEN];
- uint8_t pann_seq; /* PANN Sequence Number */
+ uint8_t gann_ie; /* IEEE80211_ELEMID_MESHGANN */
+ uint8_t gann_len;
+ uint8_t gann_flags;
+ uint8_t gann_hopcount;
+ uint8_t gann_ttl;
+ uint8_t gann_addr[IEEE80211_ADDR_LEN];
+ uint32_t gann_seq; /* GANN Sequence Number */
+ uint16_t gann_interval; /* GANN Interval */
} __packed;
/* Root (MP) Annoucement */
@@ -423,6 +429,7 @@ struct ieee80211_mesh_route {
#define IEEE80211_MESHRT_FLAGS_DISCOVER 0x01 /* path discovery */
#define IEEE80211_MESHRT_FLAGS_VALID 0x02 /* path discovery complete */
#define IEEE80211_MESHRT_FLAGS_PROXY 0x04 /* proxy entry */
+#define IEEE80211_MESHRT_FLAGS_GATE 0x08 /* mesh gate entry */
uint32_t rt_lifetime; /* route timeout */
uint32_t rt_lastmseq; /* last seq# seen dest */
uint32_t rt_ext_seq; /* proxy seq number */
OpenPOWER on IntegriCloud