diff options
author | sam <sam@FreeBSD.org> | 2009-07-21 19:38:22 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-07-21 19:38:22 +0000 |
commit | 68cbb6a7463b70cec8d8a0cd9948339a98406099 (patch) | |
tree | 0f9e36b532861f65854a4eb56c1f537c203e5b91 /sys/net80211/ieee80211_mesh.c | |
parent | e5dfb90bc39200659ab00a42b65e93605c31f968 (diff) | |
download | FreeBSD-src-68cbb6a7463b70cec8d8a0cd9948339a98406099.zip FreeBSD-src-68cbb6a7463b70cec8d8a0cd9948339a98406099.tar.gz |
store mesh timers as ticks and sysctls for changing the defaults
Reviewed by: rpaulo
Approved by: re (kib)
Diffstat (limited to 'sys/net80211/ieee80211_mesh.c')
-rw-r--r-- | sys/net80211/ieee80211_mesh.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c index 912cad4..4cbc9bd 100644 --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -180,7 +180,7 @@ mesh_rt_add_locked(struct ieee80211_mesh_state *ms, if (rt != NULL) { IEEE80211_ADDR_COPY(rt->rt_dest, dest); rt->rt_priv = (void *)ALIGN(&rt[1]); - getmicrouptime(&rt->rt_crtime); + rt->rt_crtime = ticks; TAILQ_INSERT_TAIL(&ms->ms_routes, rt, rt_next); } return rt; @@ -310,17 +310,13 @@ mesh_rt_flush_invalid(struct ieee80211vap *vap) { struct ieee80211_mesh_state *ms = vap->iv_mesh; struct ieee80211_mesh_route *rt, *next; - struct timeval tv, delta; if (ms == NULL) return; - getmicrouptime(&tv); MESH_RT_LOCK(ms); TAILQ_FOREACH_SAFE(rt, &ms->ms_routes, rt_next, next) { - delta = tv; - timevalsub(&delta, &rt->rt_crtime); if ((rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID) == 0 && - timevalcmp(&delta, &ms->ms_ppath->mpp_inact, >=)) + ticks - rt->rt_crtime >= ms->ms_ppath->mpp_inact) mesh_rt_del(ms, rt); } MESH_RT_UNLOCK(ms); @@ -676,9 +672,7 @@ mesh_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) break; } ieee80211_node_authorize(vap->iv_bss); - callout_reset(&ms->ms_cleantimer, - msecs_to_ticks(ms->ms_ppath->mpp_inact.tv_sec * 1000 + - ms->ms_ppath->mpp_inact.tv_usec / 1000), + callout_reset(&ms->ms_cleantimer, ms->ms_ppath->mpp_inact, mesh_rt_cleanup_cb, vap); break; default: @@ -696,9 +690,7 @@ mesh_rt_cleanup_cb(void *arg) struct ieee80211_mesh_state *ms = vap->iv_mesh; mesh_rt_flush_invalid(vap); - callout_reset(&ms->ms_cleantimer, - msecs_to_ticks(ms->ms_ppath->mpp_inact.tv_sec * 1000 + - ms->ms_ppath->mpp_inact.tv_usec / 1000), + callout_reset(&ms->ms_cleantimer, ms->ms_ppath->mpp_inact, mesh_rt_cleanup_cb, vap); } |