From 33a45867c56074a23d01e286890e3b61f3ff8fff Mon Sep 17 00:00:00 2001 From: Chun-Yeow Yeoh Date: Thu, 17 Oct 2013 15:55:18 -0700 Subject: mac80211: process mesh channel switching using beacon Trigger the mesh channel switching procedure if the mesh STA happens to miss the CSA action frame but able to receive the beacon containing the CSA and MCSP elements from its peer mesh STAs. Signed-off-by: Chun-Yeow Yeoh [fix locking in ieee80211_mesh_process_chnswitch()] Signed-off-by: Johannes Berg --- net/mac80211/spectmgmt.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'net/mac80211/spectmgmt.c') diff --git a/net/mac80211/spectmgmt.c b/net/mac80211/spectmgmt.c index a298e129633b..a40da20b32e0 100644 --- a/net/mac80211/spectmgmt.c +++ b/net/mac80211/spectmgmt.c @@ -74,6 +74,12 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, return 1; } + /* Mesh Channel Switch Parameters Element */ + if (elems->mesh_chansw_params_ie) { + csa_ie->ttl = elems->mesh_chansw_params_ie->mesh_ttl; + csa_ie->mode = elems->mesh_chansw_params_ie->mesh_flags; + } + new_freq = ieee80211_channel_to_frequency(new_chan_no, new_band); new_chan = ieee80211_get_channel(sdata->local->hw.wiphy, new_freq); if (!new_chan || new_chan->flags & IEEE80211_CHAN_DISABLED) { -- cgit