mac80211: HE: set missing bss_conf fields in AP mode
authorShaul Triebitz <shaul.triebitz@intel.com>
Fri, 31 Jan 2020 11:12:55 +0000 (13:12 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 20 Mar 2020 13:42:19 +0000 (14:42 +0100)
In AP mode, set htc_trig_based_pkt_ext and frame_time_rts_th
for driver use.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/20200131111300.891737-19-luca@coelho.fi
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c

index be22bee..0f72813 100644 (file)
@@ -5,8 +5,7 @@
  * Copyright 2006-2010 Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2015  Intel Mobile Communications GmbH
  * Copyright (C) 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2019 Intel Corporation
- * Copyright (C) 2018 Intel Corporation
+ * Copyright (C) 2018-2020 Intel Corporation
  */
 
 #include <linux/ieee80211.h>
@@ -1012,8 +1011,15 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
        prev_beacon_int = sdata->vif.bss_conf.beacon_int;
        sdata->vif.bss_conf.beacon_int = params->beacon_interval;
 
-       if (params->he_cap)
+       if (params->he_cap && params->he_oper) {
                sdata->vif.bss_conf.he_support = true;
+               sdata->vif.bss_conf.htc_trig_based_pkt_ext =
+                       le32_get_bits(params->he_oper->he_oper_params,
+                             IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK);
+               sdata->vif.bss_conf.frame_time_rts_th =
+                       le32_get_bits(params->he_oper->he_oper_params,
+                             IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK);
+       }
 
        mutex_lock(&local->mtx);
        err = ieee80211_vif_use_channel(sdata, &params->chandef,