Skip site navigation (1)Skip section navigation (2)
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>