diff options
author | Javier Cardona <javier@cozybit.com> | 2011-08-09 19:45:08 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-08-24 13:59:42 -0400 |
commit | 5ee68e5b39de5cefecf147c58711f8ab01c21231 (patch) | |
tree | 59a39c4dc5a38497aa786689552136d95c690ecf /net/mac80211/mesh.c | |
parent | 00e3f25c8556384bfec2a168c41e885fa6a7748c (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.c | 3 |
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; |