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