summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_mesh.h
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2009-10-12 10:08:58 +0000
committerrpaulo <rpaulo@FreeBSD.org>2009-10-12 10:08:58 +0000
commita248a16e57da4f9813d38edbb3c57b230c8bc063 (patch)
tree94cd958748647b79e4fc0989d886f10d6f0cdd38 /sys/net80211/ieee80211_mesh.h
parentc12ff6b15143fe57c745f3158ee46eb7c998c973 (diff)
downloadFreeBSD-src-a248a16e57da4f9813d38edbb3c57b230c8bc063.zip
FreeBSD-src-a248a16e57da4f9813d38edbb3c57b230c8bc063.tar.gz
Another 3.03 draft bit that I missed in the previous 802.11s stack
update. The Mesh Configuration IE has changed quite a bit. Refactor the code to handle this change. MFC after: 3 days
Diffstat (limited to 'sys/net80211/ieee80211_mesh.h')
-rw-r--r--sys/net80211/ieee80211_mesh.h52
1 files changed, 17 insertions, 35 deletions
diff --git a/sys/net80211/ieee80211_mesh.h b/sys/net80211/ieee80211_mesh.h
index e3ce79a..72108dd 100644
--- a/sys/net80211/ieee80211_mesh.h
+++ b/sys/net80211/ieee80211_mesh.h
@@ -43,47 +43,27 @@
struct ieee80211_meshconf_ie {
uint8_t conf_ie; /* IEEE80211_ELEMID_MESHCONF */
uint8_t conf_len;
- uint8_t conf_ver;
- uint8_t conf_pselid[4]; /* Active Path Sel. Proto. ID */
- uint8_t conf_pmetid[4]; /* APS Metric Identifier */
- uint8_t conf_ccid[4]; /* Congestion Control Mode ID */
- uint8_t conf_syncid[4]; /* Sync. Protocol ID */
- uint8_t conf_authid[4]; /* Auth. Protocol ID */
+ uint8_t conf_pselid; /* Active Path Sel. Proto. ID */
+ uint8_t conf_pmetid; /* Active Metric Identifier */
+ uint8_t conf_ccid; /* Congestion Control Mode ID */
+ uint8_t conf_syncid; /* Sync. Protocol ID */
+ uint8_t conf_authid; /* Auth. Protocol ID */
uint8_t conf_form; /* Formation Information */
uint8_t conf_cap;
} __packed;
-#define IEEE80211_MESHCONF_VERSION 1
-/* Null Protocol */
-#define IEEE80211_MESHCONF_NULL_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_NULL_VALUE 0xff
-#define IEEE80211_MESHCONF_NULL { IEEE80211_MESHCONF_NULL_OUI, \
- IEEE80211_MESHCONF_NULL_VALUE }
/* Hybrid Wireless Mesh Protocol */
-#define IEEE80211_MESHCONF_HWMP_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_HWMP_VALUE 0x00
-#define IEEE80211_MESHCONF_HWMP { IEEE80211_MESHCONF_HWMP_OUI, \
- IEEE80211_MESHCONF_HWMP_VALUE }
+#define IEEE80211_MESHCONF_PATH_HWMP 0x00
/* Airtime Link Metric */
-#define IEEE80211_MESHCONF_AIRTIME_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_AIRTIME_VALUE 0x00
-#define IEEE80211_MESHCONF_AIRTIME { IEEE80211_MESHCONF_AIRTIME_OUI, \
- IEEE80211_MESHCONF_AIRTIME_VALUE }
-/* Congestion Control Signaling */
-#define IEEE80211_MESHCONF_CCSIG_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_CCSIG_VALUE 0x00
-#define IEEE80211_MESHCONF_CCSIG { IEEE80211_MESHCONF_CCSIG_OUI,\
- IEEE80211_MESHCONF_CCSIG_VALUE }
+#define IEEE80211_MESHCONF_METRIC_AIRTIME 0x00
+/* Congestion Control */
+#define IEEE80211_MESHCONF_CC_DISABLED 0x00
+#define IEEE80211_MESHCONF_CC_SIG 0x01
/* Neighbour Offset */
-#define IEEE80211_MESHCONF_NEIGHOFF_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_NEIGHOFF_VALUE 0x00
-#define IEEE80211_MESHCONF_NEIGHOFF { IEEE80211_MESHCONF_NEIGHOFF_OUI, \
- IEEE80211_MESHCONF_NEIGHOFF_VALUE }
+#define IEEE80211_MESHCONF_SYNC_NEIGHOFF 0x00
+#define IEEE80211_MESHCONF_AUTH_DISABLED 0x00
/* Simultaneous Authenticaction of Equals */
-#define IEEE80211_MESHCONF_SAE_OUI 0x00, 0x0f, 0xac
-#define IEEE80211_MESHCONF_SAE_VALUE 0x01
-#define IEEE80211_MESHCONF_SAE { IEEE80211_MESHCONF_SAE_OUI, \
- IEEE80211_MESHCONF_SAE_VALUE }
+#define IEEE80211_MESHCONF_AUTH_SAE 0x01
#define IEEE80211_MESHCONF_FORM_MP 0x01 /* Connected to Portal */
#define IEEE80211_MESHCONF_FORM_NNEIGH_MASK 0x04 /* Number of Neighbours */
#define IEEE80211_MESHCONF_CAP_AP 0x01 /* Accepting Peers */
@@ -390,8 +370,9 @@ struct ieee80211_mesh_route {
*/
enum ieee80211_state;
struct ieee80211_mesh_proto_path {
+ uint8_t mpp_active;
char mpp_descr[IEEE80211_MESH_PROTO_DSZ];
- uint8_t mpp_ie[4];
+ uint8_t mpp_ie;
struct ieee80211_node *
(*mpp_discover)(struct ieee80211vap *,
const uint8_t [IEEE80211_ADDR_LEN],
@@ -411,8 +392,9 @@ struct ieee80211_mesh_proto_path {
* Mesh Link Metric Report Protocol.
*/
struct ieee80211_mesh_proto_metric {
+ uint8_t mpm_active;
char mpm_descr[IEEE80211_MESH_PROTO_DSZ];
- uint8_t mpm_ie[4];
+ uint8_t mpm_ie;
uint32_t (*mpm_metric)(struct ieee80211_node *);
};
OpenPOWER on IntegriCloud