[PATCH 0/3] Fast Session Transfer (FST)
Anton Nayshtut
Anton.Nayshtut
Mon Feb 17 06:43:18 PST 2014
From: Anton Nayshtut <Anton.Nayshtut at wilocity.com>
This set of patches introduces Fast Session Transfer (FST) support by both
hostapd and wpa_supplicant.
Fast Session Transfer (FST) is the transfer of a session from a channel to
another channel, in the same or different frequency bands. The term "session"
refers to non-physical layer state information kept by a pair of stations (STAs)
that communicate directly (i.e., excludes forwarding).
The FST is implemented in accordance with WGA Specification.
Definitions
* FST interface - an interface for which FST functionality is enabled
* FST peer - a Multi-band capable STA connected
Configuration and Initialization
* FST functionality can enabled by compilation flag (CONFIG_FST)
* hostapd/wpa_supplicant controlling multiple interfaces are used for FST
* once enabled by compilation, the FST can be enabled for specific interfaces
in configuration files
* one of the FST interfaces must be set as an FST default interface
* the FST default interface is the interface FST will always try to switch from
Thus, for example, for the maximal throughput, it should be the slowest FST
interface in the FST setup.
* FST interfaces advertise the Multi-band capability by including the
Multi-band element in the corresponding frames
Single-band connection
* When 1st FST interface becomes connected to a FST Peer, the FST sets it as the
active FST interface for this FST Peer, i.e. the FST interface is used for data
transmission to this FST peer.
Session Establishment
* FST tries to establish FST Session wheb=n either:
- Multi-band connection becomes available available, i.e. when more than one
FST interfaces are connected to the same FST peer
- successful session transition ends
- non-active FST interface for which already established FST Session becomes
disconnected
* Following LLT values are used in FST Session establishment:
- LLT=0 if current active FST interface is the FST default interface
- LLT=MAX_U8 otherwise
Session Transfer
* FST tries to perform the FST Session transfer when either:
- FST Session becomes established with LLT=0 (according to 10.32.2.2
Transitioning between states)
- active FST interface becomes disconnected (i.e. when LTT virtually becomes
0)
* Upon successful session transfer, FST sets the target FST interface as the new
active FST interface for this FST Peer.
Session Reset
* FST resets the FST Session when either:
- STT becomes 0 (in accordance with 10.32.2.2 Transitioning between states)
- only active FST interface stays connected
Anton Nayshtut (3):
Transparent FST: fst module introduced
Transparent FST: hostapd integration
Transparent FST: wpa_supplicant integration
hostapd/Makefile | 8 +
hostapd/config_file.c | 17 +
hostapd/defconfig | 3 +
hostapd/hostapd.conf | 20 +
hostapd/main.c | 25 +-
src/Makefile | 2 +-
src/ap/ap_config.h | 5 +
src/ap/ap_drv_ops.c | 15 +
src/ap/beacon.c | 28 +-
src/ap/drv_callbacks.c | 27 +
src/ap/hostapd.c | 56 +-
src/ap/hostapd.h | 4 +
src/ap/ieee802_11.c | 28 +-
src/ap/sta_info.c | 15 +
src/ap/sta_info.h | 3 +
src/ap/utils.c | 12 +-
src/common/ieee802_11_common.c | 34 +
src/common/ieee802_11_common.h | 15 +
src/common/ieee802_11_defs.h | 65 ++
src/drivers/driver_nl80211.c | 11 +
src/fst/Makefile | 8 +
src/fst/fst.c | 1457 ++++++++++++++++++++++++++++++++++++
src/fst/fst.h | 48 ++
src/fst/fst_defs.h | 91 +++
src/fst/fst_drv.c | 442 +++++++++++
src/fst/fst_drv.h | 24 +
src/fst/fst_rtnl.c | 284 +++++++
src/fst/fst_rtnl.h | 25 +
wpa_supplicant/Makefile | 8 +
wpa_supplicant/config.c | 7 +
wpa_supplicant/config.h | 5 +
wpa_supplicant/defconfig | 3 +
wpa_supplicant/events.c | 48 +-
wpa_supplicant/main.c | 16 +
wpa_supplicant/notify.c | 13 +
wpa_supplicant/scan.c | 7 +
wpa_supplicant/sme.c | 14 +
wpa_supplicant/wpa_supplicant.c | 91 +++
wpa_supplicant/wpa_supplicant.conf | 20 +
wpa_supplicant/wpa_supplicant_i.h | 6 +
40 files changed, 3003 insertions(+), 7 deletions(-)
create mode 100644 src/fst/Makefile
create mode 100644 src/fst/fst.c
create mode 100644 src/fst/fst.h
create mode 100644 src/fst/fst_defs.h
create mode 100644 src/fst/fst_drv.c
create mode 100644 src/fst/fst_drv.h
create mode 100644 src/fst/fst_rtnl.c
create mode 100644 src/fst/fst_rtnl.h
--
1.8.3.1
More information about the Hostap
mailing list