Commit 607ca9ea authored by Rajkumar Manoharan's avatar Rajkumar Manoharan Committed by Johannes Berg

mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode

As HT/VHT elements are not allowed in 6 GHz band, do not include
them in mesh beacon template formation.
Signed-off-by: default avatarRajkumar Manoharan <rmanohar@codeaurora.org>
Link: https://lore.kernel.org/r/1589399105-25472-9-git-send-email-rmanohar@codeaurora.org
Link: https://lore.kernel.org/r/20200528193455.76796-2-johannes@sipsolutions.netSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent d1b7524b
...@@ -415,6 +415,10 @@ int mesh_add_ht_cap_ie(struct ieee80211_sub_if_data *sdata, ...@@ -415,6 +415,10 @@ int mesh_add_ht_cap_ie(struct ieee80211_sub_if_data *sdata,
if (!sband) if (!sband)
return -EINVAL; return -EINVAL;
/* HT not allowed in 6 GHz */
if (sband->band == NL80211_BAND_6GHZ)
return 0;
if (!sband->ht_cap.ht_supported || if (!sband->ht_cap.ht_supported ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 ||
...@@ -452,6 +456,10 @@ int mesh_add_ht_oper_ie(struct ieee80211_sub_if_data *sdata, ...@@ -452,6 +456,10 @@ int mesh_add_ht_oper_ie(struct ieee80211_sub_if_data *sdata,
sband = local->hw.wiphy->bands[channel->band]; sband = local->hw.wiphy->bands[channel->band];
ht_cap = &sband->ht_cap; ht_cap = &sband->ht_cap;
/* HT not allowed in 6 GHz */
if (sband->band == NL80211_BAND_6GHZ)
return 0;
if (!ht_cap->ht_supported || if (!ht_cap->ht_supported ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 ||
...@@ -479,6 +487,10 @@ int mesh_add_vht_cap_ie(struct ieee80211_sub_if_data *sdata, ...@@ -479,6 +487,10 @@ int mesh_add_vht_cap_ie(struct ieee80211_sub_if_data *sdata,
if (!sband) if (!sband)
return -EINVAL; return -EINVAL;
/* VHT not allowed in 6 GHz */
if (sband->band == NL80211_BAND_6GHZ)
return 0;
if (!sband->vht_cap.vht_supported || if (!sband->vht_cap.vht_supported ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 ||
...@@ -516,6 +528,10 @@ int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata, ...@@ -516,6 +528,10 @@ int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata,
sband = local->hw.wiphy->bands[channel->band]; sband = local->hw.wiphy->bands[channel->band];
vht_cap = &sband->vht_cap; vht_cap = &sband->vht_cap;
/* VHT not allowed in 6 GHz */
if (sband->band == NL80211_BAND_6GHZ)
return 0;
if (!vht_cap->vht_supported || if (!vht_cap->vht_supported ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT ||
sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment