mirror of https://gitee.com/openkylin/linux.git
cfg80211/mac80211: Support disabling HE mode
Allow user to disable HE mode, similar to how VHT and HT can be disabled. Useful for testing. Signed-off-by: Ben Greear <greearb@candelatech.com> Link: https://lore.kernel.org/r/20210204144610.25971-1-greearb@candelatech.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
549fdd34b5
commit
b6db0f899a
|
@ -2583,12 +2583,14 @@ struct cfg80211_auth_request {
|
|||
* authentication capability. Drivers can offload authentication to
|
||||
* userspace if this flag is set. Only applicable for cfg80211_connect()
|
||||
* request (connect callback).
|
||||
* @ASSOC_REQ_DISABLE_HE: Disable HE
|
||||
*/
|
||||
enum cfg80211_assoc_req_flags {
|
||||
ASSOC_REQ_DISABLE_HT = BIT(0),
|
||||
ASSOC_REQ_DISABLE_VHT = BIT(1),
|
||||
ASSOC_REQ_USE_RRM = BIT(2),
|
||||
CONNECT_REQ_EXTERNAL_AUTH_SUPPORT = BIT(3),
|
||||
ASSOC_REQ_DISABLE_HE = BIT(4),
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -3045,6 +3045,8 @@ enum nl80211_attrs {
|
|||
|
||||
NL80211_ATTR_SAR_SPEC,
|
||||
|
||||
NL80211_ATTR_DISABLE_HE,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
|
|
|
@ -5754,6 +5754,9 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata,
|
|||
if (req->flags & ASSOC_REQ_DISABLE_VHT)
|
||||
ifmgd->flags |= IEEE80211_STA_DISABLE_VHT;
|
||||
|
||||
if (req->flags & ASSOC_REQ_DISABLE_HE)
|
||||
ifmgd->flags |= IEEE80211_STA_DISABLE_HE;
|
||||
|
||||
err = ieee80211_prep_connection(sdata, req->bss, true, override);
|
||||
if (err)
|
||||
goto err_clear;
|
||||
|
|
|
@ -752,6 +752,7 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
|||
NL80211_SAE_PWE_BOTH),
|
||||
[NL80211_ATTR_RECONNECT_REQUESTED] = { .type = NLA_REJECT },
|
||||
[NL80211_ATTR_SAR_SPEC] = NLA_POLICY_NESTED(sar_policy),
|
||||
[NL80211_ATTR_DISABLE_HE] = { .type = NLA_FLAG },
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
|
@ -10019,6 +10020,9 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
|
|||
if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_VHT]))
|
||||
req.flags |= ASSOC_REQ_DISABLE_VHT;
|
||||
|
||||
if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HE]))
|
||||
req.flags |= ASSOC_REQ_DISABLE_HE;
|
||||
|
||||
if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK])
|
||||
memcpy(&req.vht_capa_mask,
|
||||
nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]),
|
||||
|
@ -10802,6 +10806,9 @@ static int nl80211_connect(struct sk_buff *skb, struct genl_info *info)
|
|||
if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_VHT]))
|
||||
connect.flags |= ASSOC_REQ_DISABLE_VHT;
|
||||
|
||||
if (nla_get_flag(info->attrs[NL80211_ATTR_DISABLE_HE]))
|
||||
connect.flags |= ASSOC_REQ_DISABLE_HE;
|
||||
|
||||
if (info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK])
|
||||
memcpy(&connect.vht_capa_mask,
|
||||
nla_data(info->attrs[NL80211_ATTR_VHT_CAPABILITY_MASK]),
|
||||
|
|
Loading…
Reference in New Issue