aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh.c
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2011-08-09 19:45:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-24 13:59:42 -0400
commit5ee68e5b39de5cefecf147c58711f8ab01c21231 (patch)
tree59a39c4dc5a38497aa786689552136d95c690ecf /net/mac80211/mesh.c
parent00e3f25c8556384bfec2a168c41e885fa6a7748c (diff)
mac80211: mesh gate implementation
In this implementation, a mesh gate is a root node with a certain bit set in its RANN flags. The mpath to this root node is marked as a path to a gate, and added to our list of known gates for this if_mesh. Once a path discovery process fails, we forward the unresolved frames to a known gate. Thanks to Luis Rodriguez for refactoring and bug fix help. Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r--net/mac80211/mesh.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index ecdde6ce4df0..e120fefb4e40 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -545,7 +545,7 @@ void ieee80211_mesh_quiesce(struct ieee80211_sub_if_data *sdata)
545{ 545{
546 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; 546 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
547 547
548 /* use atomic bitops in case both timers fire at the same time */ 548 /* use atomic bitops in case all timers fire at the same time */
549 549
550 if (del_timer_sync(&ifmsh->housekeeping_timer)) 550 if (del_timer_sync(&ifmsh->housekeeping_timer))
551 set_bit(TMR_RUNNING_HK, &ifmsh->timers_running); 551 set_bit(TMR_RUNNING_HK, &ifmsh->timers_running);
@@ -752,6 +752,7 @@ void ieee80211_mesh_init_sdata(struct ieee80211_sub_if_data *sdata)
752 ifmsh->accepting_plinks = true; 752 ifmsh->accepting_plinks = true;
753 ifmsh->preq_id = 0; 753 ifmsh->preq_id = 0;
754 ifmsh->sn = 0; 754 ifmsh->sn = 0;
755 ifmsh->num_gates = 0;
755 atomic_set(&ifmsh->mpaths, 0); 756 atomic_set(&ifmsh->mpaths, 0);
756 mesh_rmc_init(sdata); 757 mesh_rmc_init(sdata);
757 ifmsh->last_preq = jiffies; 758 ifmsh->last_preq = jiffies;