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

Anton Nayshtut Anton.Nayshtut at Wilocity.com
Mon Feb 17 09:43:18 EST 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