Merge "nl80211: Update ERP info using NL80211_CMD_UPDATE_CONNECT_PARAMS"
This commit is contained in:
commit
569fef54de
2 changed files with 44 additions and 0 deletions
|
@ -2059,9 +2059,14 @@ struct cfg80211_connect_params {
|
||||||
* have to be updated as part of update_connect_params() call.
|
* have to be updated as part of update_connect_params() call.
|
||||||
*
|
*
|
||||||
* @UPDATE_ASSOC_IES: Indicates whether association request IEs are updated
|
* @UPDATE_ASSOC_IES: Indicates whether association request IEs are updated
|
||||||
|
* @UPDATE_FILS_ERP_INFO: Indicates that FILS connection parameters (realm,
|
||||||
|
* username, erp sequence number and rrk) are updated
|
||||||
|
* @UPDATE_AUTH_TYPE: Indicates that Authentication type is updated
|
||||||
*/
|
*/
|
||||||
enum cfg80211_connect_params_changed {
|
enum cfg80211_connect_params_changed {
|
||||||
UPDATE_ASSOC_IES = BIT(0),
|
UPDATE_ASSOC_IES = BIT(0),
|
||||||
|
UPDATE_FILS_ERP_INFO = BIT(1),
|
||||||
|
UPDATE_AUTH_TYPE = BIT(2),
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -8595,6 +8595,45 @@ static int nl80211_update_connect_params(struct sk_buff *skb,
|
||||||
changed |= UPDATE_ASSOC_IES;
|
changed |= UPDATE_ASSOC_IES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wiphy_ext_feature_isset(&rdev->wiphy,
|
||||||
|
NL80211_EXT_FEATURE_FILS_SK_OFFLOAD) &&
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_USERNAME] &&
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_REALM] &&
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM] &&
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_RRK]) {
|
||||||
|
connect.fils_erp_username =
|
||||||
|
nla_data(info->attrs[NL80211_ATTR_FILS_ERP_USERNAME]);
|
||||||
|
connect.fils_erp_username_len =
|
||||||
|
nla_len(info->attrs[NL80211_ATTR_FILS_ERP_USERNAME]);
|
||||||
|
connect.fils_erp_realm =
|
||||||
|
nla_data(info->attrs[NL80211_ATTR_FILS_ERP_REALM]);
|
||||||
|
connect.fils_erp_realm_len =
|
||||||
|
nla_len(info->attrs[NL80211_ATTR_FILS_ERP_REALM]);
|
||||||
|
connect.fils_erp_next_seq_num =
|
||||||
|
nla_get_u16(
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM]);
|
||||||
|
connect.fils_erp_rrk =
|
||||||
|
nla_data(info->attrs[NL80211_ATTR_FILS_ERP_RRK]);
|
||||||
|
connect.fils_erp_rrk_len =
|
||||||
|
nla_len(info->attrs[NL80211_ATTR_FILS_ERP_RRK]);
|
||||||
|
changed |= UPDATE_FILS_ERP_INFO;
|
||||||
|
} else if (info->attrs[NL80211_ATTR_FILS_ERP_USERNAME] ||
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_REALM] ||
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM] ||
|
||||||
|
info->attrs[NL80211_ATTR_FILS_ERP_RRK]) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->attrs[NL80211_ATTR_AUTH_TYPE]) {
|
||||||
|
u32 auth_type =
|
||||||
|
nla_get_u32(info->attrs[NL80211_ATTR_AUTH_TYPE]);
|
||||||
|
if (!nl80211_valid_auth_type(rdev, auth_type,
|
||||||
|
NL80211_CMD_CONNECT))
|
||||||
|
return -EINVAL;
|
||||||
|
connect.auth_type = auth_type;
|
||||||
|
changed |= UPDATE_AUTH_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
wdev_lock(dev->ieee80211_ptr);
|
wdev_lock(dev->ieee80211_ptr);
|
||||||
if (!wdev->current_bss)
|
if (!wdev->current_bss)
|
||||||
ret = -ENOLINK;
|
ret = -ENOLINK;
|
||||||
|
|
Loading…
Add table
Reference in a new issue