station: Use ft_authenticate_onchannel

In the case that the FT target is on the same channel as we're currently
operating on, use ft_authenticate_onchannel instead of ft_authenticate.
Going offchannel in this case can confuse some drivers.
This commit is contained in:
Denis Kenzior 2023-03-01 09:35:48 -06:00
parent 3345c56fbb
commit dc38964e42
1 changed files with 12 additions and 3 deletions

View File

@ -2298,12 +2298,21 @@ static bool station_fast_transition(struct station *station,
}
/* Both ft_action/ft_authenticate will gate the associate work item */
if ((hs->mde[4] & 1))
if ((hs->mde[4] & 1)) {
ft_action(netdev_get_ifindex(station->netdev),
station->connected_bss->frequency, bss);
else
ft_authenticate(netdev_get_ifindex(station->netdev), bss);
goto done;
}
if (station->connected_bss->frequency == bss->frequency) {
ft_authenticate_onchannel(netdev_get_ifindex(station->netdev),
bss);
goto done;
}
ft_authenticate(netdev_get_ifindex(station->netdev), bss);
done:
wiphy_radio_work_insert(station->wiphy, &station->ft_work,
WIPHY_WORK_PRIORITY_CONNECT, &ft_work_ops);