UPSTREAM: 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: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Bug: 253289327 Change-Id: I9ff53b4e371d64e03773ea93fb372b92f4809e76 (cherry picked from commit d2bc52498b6bafb7c2d80347b9f8fea9e3c7fc66) Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com> Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
This commit is contained in:
committed by
Todd Kjos
parent
eab9f6c4ab
commit
3120619c1b
@@ -6951,7 +6951,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 =
|
||||
|
||||
Reference in New Issue
Block a user