mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-11 02:02:33 +01:00
c0c8faf32f
FT-over-DS is a way to do a Fast BSS Transition using action frames for the authenticate step. This allows a station to start a fast transition to a target AP while still being connected to the original AP. This, in theory, can result in less carrier downtime. The existing ft_sm_new was removed, and two new constructors were added; one for over-air, and another for over-ds. The internals of ft.c mostly remain the same. A flag to distinguish between air/ds was added along with a new parser to parse the action frames rather than authenticate frames. The IE parsing is identical. Netdev now just initializes the auth-proto differently depending on if its doing over-air or over-ds. A new TX authenticate function was added and used for over-ds. This will send out the IEs from ft.c with an FT Request action frame. The FT Response action frame is then recieved from the AP and fed into the auth-proto state machine. After this point ft-over-ds behaves the same as ft-over-air (associate to the target AP). Some simple code was added in station.c to determine if over-air or over-ds should be used. FT-over-DS can be beneficial in cases where the AP is directing us to roam, or if the RSSI falls below a threshold. It should not be used if we have lost communication to the AP all (beacon lost) as it only works while we can still talk to the original AP.
37 lines
1.4 KiB
C
37 lines
1.4 KiB
C
/*
|
|
*
|
|
* Wireless daemon for Linux
|
|
*
|
|
* Copyright (C) 2017 Intel Corporation. All rights reserved.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
typedef void (*ft_tx_authenticate_func_t)(struct iovec *iov, size_t iov_len,
|
|
void *user_data);
|
|
typedef void (*ft_tx_associate_func_t)(struct iovec *ie_iov, size_t iov_len,
|
|
void *user_data);
|
|
|
|
struct auth_proto *ft_over_air_sm_new(struct handshake_state *hs,
|
|
ft_tx_authenticate_func_t tx_auth,
|
|
ft_tx_associate_func_t tx_assoc,
|
|
void *user_data);
|
|
|
|
struct auth_proto *ft_over_ds_sm_new(struct handshake_state *hs,
|
|
ft_tx_authenticate_func_t tx_auth,
|
|
ft_tx_associate_func_t tx_assoc,
|
|
void *user_data);
|