svn commit: r192100 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Thu May 14 14:02:02 UTC 2009
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)
{
More information about the svn-src-projects
mailing list