aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>2013-11-08 02:09:43 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-11-25 10:50:13 -0500
commit3f718fd8401d7db86b9efc3ea1cdf5df41354b9f (patch)
tree62221339cdbf9612427669850a7d1429e982e2d0 /net/mac80211/util.c
parent051a41fa4ee14f5c39668f0980973b9a195de560 (diff)
mac80211: fix the mesh channel switch support
Mesh STA receiving the mesh CSA action frame is not able to trigger the mesh channel switch due to the incorrect handling and comparison of mesh channel switch parameters element (MCSP)'s TTL. Make sure the MCSP's TTL is updated accordingly before calling the ieee80211_mesh_process_chnswitch. Also, we update the beacon before forwarding the CSA action frame, so MCSP's precedence value and initiator flag need to be updated prior to this. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index e9ce36d32ef5..9f9b9bd3fd44 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2457,14 +2457,9 @@ int ieee80211_send_action_csa(struct ieee80211_sub_if_data *sdata,
2457 WLAN_EID_CHAN_SWITCH_PARAM_TX_RESTRICT : 0x00; 2457 WLAN_EID_CHAN_SWITCH_PARAM_TX_RESTRICT : 0x00;
2458 put_unaligned_le16(WLAN_REASON_MESH_CHAN, pos); /* Reason Cd */ 2458 put_unaligned_le16(WLAN_REASON_MESH_CHAN, pos); /* Reason Cd */
2459 pos += 2; 2459 pos += 2;
2460 if (!ifmsh->pre_value)
2461 ifmsh->pre_value = 1;
2462 else
2463 ifmsh->pre_value++;
2464 pre_value = cpu_to_le16(ifmsh->pre_value); 2460 pre_value = cpu_to_le16(ifmsh->pre_value);
2465 memcpy(pos, &pre_value, 2); /* Precedence Value */ 2461 memcpy(pos, &pre_value, 2); /* Precedence Value */
2466 pos += 2; 2462 pos += 2;
2467 ifmsh->chsw_init = true;
2468 } 2463 }
2469 2464
2470 ieee80211_tx_skb(sdata, skb); 2465 ieee80211_tx_skb(sdata, skb);