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

Rui Paulo rpaulo at FreeBSD.org
Fri Apr 24 11:23:22 UTC 2009


Author: rpaulo
Date: Fri Apr 24 11:23:21 2009
New Revision: 191463
URL: http://svn.freebsd.org/changeset/base/191463

Log:
  Initial implementation of ieee80211_parse_meshid().
  
  Sponsored by:	The FreeBSD Foundation

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

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Apr 24 11:20:15 2009	(r191462)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Apr 24 11:23:21 2009	(r191463)
@@ -370,7 +370,29 @@ mesh_recv_mgmt(struct ieee80211_node *ni
 		break;
 	}
 }
+/*
+ * Parse a MESH ID ie on station join.
+ */
+void
+ieee80211_parse_meshid(struct ieee80211_node *ni, const uint8_t *ie)
+{
+	struct ieee80211vap *vap = ni->ni_vap;
 
+	if (vap->iv_caps & IEEE80211_C_MBSS) {
+		const struct ieee80211_meshid_ie *meshid =
+		    (const struct ieee80211_meshid_ie *)ie;
+
+		/*
+		 * Propagate capabilities based on the local
+		 * configuration and the remote station's advertised
+		 * capabilities. In particular this permits us to
+		 * enable use of QoS to disable ACK's.
+		 */
+		if ((vap->iv_flags & IEEE80211_F_WME) &&
+		    ni->ni_ies.wme_ie != NULL)
+			ni->ni_flags |= IEEE80211_NODE_QOS;
+	}
+}
 
 static int
 mesh_ioctl_get80211(struct ieee80211vap *vap, struct ieee80211req *ireq)

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h	Fri Apr 24 11:20:15 2009	(r191462)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h	Fri Apr 24 11:23:21 2009	(r191463)
@@ -291,5 +291,6 @@ struct ieee80211_meshact_ie {
 
 void	ieee80211_mesh_attach(struct ieee80211com *);
 void	ieee80211_mesh_detach(struct ieee80211com *);
+void	ieee80211_parse_meshid(struct ieee80211_node *, const uint8_t *);
 
 #endif /* !_NET80211_IEEE80211_MESH_H_ */


More information about the svn-src-projects mailing list