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

Rui Paulo rpaulo at FreeBSD.org
Fri Apr 24 10:27:58 UTC 2009


Author: rpaulo
Date: Fri Apr 24 10:27:57 2009
New Revision: 191460
URL: http://svn.freebsd.org/changeset/base/191460

Log:
  Don't polute ieee80211.h with mesh definitions. We have ieee80211_mesh.h
  just for that.
  
  Sponsored by:	The FreeBSD Foundation

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

Modified: projects/mesh11s/sys/net80211/ieee80211.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211.h	Fri Apr 24 10:19:25 2009	(r191459)
+++ projects/mesh11s/sys/net80211/ieee80211.h	Fri Apr 24 10:27:57 2009	(r191460)
@@ -775,264 +775,6 @@ struct ieee80211_csa_ie {
 #define	IEEE80211_ERP_BITS \
 	"\20\1NON_ERP_PRESENT\2USE_PROTECTION\3LONG_PREAMBLE"
 
-/*
- * 802.11s Information Elements.
-*/
-/* Mesh Configuration */
-struct ieee80211_meshconf_ie {
-	uint8_t		conf_ie;	/* IEEE80211_ELEMID_MESHCONF */
-	uint8_t		conf_len;
-	uint8_t		conf_ver;
-	uint32_t	conf_apspi;	/* Active Path Sel. Proto. ID */
-	uint32_t	conf_apsmi;	/* APS Metric Identifier */
-	uint32_t	conf_ccmi;	/* Congestion Control Mode ID  */
-	uint8_t		conf_finfo;	/* Formation Information */
-	uint8_t		conf_cap;
-} __packed;
-
-#define	IEEE80211_MESHCONF_APSPI_HWMP_OUI	0x000fac
-#define	IEEE80211_MESHCONF_APSPI_HWMP_VALUE	0xff	/* XXX Linux */
-#define	IEEE80211_MESHCONF_APSMI_AIRTIME_OUI	0x000fac
-#define	IEEE80211_MESHCONF_APSMI_AIRTIME_VALUE	0xff	/* XXX Linux */
-#define	IEEE80211_MESHCONF_CCMI_DEFAULT_OUI	0x000fac
-#define	IEEE80211_MESHCONF_CCMI_DEFAULT_VALUE	0xff	/* XXX Linux */
-#define	IEEE80211_MESHCONF_CCMI_NULL_OUI	0x000fac
-#define	IEEE80211_MESHCONF_CCMI_NULL_VALUE	255
-#define	IEEE80211_MESHCONF_FORM_MP		(1 << 1) /* connected to portal */
-#define	IEEE80211_MESHCONF_FORM_NEIGH		(1 << 4) /* no of neighbours */
-
-/* Mesh Identifier */
-struct ieee80211_meshid_ie {
-	uint8_t		id_ie;		/* IEEE80211_ELEMID_MESHID */
-	uint8_t		id_len;
-} __packed;
-
-#define	IEEE80211_MESHID_MAX_SIZE \
-	(sizeof(struct ieee80211_meshid_ie) + IEEE80211_NWID_LEN)
-
-/* Link Metric Report */
-struct ieee80211_meshlink_ie {
-	uint8_t		link_ie;	/* IEEE80211_ELEMID_MESHLINK */
-	uint8_t		link_len;
-	/* XXXRP: missing  variable metric */
-} __packed;
-
-/* Congestion Notification */
-struct ieee80211_meshcngst_ie {
-	uint8_t		cngst_ie;	/* IEEE80211_ELEMID_MESHCNGST */
-	uint8_t		cngst_len;
-	uint16_t	cngst_timer[4];	/* Expiration Timers: AC_BK,
-					   AC_BE, AC_VI, AC_VO */
-} __packed;
-
-/* Peer Link Management */
-struct ieee80211_meshpeer_ie {
-	uint8_t		peer_ie;	/* IEEE80211_ELEMID_MESHPEER */
-	uint8_t		peer_len;
-	uint8_t		peer_subtype;
-	uint16_t	peer_llinkid;	/* Local Link ID */
-	uint16_t	peer_linkid;	/* Peer Link ID */
-	uint16_t	peer_rcode;
-} __packed;
-
-enum {
-	IEEE80211_MESH_PEER_LINK_OPEN		= 0,
-	IEEE80211_MESH_PEER_LINK_CONFIRM	= 1,
-	IEEE80211_MESH_PEER_LINK_CLOSE		= 2,
-	/* values 3-255 are reserved */
-};
-
-/* Mesh Channel Switch Annoucement */
-struct ieee80211_meshcsa_ie {
-	uint8_t		csa_ie;		/* IEEE80211_ELEMID_MESHCSA */
-	uint8_t		csa_len;
-	uint8_t		csa_mode;
-	uint8_t		csa_newclass;	/* New Regulatory Class */
-	uint8_t		csa_newchan;
-	uint8_t		csa_precvalue;	/* Precedence Value */
-	uint8_t		csa_count;
-} __packed;
-
-/* XXXRP: this is equal to the non mesh version. Should we simplify ? */
-/* Mesh TIM */
-struct ieee80211_meshtim_ie {
-	uint8_t		tim_ie;			/* IEEE80211_ELEMID_MESHTIM */
-	uint8_t		tim_len;
-	uint8_t		tim_count;		/* DTIM count */
-	uint8_t		tim_period;		/* DTIM period */
-	uint8_t		tim_bitctl;		/* bitmap control */
-	uint8_t		tim_bitmap[1];		/* variable-length bitmap */
-} __packed;
-
-/* Mesh Awake Window */
-struct ieee80211_meshawakew_ie {
-	uint8_t		awakew_ie;		/* IEEE80211_ELEMID_MESHAWAKEW */
-	uint8_t		awakew_len;
-	uint8_t		awakew_windowlen;	/* in TUs */
-} __packed;
-
-/* Mesh Beacon Timing */
-struct ieee80211_meshbeacont_ie {
-	uint8_t		beacont_ie;		/* IEEE80211_ELEMID_MESHBEACONT */
-	uint8_t		beacont_len;
-	struct {
-		uint8_t		mp_aid;		/* Least Octet of AID */
-		uint16_t	mp_btime;	/* Beacon Time */
-		uint16_t	mp_bint;	/* Beacon Interval */
-	} mp[1] __packed;			/* NB: variable size */
-} __packed;
-
-/* Mesh Timing Info */
-struct ieee80211_meshtinfo_ie {
-	uint8_t		tinfo_ie;		/* IEEE80211_ELEMID_MESHTIMINGINFO */
-	uint8_t		tinfo_len;
-	uint8_t		tinfo_field;
-} __packed;
-
-#define IEEE80211_MESH_TINFO_BEACON_PARAMS_CHANGED	(1 << 8)
-#define	IEEE80211_MESH_TINFO_MDA_ENABLED		(1 << 7)
-
-/* Synchronization Protocol */
-struct ieee80211_meshsyncproto_ie {
-	uint8_t		syncproto_ie;		/* IEEE80211_ELEMID_MESHSYNCPROTO */
-	uint8_t		syncproto_len;
-	uint32_t	syncproto_id;		/* Sync Protocol ID OUI */
-} __packed;
-
-/* Neighbour Offset Protocol */
-#define IEEE80211_MESH_SYNCPROTO_NEIGHOFFSET_OUI	0x000fac
-#define IEEE80211_MESH_SYNCPROTO_NEIGHOFFSET_VALUE	0
-
-/* MDAOP Setup Request */
-struct ieee80211_meshdaopsreq_ie {
-	uint8_t		daopsreq_ie;		/* IEEE80211_ELEMID_MESHDAOPSREQ */
-	uint8_t		daopsreq_len;
-	uint8_t		daopsreq_setid;
-	uint32_t	daposreq_reserv;	/* MDAOP Reservation */
-} __packed;
-
-/* MDAOP Setup Reply */
-struct ieee80211_meshdaopsrep_ie {
-	uint8_t		daopsrep_ie;		/* IEEE80211_ELEMID_MESHDAOPSREPLY */
-	uint8_t		daopsrep_len;
-	uint8_t		daopsrep_setid;
-	uint8_t		daopsrep_code;		/* Reply Code */
-	uint8_t		daopsrep_reserv;	/* MDAOP Reservation */
-} __packed;
-
-enum {
-	IEEE80211_MESH_DAOP_REPLY_ACCEPT 		= 0,
-	IEEE80211_MESH_DAOP_REPLY_RESERV_CONFLICT	= 1,
-	IEEE80211_MESH_DAOP_REPLY_MAF_LIMIT		= 2,
-	/* everything else is reserved */
-};
-
-/* MDAOP Advertisements */
-/* TBD */
-
-
-/* MDAOP Set Teardown */
-struct ieee80211_meshdaopst_ie {
-        uint8_t         daopsrep_ie;            /* IEEE80211_ELEMID_MESHDAOPSREP */
-        uint8_t         daopsrep_len;
-        uint8_t         daopsrep_setid;
-        uint8_t         daopsrep_setowner[IEEE80211_ADDR_LEN];
-} __packed;
-
-/* Portal (MP) Annoucement */
-struct ieee80211_meshpann_ie {
-	uint8_t		pann_ie;		/* IEEE80211_ELEMID_MESHPANN */
-	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 */
-} __packed;
-
-/* Root (MP) Annoucement */
-struct ieee80211_meshrann_ie {
-	uint8_t		rann_ie;		/* IEEE80211_ELEMID_MESHRANN */
-	uint8_t		rann_len;
-	uint8_t		rann_flags;
-	uint8_t		rann_hopcount;
-	uint8_t		rann_ttl;
-	uint8_t		rann_addr[IEEE80211_ADDR_LEN];
-	uint32_t	rann_seq;		/* HWMP Sequence Number */		
-	uint32_t	rann_metric;
-} __packed;
-
-/* Mesh Path Request */
-struct ieee80211_meshpreq_ie {
-	uint8_t		preq_ie;	/* IEEE80211_ELEMID_MESHPREQ */
-	uint8_t		preq_len;
-	/* XXXRP: TBD */
-} __packed;
-
-/* Mesh Path Reply */
-struct ieee80211_meshprep_ie {
-	uint8_t		prep_ie;	/* IEEE80211_ELEMID_MESHPREP */
-	uint8_t		prep_len;
-	/* XXXRP: TBD */
-} __packed;
-
-/* Mesh Path Error */
-struct ieee80211_meshperr_ie {
-	uint8_t		perr_ie;	/* IEEE80211_ELEMID_MESHPERR */
-	uint8_t		perr_len;
-	uint8_t		perr_mode;
-	uint8_t		perr_ndests;	/* Number of Destinations */
-	struct {
-		uint8_t		dest_addr[IEEE80211_ADDR_LEN];
-		uint32_t	dest_seq;
-	} dests[1] __packed;		/* NB: variable size */
-} __packed;
-
-/* Mesh Proxy Update */
-struct ieee80211_meshpu_ie {
-	uint8_t		pu_ie;		/* IEEE80211_ELEMID_MESHPU */
-	uint8_t		pu_len;
-	/* XXXRP: TBD */
-} __packed;
-
-/* Mesh Proxy Update Confirmation */
-struct ieee80211_meshpuc_ie {
-	uint8_t		puc_ie;		/* IEEE80211_ELEMID_MESHPUC */
-	uint8_t		puc_len;
-	uint8_t		puc_flags;
-	uint8_t		puc_seq;	/* PU Sequence Number */
-	uint8_t		puc_daddr[IEEE80211_ADDR_LEN];
-} __packed;
-
-/* Mesh Security Capability */
-struct ieee80211_meshsc_ie {
-	uint8_t		sc_ie;		/* IEEE80211_ELEMID_MESHSC */
-	uint8_t		sc_len;
-	uint8_t		sc_mkdid[IEEE80211_ADDR_LEN];	/* MKD Domain ID */
-	uint8_t		sc_sconfig;	/* Security Configuration */
-} __packed;
-
-/* Mesh Security Authentication */
-struct ieee80211_meshsa_ie {
-	uint8_t		sa_ie;		/* IEEE80211_ELEMID_MESHSA */
-	uint8_t		sa_len;
-	uint8_t		sa_handshake;
-	uint8_t		sa_maid[IEEE80211_ADDR_LEN];	/* MA-ID */
-	uint8_t		sa_lmpid[IEEE80211_ADDR_LEN];
-	uint32_t	sa_akm;		/* Selected AKM Suite */
-	uint32_t	sa_pcs;		/* Selected Pairwise Cipher Suite */
-	uint8_t		sa_pmk[16];
-	uint8_t		sa_lnonce[32];
-	uint8_t		sa_pnonce[32];
-	/* XXX more parameters */
-} __packed;
-
-/* Mesh Anti-Clogging Token */
-struct ieee80211_meshact_ie {
-	uint8_t		act_ie;		/* IEEE80211_ELEMID_MESHACT */
-	uint8_t		act_len;
-} __packed;
-
 #define	ATH_OUI			0x7f0300	/* Atheros OUI */
 #define	ATH_OUI_TYPE		0x01		/* Atheros protocol ie */
 

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h	Fri Apr 24 10:19:25 2009	(r191459)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h	Fri Apr 24 10:27:57 2009	(r191460)
@@ -31,6 +31,265 @@
 #ifndef _NET80211_IEEE80211_MESH_H_
 #define _NET80211_IEEE80211_MESH_H_
 
+/*
+ * 802.11s Information Elements.
+*/
+/* Mesh Configuration */
+struct ieee80211_meshconf_ie {
+	uint8_t		conf_ie;	/* IEEE80211_ELEMID_MESHCONF */
+	uint8_t		conf_len;
+	uint8_t		conf_ver;
+	uint32_t	conf_apspi;	/* Active Path Sel. Proto. ID */
+	uint32_t	conf_apsmi;	/* APS Metric Identifier */
+	uint32_t	conf_ccmi;	/* Congestion Control Mode ID  */
+	uint8_t		conf_finfo;	/* Formation Information */
+	uint8_t		conf_cap;
+} __packed;
+
+#define	IEEE80211_MESHCONF_APSPI_HWMP_OUI	0x000fac
+#define	IEEE80211_MESHCONF_APSPI_HWMP_VALUE	0xff	/* XXX Linux */
+#define	IEEE80211_MESHCONF_APSMI_AIRTIME_OUI	0x000fac
+#define	IEEE80211_MESHCONF_APSMI_AIRTIME_VALUE	0xff	/* XXX Linux */
+#define	IEEE80211_MESHCONF_CCMI_DEFAULT_OUI	0x000fac
+#define	IEEE80211_MESHCONF_CCMI_DEFAULT_VALUE	0xff	/* XXX Linux */
+#define	IEEE80211_MESHCONF_CCMI_NULL_OUI	0x000fac
+#define	IEEE80211_MESHCONF_CCMI_NULL_VALUE	255
+#define	IEEE80211_MESHCONF_FORM_MP		(1 << 1) /* connected to portal */
+#define	IEEE80211_MESHCONF_FORM_NEIGH		(1 << 4) /* no of neighbours */
+
+/* Mesh Identifier */
+struct ieee80211_meshid_ie {
+	uint8_t		id_ie;		/* IEEE80211_ELEMID_MESHID */
+	uint8_t		id_len;
+} __packed;
+
+#define	IEEE80211_MESHID_MAX_SIZE \
+	(sizeof(struct ieee80211_meshid_ie) + IEEE80211_NWID_LEN)
+
+/* Link Metric Report */
+struct ieee80211_meshlink_ie {
+	uint8_t		link_ie;	/* IEEE80211_ELEMID_MESHLINK */
+	uint8_t		link_len;
+	/* XXXRP: missing  variable metric */
+} __packed;
+
+/* Congestion Notification */
+struct ieee80211_meshcngst_ie {
+	uint8_t		cngst_ie;	/* IEEE80211_ELEMID_MESHCNGST */
+	uint8_t		cngst_len;
+	uint16_t	cngst_timer[4];	/* Expiration Timers: AC_BK,
+					   AC_BE, AC_VI, AC_VO */
+} __packed;
+
+/* Peer Link Management */
+struct ieee80211_meshpeer_ie {
+	uint8_t		peer_ie;	/* IEEE80211_ELEMID_MESHPEER */
+	uint8_t		peer_len;
+	uint8_t		peer_subtype;
+	uint16_t	peer_llinkid;	/* Local Link ID */
+	uint16_t	peer_linkid;	/* Peer Link ID */
+	uint16_t	peer_rcode;
+} __packed;
+
+enum {
+	IEEE80211_MESH_PEER_LINK_OPEN		= 0,
+	IEEE80211_MESH_PEER_LINK_CONFIRM	= 1,
+	IEEE80211_MESH_PEER_LINK_CLOSE		= 2,
+	/* values 3-255 are reserved */
+};
+
+/* Mesh Channel Switch Annoucement */
+struct ieee80211_meshcsa_ie {
+	uint8_t		csa_ie;		/* IEEE80211_ELEMID_MESHCSA */
+	uint8_t		csa_len;
+	uint8_t		csa_mode;
+	uint8_t		csa_newclass;	/* New Regulatory Class */
+	uint8_t		csa_newchan;
+	uint8_t		csa_precvalue;	/* Precedence Value */
+	uint8_t		csa_count;
+} __packed;
+
+/* XXXRP: this is equal to the non mesh version. Should we simplify ? */
+/* Mesh TIM */
+struct ieee80211_meshtim_ie {
+	uint8_t		tim_ie;			/* IEEE80211_ELEMID_MESHTIM */
+	uint8_t		tim_len;
+	uint8_t		tim_count;		/* DTIM count */
+	uint8_t		tim_period;		/* DTIM period */
+	uint8_t		tim_bitctl;		/* bitmap control */
+	uint8_t		tim_bitmap[1];		/* variable-length bitmap */
+} __packed;
+
+/* Mesh Awake Window */
+struct ieee80211_meshawakew_ie {
+	uint8_t		awakew_ie;		/* IEEE80211_ELEMID_MESHAWAKEW */
+	uint8_t		awakew_len;
+	uint8_t		awakew_windowlen;	/* in TUs */
+} __packed;
+
+/* Mesh Beacon Timing */
+struct ieee80211_meshbeacont_ie {
+	uint8_t		beacont_ie;		/* IEEE80211_ELEMID_MESHBEACONT */
+	uint8_t		beacont_len;
+	struct {
+		uint8_t		mp_aid;		/* Least Octet of AID */
+		uint16_t	mp_btime;	/* Beacon Time */
+		uint16_t	mp_bint;	/* Beacon Interval */
+	} mp[1] __packed;			/* NB: variable size */
+} __packed;
+
+/* Mesh Timing Info */
+struct ieee80211_meshtinfo_ie {
+	uint8_t		tinfo_ie;		/* IEEE80211_ELEMID_MESHTIMINGINFO */
+	uint8_t		tinfo_len;
+	uint8_t		tinfo_field;
+} __packed;
+
+#define IEEE80211_MESH_TINFO_BEACON_PARAMS_CHANGED	(1 << 8)
+#define	IEEE80211_MESH_TINFO_MDA_ENABLED		(1 << 7)
+
+/* Synchronization Protocol */
+struct ieee80211_meshsyncproto_ie {
+	uint8_t		syncproto_ie;		/* IEEE80211_ELEMID_MESHSYNCPROTO */
+	uint8_t		syncproto_len;
+	uint32_t	syncproto_id;		/* Sync Protocol ID OUI */
+} __packed;
+
+/* Neighbour Offset Protocol */
+#define IEEE80211_MESH_SYNCPROTO_NEIGHOFFSET_OUI	0x000fac
+#define IEEE80211_MESH_SYNCPROTO_NEIGHOFFSET_VALUE	0
+
+/* MDAOP Setup Request */
+struct ieee80211_meshdaopsreq_ie {
+	uint8_t		daopsreq_ie;		/* IEEE80211_ELEMID_MESHDAOPSREQ */
+	uint8_t		daopsreq_len;
+	uint8_t		daopsreq_setid;
+	uint32_t	daposreq_reserv;	/* MDAOP Reservation */
+} __packed;
+
+/* MDAOP Setup Reply */
+struct ieee80211_meshdaopsrep_ie {
+	uint8_t		daopsrep_ie;		/* IEEE80211_ELEMID_MESHDAOPSREPLY */
+	uint8_t		daopsrep_len;
+	uint8_t		daopsrep_setid;
+	uint8_t		daopsrep_code;		/* Reply Code */
+	uint8_t		daopsrep_reserv;	/* MDAOP Reservation */
+} __packed;
+
+enum {
+	IEEE80211_MESH_DAOP_REPLY_ACCEPT 		= 0,
+	IEEE80211_MESH_DAOP_REPLY_RESERV_CONFLICT	= 1,
+	IEEE80211_MESH_DAOP_REPLY_MAF_LIMIT		= 2,
+	/* everything else is reserved */
+};
+
+/* MDAOP Advertisements */
+/* TBD */
+
+
+/* MDAOP Set Teardown */
+struct ieee80211_meshdaopst_ie {
+        uint8_t         daopsrep_ie;            /* IEEE80211_ELEMID_MESHDAOPSREP */
+        uint8_t         daopsrep_len;
+        uint8_t         daopsrep_setid;
+        uint8_t         daopsrep_setowner[IEEE80211_ADDR_LEN];
+} __packed;
+
+/* Portal (MP) Annoucement */
+struct ieee80211_meshpann_ie {
+	uint8_t		pann_ie;		/* IEEE80211_ELEMID_MESHPANN */
+	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 */
+} __packed;
+
+/* Root (MP) Annoucement */
+struct ieee80211_meshrann_ie {
+	uint8_t		rann_ie;		/* IEEE80211_ELEMID_MESHRANN */
+	uint8_t		rann_len;
+	uint8_t		rann_flags;
+	uint8_t		rann_hopcount;
+	uint8_t		rann_ttl;
+	uint8_t		rann_addr[IEEE80211_ADDR_LEN];
+	uint32_t	rann_seq;		/* HWMP Sequence Number */		
+	uint32_t	rann_metric;
+} __packed;
+
+/* Mesh Path Request */
+struct ieee80211_meshpreq_ie {
+	uint8_t		preq_ie;	/* IEEE80211_ELEMID_MESHPREQ */
+	uint8_t		preq_len;
+	/* XXXRP: TBD */
+} __packed;
+
+/* Mesh Path Reply */
+struct ieee80211_meshprep_ie {
+	uint8_t		prep_ie;	/* IEEE80211_ELEMID_MESHPREP */
+	uint8_t		prep_len;
+	/* XXXRP: TBD */
+} __packed;
+
+/* Mesh Path Error */
+struct ieee80211_meshperr_ie {
+	uint8_t		perr_ie;	/* IEEE80211_ELEMID_MESHPERR */
+	uint8_t		perr_len;
+	uint8_t		perr_mode;
+	uint8_t		perr_ndests;	/* Number of Destinations */
+	struct {
+		uint8_t		dest_addr[IEEE80211_ADDR_LEN];
+		uint32_t	dest_seq;
+	} dests[1] __packed;		/* NB: variable size */
+} __packed;
+
+/* Mesh Proxy Update */
+struct ieee80211_meshpu_ie {
+	uint8_t		pu_ie;		/* IEEE80211_ELEMID_MESHPU */
+	uint8_t		pu_len;
+	/* XXXRP: TBD */
+} __packed;
+
+/* Mesh Proxy Update Confirmation */
+struct ieee80211_meshpuc_ie {
+	uint8_t		puc_ie;		/* IEEE80211_ELEMID_MESHPUC */
+	uint8_t		puc_len;
+	uint8_t		puc_flags;
+	uint8_t		puc_seq;	/* PU Sequence Number */
+	uint8_t		puc_daddr[IEEE80211_ADDR_LEN];
+} __packed;
+
+/* Mesh Security Capability */
+struct ieee80211_meshsc_ie {
+	uint8_t		sc_ie;		/* IEEE80211_ELEMID_MESHSC */
+	uint8_t		sc_len;
+	uint8_t		sc_mkdid[IEEE80211_ADDR_LEN];	/* MKD Domain ID */
+	uint8_t		sc_sconfig;	/* Security Configuration */
+} __packed;
+
+/* Mesh Security Authentication */
+struct ieee80211_meshsa_ie {
+	uint8_t		sa_ie;		/* IEEE80211_ELEMID_MESHSA */
+	uint8_t		sa_len;
+	uint8_t		sa_handshake;
+	uint8_t		sa_maid[IEEE80211_ADDR_LEN];	/* MA-ID */
+	uint8_t		sa_lmpid[IEEE80211_ADDR_LEN];
+	uint32_t	sa_akm;		/* Selected AKM Suite */
+	uint32_t	sa_pcs;		/* Selected Pairwise Cipher Suite */
+	uint8_t		sa_pmk[16];
+	uint8_t		sa_lnonce[32];
+	uint8_t		sa_pnonce[32];
+	/* XXX more parameters */
+} __packed;
+
+/* Mesh Anti-Clogging Token */
+struct ieee80211_meshact_ie {
+	uint8_t		act_ie;		/* IEEE80211_ELEMID_MESHACT */
+	uint8_t		act_len;
+} __packed;
+
+
 void	ieee80211_mesh_attach(struct ieee80211com *);
 void	ieee80211_mesh_detach(struct ieee80211com *);
 


More information about the svn-src-projects mailing list