From owner-svn-src-projects@FreeBSD.ORG Thu May 14 14:02:00 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 81B4C1065673; Thu, 14 May 2009 14:02:00 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 636EB8FC13; Thu, 14 May 2009 14:02:00 +0000 (UTC) (envelope-from rpaulo@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 n4EE206k093152; Thu, 14 May 2009 14:02:00 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4EE20Xi093151; Thu, 14 May 2009 14:02:00 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905141402.n4EE20Xi093151@svn.freebsd.org> From: Rui Paulo Date: Thu, 14 May 2009 14:02:00 +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: r192100 - 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: Thu, 14 May 2009 14:02:02 -0000 Author: rpaulo Date: Thu May 14 14:02:00 2009 New Revision: 192100 URL: http://svn.freebsd.org/changeset/base/192100 Log: * use C99 inline * implement remaining mesh peering timers Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_mesh.c Thu May 14 14:01:00 2009 (r192099) +++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Thu May 14 14:02:00 2009 (r192100) @@ -69,18 +69,25 @@ static int mesh_input(struct ieee80211_n static void mesh_recv_mgmt(struct ieee80211_node *, struct mbuf *, int, int, int, uint32_t); static void mesh_recv_action(struct ieee80211_node *, struct mbuf *); -static __inline void mesh_peer_timeout_setup(struct ieee80211_node *); +static inline void mesh_peer_timeout_setup(struct ieee80211_node *); static void mesh_peer_timeout_backoff(struct ieee80211_node *); static void mesh_peer_timeout_cb(void *); -static __inline void mesh_peer_timeout_stop(struct ieee80211_node *); +static inline void mesh_peer_timeout_stop(struct ieee80211_node *); static int mesh_verify_meshid(struct ieee80211vap *, struct ieee80211_meshid_ie *); static int mesh_verify_meshconf(struct ieee80211vap *, struct ieee80211_meshconf_ie *); -int ieee80211_mesh_retrytimeout = 40; /* 40 miliseconds */ +/* timeout values in miliseconds */ +static const int ieee80211_mesh_retrytimeout = 40; #define RETRY_TIMEOUT msecs_to_ticks(ieee80211_mesh_retrytimeout) -int ieee80211_mesh_maxretries = 60; +static const int ieee80211_mesh_holdingtimeout = 40; +#define HOLDING_TIMEOUT msecs_to_ticks(ieee80211_mesh_holdingtimeout) +static const int ieee80211_mesh_confirmtimeout = 40; +#define CONFIRM_TIMEOUT msecs_to_ticks(ieee80211_mesh_confirmtimeout) +static const int ieee80211_mesh_maxretries = 2; +/* non static for sysctl hookup */ +int ieee80211_mesh_ttl = 31; /* unalligned little endian access */ #define LE_READ_2(p) \ @@ -204,7 +211,7 @@ mesh_newstate(struct ieee80211vap *vap, * of the less interesting frames that come frequently * (e.g. beacons). */ -static __inline int +static inline int doprint(struct ieee80211vap *vap, int subtype) { switch (subtype) { @@ -824,11 +831,21 @@ mesh_recv_action(struct ieee80211_node * } } -static __inline void +static inline void mesh_peer_timeout_setup(struct ieee80211_node *ni) { - ni->ni_mtimerval = RETRY_TIMEOUT; - callout_reset(&ni->ni_mtimer, RETRY_TIMEOUT, mesh_peer_timeout_cb, ni); + switch (ni->ni_peerstate) { + case IEEE80211_NODE_MESH_HOLDING: + ni->ni_mtimerval = HOLDING_TIMEOUT; + break; + case IEEE80211_NODE_MESH_CONFIRMRECV: + ni->ni_mtimerval = CONFIRM_TIMEOUT; + break; + default: + ni->ni_mtimerval = RETRY_TIMEOUT; + } + callout_reset(&ni->ni_mtimer, ni->ni_mtimerval, mesh_peer_timeout_cb, + ni); } /* @@ -845,7 +862,7 @@ mesh_peer_timeout_backoff(struct ieee802 ni); } -static __inline void +static inline void mesh_peer_timeout_stop(struct ieee80211_node *ni) { callout_stop(&ni->ni_mtimer); @@ -920,7 +937,7 @@ mesh_peer_timeout_cb(void *arg) } } -static __inline int +static inline int mesh_verify_meshid(struct ieee80211vap *vap, struct ieee80211_meshid_ie *meshid) {