summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorYuan-Chi Pang <fu3mo6goo@gmail.com>2018-08-29 09:30:08 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-10-10 08:53:18 +0200
commit7c10ec1ddde1cc9f73fc3f8a27d427b59675d08f (patch)
tree45fecc75c559283ed10795c797d45a9035be76b7 /net
parent0cf963078ad51ac72a318e00b984d634fc115d84 (diff)
mac80211: mesh: fix HWMP sequence numbering to follow standard
[ Upstream commit 1f631c3201fe5491808df143d8fcba81b3197ffd ] IEEE 802.11-2016 14.10.8.3 HWMP sequence numbering says: If it is a target mesh STA, it shall update its own HWMP SN to maximum (current HWMP SN, target HWMP SN in the PREQ element) + 1 immediately before it generates a PREP element in response to a PREQ element. Signed-off-by: Yuan-Chi Pang <fu3mo6goo@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/mesh_hwmp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index fed598a202c8..b0acb2961e80 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -563,6 +563,10 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
forward = false;
reply = true;
target_metric = 0;
+
+ if (SN_GT(target_sn, ifmsh->sn))
+ ifmsh->sn = target_sn;
+
if (time_after(jiffies, ifmsh->last_sn_update +
net_traversal_jiffies(sdata)) ||
time_before(jiffies, ifmsh->last_sn_update)) {