mac80211: backport upstream fixes
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 383-mac80211-mesh-fix-HWMP-sequence-numbering-to-follow-.patch
diff --git a/package/kernel/mac80211/patches/383-mac80211-mesh-fix-HWMP-sequence-numbering-to-follow-.patch b/package/kernel/mac80211/patches/383-mac80211-mesh-fix-HWMP-sequence-numbering-to-follow-.patch
new file mode 100644 (file)
index 0000000..e7b279a
--- /dev/null
@@ -0,0 +1,28 @@
+From: Yuan-Chi Pang <fu3mo6goo@gmail.com>
+Date: Wed, 29 Aug 2018 09:30:08 +0800
+Subject: [PATCH] mac80211: mesh: fix HWMP sequence numbering to follow
+ standard
+
+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>
+---
+
+--- a/net/mac80211/mesh_hwmp.c
++++ b/net/mac80211/mesh_hwmp.c
+@@ -572,6 +572,10 @@ static void hwmp_preq_frame_process(stru
+               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)) {