mac80211: fix erroneous clearing of MESH_PATH_SN_VALID flag
authorJavier Cardona <javier@cozybit.com>
Mon, 8 Aug 2011 23:30:50 +0000 (16:30 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 10 Aug 2011 18:07:43 +0000 (14:07 -0400)
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: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mesh_hwmp.c

index 8404fa5153c649b8e71d5111d86d7c41714c75e0..3d8e55ae6ab6fea5fa7b41605a1be66b1d97ae6d 100644 (file)
@@ -449,7 +449,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,
 
                if (fresh_info) {
                        mesh_path_assign_nexthop(mpath, sta);
-                       mpath->flags &= ~MESH_PATH_SN_VALID;
                        mpath->metric = last_hop_metric;
                        mpath->exp_time = time_after(mpath->exp_time, exp_time)
                                          ?  mpath->exp_time : exp_time;