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

Sam Leffler sam at FreeBSD.org
Fri Jul 10 16:29:06 UTC 2009


Author: sam
Date: Fri Jul 10 16:29:05 2009
New Revision: 195565
URL: http://svn.freebsd.org/changeset/base/195565

Log:
  instead of converting timeouts to ticks on use convert them when they
  are set via sysctl; in general make handling consistent with other
  places in net80211

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

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Jul 10 16:18:40 2009	(r195564)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Jul 10 16:29:05 2009	(r195565)
@@ -91,24 +91,23 @@ static int	mesh_verify_meshpeer(struct i
 uint32_t	mesh_airtime_calc(struct ieee80211_node *);
 
 /*
- * Timeout values come from the specification and are in miliseconds.
+ * Timeout values come from the specification and are in milliseconds.
  */
-static int ieee80211_mesh_retrytimeout = 40;
-#define	RETRY_TIMEOUT	msecs_to_ticks(ieee80211_mesh_retrytimeout)
-static int ieee80211_mesh_holdingtimeout = 40;
-#define	HOLDING_TIMEOUT	msecs_to_ticks(ieee80211_mesh_holdingtimeout)
-static int ieee80211_mesh_confirmtimeout = 40;
-#define	CONFIRM_TIMEOUT	msecs_to_ticks(ieee80211_mesh_confirmtimeout)
-static int ieee80211_mesh_maxretries = 2;
-
 SYSCTL_NODE(_net_wlan, OID_AUTO, mesh, CTLFLAG_RD, 0,
     "IEEE 802.11s parameters");
-SYSCTL_INT(_net_wlan_mesh, OID_AUTO, retrytimeout, CTLTYPE_INT | CTLFLAG_RW,
-    &ieee80211_mesh_retrytimeout, 0, "Retry timeout in msec");
-SYSCTL_INT(_net_wlan_mesh, OID_AUTO, holdingtimeout, CTLTYPE_INT | CTLFLAG_RW,
-    &ieee80211_mesh_holdingtimeout, 0, "Holding state timeout in msec");
-SYSCTL_INT(_net_wlan_mesh, OID_AUTO, confirmtimeout, CTLTYPE_INT | CTLFLAG_RW,
-    &ieee80211_mesh_confirmtimeout, 0, "Confirm state timeout in msec");
+static int ieee80211_mesh_retrytimeout = -1;
+SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, retrytimeout, CTLTYPE_INT | CTLFLAG_RW,
+    &ieee80211_mesh_retrytimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
+    "Retry timeout (msec)");
+static int ieee80211_mesh_holdingtimeout = -1;
+SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, holdingtimeout, CTLTYPE_INT | CTLFLAG_RW,
+    &ieee80211_mesh_holdingtimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
+    "Holding state timeout (msec)");
+static int ieee80211_mesh_confirmtimeout = -1;
+SYSCTL_PROC(_net_wlan_mesh, OID_AUTO, confirmtimeout, CTLTYPE_INT | CTLFLAG_RW,
+    &ieee80211_mesh_confirmtimeout, 0, ieee80211_sysctl_msecs_ticks, "I",
+    "Confirm state timeout (msec)");
+static int ieee80211_mesh_maxretries = 2;
 SYSCTL_INT(_net_wlan_mesh, OID_AUTO, maxretries, CTLTYPE_INT | CTLFLAG_RW,
     &ieee80211_mesh_maxretries, 0,
     "Maximum retries during peer link establishment");
@@ -298,17 +297,23 @@ mesh_select_proto_metric(struct ieee8021
 	}
 	return ENOENT;
 }
-
-
 #undef	N
 
 static void
 ieee80211_mesh_init(void)
 {
+
 	memset(mesh_proto_paths, 0, sizeof(mesh_proto_paths));
 	memset(mesh_proto_metrics, 0, sizeof(mesh_proto_metrics));
 
 	/*
+	 * Setup mesh parameters that depends on the clock frequency.
+	 */
+	ieee80211_mesh_retrytimeout = msecs_to_ticks(40);
+	ieee80211_mesh_holdingtimeout = msecs_to_ticks(40);
+	ieee80211_mesh_confirmtimeout = msecs_to_ticks(40);
+
+	/*
 	 * Register action frame handlers.
 	 */
 	ieee80211_recv_action_register(IEEE80211_ACTION_CAT_MESHPEERING,
@@ -1918,16 +1923,17 @@ mesh_peer_timeout_setup(struct ieee80211
 {
 	switch (ni->ni_mlstate) {
 	case IEEE80211_NODE_MESH_HOLDING:
-		ni->ni_mltval = HOLDING_TIMEOUT;
+		ni->ni_mltval = ieee80211_mesh_holdingtimeout;
 		break;
 	case IEEE80211_NODE_MESH_CONFIRMRCV:
-		ni->ni_mltval = CONFIRM_TIMEOUT;
+		ni->ni_mltval = ieee80211_mesh_confirmtimeout;
 		break;
 	case IEEE80211_NODE_MESH_IDLE:
 		ni->ni_mltval = 0;
 		break;
 	default:
-		ni->ni_mltval = RETRY_TIMEOUT;
+		ni->ni_mltval = ieee80211_mesh_retrytimeout;
+		break;
 	}
 	if (ni->ni_mltval)
 		callout_reset(&ni->ni_mltimer, ni->ni_mltval,


More information about the svn-src-projects mailing list