[PATCH 0/3] Fast Session Transfer (FST)

Anton Nayshtut Anton.Nayshtut at Wilocity.com
Tue Feb 25 04:22:55 EST 2014


Hi all,

Please note, Ubuntu (at least 12.04) provides an outdated version of
libnetlink (libnetlink.h matches the commit
b49240ec7eab91418d2f090536bf8cd2205988d6 - a revision committed at
02-Dec-2009).

Thus to compile the FST patches on Ubuntu, one should use the libnetlink
compiled from the iproute2 sources. See
http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2 for
more info.

Best Regards,
Anton

On 2/17/2014 4:43 PM, Anton Nayshtut wrote:
> 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
> 


More information about the HostAP mailing list