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

Rui Paulo rpaulo at FreeBSD.org
Thu Apr 16 14:57:53 PDT 2009


Author: rpaulo
Date: Thu Apr 16 21:57:52 2009
New Revision: 191152
URL: http://svn.freebsd.org/changeset/base/191152

Log:
  Add some initial code.
  
  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	Thu Apr 16 21:56:34 2009	(r191151)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c	Thu Apr 16 21:57:52 2009	(r191152)
@@ -29,7 +29,7 @@ __FBSDID("$FreeBSD$");
 #endif
 
 /*
- * IEEE 802.11s Mesh support.
+ * IEEE 802.11s Mesh Point (MBSS) support.
  */
 #include "opt_inet.h"
 #include "opt_wlan.h"
@@ -55,6 +55,49 @@ __FBSDID("$FreeBSD$");
 #include <net/bpf.h>
 
 #include <net80211/ieee80211_var.h>
-#include <net80211/ieee80211_sta.h>
+#include <net80211/ieee80211_mesh.h>
 #include <net80211/ieee80211_input.h>
 
+static void	mesh_vattach(struct ieee80211vap *);
+static int	mesh_newstate(struct ieee80211vap *, enum ieee80211_state, int);
+static int	mesh_input(struct ieee80211_node *, struct mbuf *, int, int,
+		    uint32_t);
+
+void
+ieee80211_mesh_attach(struct ieee80211com *ic)
+{
+	ic->ic_vattach[IEEE80211_M_MBSS] = mesh_vattach;
+}
+
+void
+ieee80211_mesh_detach(struct ieee80211com *ic)
+{
+}
+
+static void
+mesh_vattach(struct ieee80211vap *vap)
+{
+	vap->iv_newstate = mesh_newstate;
+	vap->iv_input = mesh_input;
+	vap->iv_opdetach = mesh_vdetach;
+}
+
+static int
+mesh_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
+{
+	struct ieee80211com *ic = vap->iv_ic;
+	enum ieee80211_state ostate;
+
+	IEEE80211_LOCK_ASSERT(ic);
+
+        ostate = vap->iv_state;
+        IEEE80211_DPRINTF(vap, IEEE80211_MSG_STATE, "%s: %s -> %s (%d)\n",
+            __func__, ieee80211_state_name[ostate],
+            ieee80211_state_name[nstate], arg);
+        vap->iv_state = nstate;                 /* state transition */
+        if (ostate != IEEE80211_S_SCAN)
+                ieee80211_cancel_scan(vap);     /* background scan */
+        switch (nstate) {
+	}
+}
+

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h	Thu Apr 16 21:56:34 2009	(r191151)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h	Thu Apr 16 21:57:52 2009	(r191152)
@@ -27,4 +27,7 @@
 #ifndef _NET80211_IEEE80211_MESH_H_
 #define _NET80211_IEEE80211_MESH_H_
 
+void	ieee80211_mesh_attach(struct ieee80211com *);
+void	ieee80211_mesh_detach(struct ieee80211com *);
+
 #endif /* !_NET80211_IEEE80211_MESH_H_ */


More information about the svn-src-projects mailing list