Commit d2bc5249 authored by Andrei Otcheretianski's avatar Andrei Otcheretianski Committed by Johannes Berg

wifi: nl80211: Support MLD parameters in nl80211_set_station()

Set the MLD parameters in NL80211_CMD_SET_STATION handling
to be able to change an MLD station.
Signed-off-by: default avatarAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 45aaf17c
......@@ -6894,7 +6894,28 @@ static int nl80211_set_station(struct sk_buff *skb, struct genl_info *info)
if (!info->attrs[NL80211_ATTR_MAC])
return -EINVAL;
mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
params.link_sta_params.link_id =
nl80211_link_id_or_invalid(info->attrs);
if (info->attrs[NL80211_ATTR_MLD_ADDR]) {
/* If MLD_ADDR attribute is set then this is an MLD station
* and the MLD_ADDR attribute holds the MLD address and the
* MAC attribute holds for the LINK address.
* In that case, the link_id is also expected to be valid.
*/
if (params.link_sta_params.link_id < 0)
return -EINVAL;
mac_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
params.link_sta_params.mld_mac = mac_addr;
params.link_sta_params.link_mac =
nla_data(info->attrs[NL80211_ATTR_MAC]);
if (!is_valid_ether_addr(params.link_sta_params.link_mac))
return -EINVAL;
} else {
mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
}
if (info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]) {
params.link_sta_params.supported_rates =
......
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