Date: Thu, 14 May 2009 14:02:00 +0000 (UTC) From: Rui Paulo <rpaulo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r192100 - projects/mesh11s/sys/net80211 Message-ID: <200905141402.n4EE20Xi093151@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905141402.n4EE20Xi093151>