From owner-svn-src-projects@FreeBSD.ORG Fri Jul 10 16:29:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB32C1065687; Fri, 10 Jul 2009 16:29:05 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D9C438FC16; Fri, 10 Jul 2009 16:29:05 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n6AGT5KH025300; Fri, 10 Jul 2009 16:29:05 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n6AGT5pr025298; Fri, 10 Jul 2009 16:29:05 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200907101629.n6AGT5pr025298@svn.freebsd.org> From: Sam Leffler Date: Fri, 10 Jul 2009 16:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195565 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jul 2009 16:29:06 -0000 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,