Commit 1b1de7aa authored by Javier Cardona's avatar Javier Cardona Committed by John W. Linville

mac80211: fix erroneous clearing of MESH_PATH_SN_VALID flag

When a PREQ or PREP is received from an intermediate node, it contains
useful information for path selection but it doesn't include the
originator's sequence number.   Therefore, when updating the mesh path
to that intermediate node, we should not set the MESH_PATH_SN_VALID
flag.  BUT, if the flag is set, it should not be unset as we might have
received a valid sequence number for that intermediate node in the past.

This issue was reported, fixed and tested by Ya Bo (游波) and Pedro
Larbig (ASPj).
Signed-off-by: default avatarJavier Cardona <javier@cozybit.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9f3a35df
...@@ -449,7 +449,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, ...@@ -449,7 +449,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,
if (fresh_info) { if (fresh_info) {
mesh_path_assign_nexthop(mpath, sta); mesh_path_assign_nexthop(mpath, sta);
mpath->flags &= ~MESH_PATH_SN_VALID;
mpath->metric = last_hop_metric; mpath->metric = last_hop_metric;
mpath->exp_time = time_after(mpath->exp_time, exp_time) mpath->exp_time = time_after(mpath->exp_time, exp_time)
? mpath->exp_time : exp_time; ? mpath->exp_time : exp_time;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment