summaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh_hwmp.c
diff options
context:
space:
mode:
authorRui Paulo <rpaulo@gmail.com>2009-11-10 00:46:51 +0100
committerJohn W. Linville <linville@tuxdriver.com>2009-11-13 23:43:55 +0100
commita6a58b4f14106e61e5d78aac7995686ed0d5eab8 (patch)
tree17ea8b8a5248246b40110390260b752b826e0913 /net/mac80211/mesh_hwmp.c
parentmac80211: update PERR frame format (diff)
downloadlinux-a6a58b4f14106e61e5d78aac7995686ed0d5eab8.tar.xz
linux-a6a58b4f14106e61e5d78aac7995686ed0d5eab8.zip
mac80211: properly forward the RANN IE
Increase hopcount and convert metric to LE before forwarding the RANN action frame. Signed-off-by: Rui Paulo <rpaulo@gmail.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Reviewed-by: Andrey Yurovsky <andrey@cozybit.com> Tested-by: Brian Cavagnolo <brian@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh_hwmp.c')
-rw-r--r--net/mac80211/mesh_hwmp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index eb4180bff575..7d36f3a741a5 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -686,6 +686,7 @@ static void hwmp_rann_frame_process(struct ieee80211_sub_if_data *sdata,
orig_addr = rann->rann_addr;
orig_dsn = rann->rann_seq;
hopcount = rann->rann_hopcount;
+ hopcount++;
metric = rann->rann_metric;
mhwmp_dbg("received RANN from %pM\n", orig_addr);
@@ -706,7 +707,8 @@ static void hwmp_rann_frame_process(struct ieee80211_sub_if_data *sdata,
mesh_path_sel_frame_tx(MPATH_RANN, flags, orig_addr,
cpu_to_le32(orig_dsn),
0, NULL, 0, sdata->dev->broadcast,
- hopcount, ttl, 0, cpu_to_le32(metric),
+ hopcount, ttl, 0,
+ cpu_to_le32(metric + mpath->metric),
0, sdata);
mpath->dsn = orig_dsn;
}