]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode
authorRajkumar Manoharan <rmanohar@codeaurora.org>
Thu, 28 May 2020 19:34:34 +0000 (21:34 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Sun, 31 May 2020 09:26:46 +0000 (11:26 +0200)
As HT/VHT elements are not allowed in 6 GHz band, do not include
them in mesh beacon template formation.

Signed-off-by: Rajkumar 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.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mesh.c

index 5f3d45474db606a3c5b7c4374e9d1bca3bcddfe1..79e0a90982dd10ba761d0efb1c11c0b0d74572ee 100644 (file)
@@ -415,6 +415,10 @@ int mesh_add_ht_cap_ie(struct ieee80211_sub_if_data *sdata,
        if (!sband)
                return -EINVAL;
 
+       /* HT not allowed in 6 GHz */
+       if (sband->band == NL80211_BAND_6GHZ)
+               return 0;
+
        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_5 ||
@@ -452,6 +456,10 @@ int mesh_add_ht_oper_ie(struct ieee80211_sub_if_data *sdata,
        sband = local->hw.wiphy->bands[channel->band];
        ht_cap = &sband->ht_cap;
 
+       /* HT not allowed in 6 GHz */
+       if (sband->band == NL80211_BAND_6GHZ)
+               return 0;
+
        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_5 ||
@@ -479,6 +487,10 @@ int mesh_add_vht_cap_ie(struct ieee80211_sub_if_data *sdata,
        if (!sband)
                return -EINVAL;
 
+       /* VHT not allowed in 6 GHz */
+       if (sband->band == NL80211_BAND_6GHZ)
+               return 0;
+
        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_5 ||
@@ -516,6 +528,10 @@ int mesh_add_vht_oper_ie(struct ieee80211_sub_if_data *sdata,
        sband = local->hw.wiphy->bands[channel->band];
        vht_cap = &sband->vht_cap;
 
+       /* VHT not allowed in 6 GHz */
+       if (sband->band == NL80211_BAND_6GHZ)
+               return 0;
+
        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_5 ||