diff options
author | David Woo <xinhua_wu@realsil.com.cn> | 2009-08-12 14:03:43 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-08-14 09:14:06 -0400 |
commit | 57ef5ddb456649667438e023f67dd3a3ff3fbed8 (patch) | |
tree | 3b8bc1d0b5553f589ca1da3669251fab3decbc39 /net/mac80211/mesh_hwmp.c | |
parent | 13311b00117ed1bf903cf8870432504631a7ce77 (diff) |
mac80211: Mark a destination sequence number as valid when a PREQ is received.
If a PREQ frame is received giving us a fresher DSN than what we have, record
the new dsn and mark it as valid. This patch fixes a bug in the setting of the
MESH_PATH_DSN_VALID flag.
Also, minor fix to coding style on that file.
Signed-off-by: Javier Cardona <javier@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.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c index 1cd1e7273085..ef1efd362691 100644 --- a/net/mac80211/mesh_hwmp.c +++ b/net/mac80211/mesh_hwmp.c | |||
@@ -397,7 +397,8 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, | |||
397 | 397 | ||
398 | static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata, | 398 | static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata, |
399 | struct ieee80211_mgmt *mgmt, | 399 | struct ieee80211_mgmt *mgmt, |
400 | u8 *preq_elem, u32 metric) { | 400 | u8 *preq_elem, u32 metric) |
401 | { | ||
401 | struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; | 402 | struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; |
402 | struct mesh_path *mpath; | 403 | struct mesh_path *mpath; |
403 | u8 *dst_addr, *orig_addr; | 404 | u8 *dst_addr, *orig_addr; |
@@ -430,7 +431,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata, | |||
430 | if ((!(mpath->flags & MESH_PATH_DSN_VALID)) || | 431 | if ((!(mpath->flags & MESH_PATH_DSN_VALID)) || |
431 | DSN_LT(mpath->dsn, dst_dsn)) { | 432 | DSN_LT(mpath->dsn, dst_dsn)) { |
432 | mpath->dsn = dst_dsn; | 433 | mpath->dsn = dst_dsn; |
433 | mpath->flags &= MESH_PATH_DSN_VALID; | 434 | mpath->flags |= MESH_PATH_DSN_VALID; |
434 | } else if ((!(dst_flags & MP_F_DO)) && | 435 | } else if ((!(dst_flags & MP_F_DO)) && |
435 | (mpath->flags & MESH_PATH_ACTIVE)) { | 436 | (mpath->flags & MESH_PATH_ACTIVE)) { |
436 | reply = true; | 437 | reply = true; |