linux/net/mac80211
Jouni Malinen 636a5d3625 nl80211: Add MLME primitives to support external SME
This patch adds new nl80211 commands to allow user space to request
authentication and association (and also deauthentication and
disassociation). The commands are structured to allow separate
authentication and association steps, i.e., the interface between
kernel and user space is similar to the MLME SAP interface in IEEE
802.11 standard and an user space application takes the role of the
SME.

The patch introduces MLME-AUTHENTICATE.request,
MLME-{,RE}ASSOCIATE.request, MLME-DEAUTHENTICATE.request, and
MLME-DISASSOCIATE.request primitives. The authentication and
association commands request the actual operations in two steps
(assuming the driver supports this; if not, separate authentication
step is skipped; this could end up being a separate "connect"
command).

The initial implementation for mac80211 uses the current
net/mac80211/mlme.c for actual sending and processing of management
frames and the new nl80211 commands will just stop the current state
machine from moving automatically from authentication to association.
Future cleanup may move more of the MLME operations into cfg80211.

The goal of this design is to provide more control of authentication and
association process to user space without having to move the full MLME
implementation. This should be enough to allow IEEE 802.11r FT protocol
and 802.11s SAE authentication to be implemented. Obviously, this will
also bring the extra benefit of not having to use WEXT for association
requests with mac80211. An example implementation of a user space SME
using the new nl80211 commands is available for wpa_supplicant.

This patch is enough to get IEEE 802.11r FT protocol working with
over-the-air mechanism (over-the-DS will need additional MLME
primitives for handling the FT Action frames).

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-27 20:13:02 -04:00
..
Kconfig mac80211: make Minstrel the default rate control algorithm 2008-11-26 09:47:03 -05:00
Makefile mac80211: split IBSS/managed code 2009-02-27 14:51:42 -05:00
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
aes_cmac.c mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c mac80211: Tear down aggregation sessions for suspend/resume 2009-03-27 20:12:55 -04:00
agg-tx.c mac80211: Tear down aggregation sessions for suspend/resume 2009-03-27 20:12:55 -04:00
cfg.c nl80211: Add MLME primitives to support external SME 2009-03-27 20:13:02 -04:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs.c mac80211: Generic TSF debugging 2009-01-29 16:01:46 -05:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_key.c mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_netdev.c mac80211: split IBSS/managed code 2009-02-27 14:51:42 -05:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c mac80211: 802.11w - STA flag for MFP 2009-01-29 16:00:00 -05:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
event.c mac80211: convert to %pM away from print_mac 2008-10-27 17:06:16 -07:00
ht.c mac80211: Extend the rate control API with an update callback 2009-02-27 14:51:45 -05:00
ibss.c mac80211: ieee80211_ibss_commit() cleanup 2009-03-27 20:12:41 -04:00
ieee80211_i.h nl80211: Add MLME primitives to support external SME 2009-03-27 20:13:02 -04:00
iface.c mac80211: deauth before flushing STA information 2009-03-16 18:09:39 -04:00
key.c mac80211: split IBSS/managed code 2009-02-27 14:51:42 -05:00
key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
led.c mac80211: rename files 2008-04-08 16:44:45 -04:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: fix warnings in ieee80211_if_config 2009-03-27 20:12:52 -04:00
mesh.c mac80211: use cfg80211s BSS infrastructure 2009-02-13 13:45:58 -05:00
mesh.h mac80211: use cfg80211s BSS infrastructure 2009-02-13 13:45:58 -05:00
mesh_hwmp.c mac80211: fix RX aggregation timeouts 2009-02-13 13:45:32 -05:00
mesh_pathtbl.c mac80211: mesh portal functionality support 2008-09-24 16:18:02 -04:00
mesh_plink.c wireless: restrict to 32 legacy rates 2009-01-29 16:01:09 -05:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c nl80211: Add MLME primitives to support external SME 2009-03-27 20:13:02 -04:00
pm.c mac80211: Tear down aggregation sessions for suspend/resume 2009-03-27 20:12:55 -04:00
rate.c mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rate.h mac80211: Extend the rate control API with an update callback 2009-02-27 14:51:45 -05:00
rc80211_minstrel.c minstrel: fix warning if lowest supported rate index is not 0 2009-01-12 14:24:55 -05:00
rc80211_minstrel.h minstrel: improve performance for non-MRR drivers 2008-10-31 19:00:36 -04:00
rc80211_minstrel_debugfs.c mac80211: correct warnings in minstrel rate control algorithm 2008-10-27 17:46:11 -04:00
rc80211_pid.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rc80211_pid_algo.c mac80211: Fix pid rate-setting algorithm to allow rate changes 2008-11-26 09:47:20 -05:00
rc80211_pid_debugfs.c mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rx.c wireless: radiotap updates 2009-03-27 20:12:52 -04:00
scan.c mac80211: don't drop nullfunc frames during software scan 2009-03-27 20:13:00 -04:00
spectmgmt.c mac80211: split IBSS/managed code 2009-02-27 14:51:42 -05:00
sta_info.c mac80211: fix aggregation for hardware with ampdu queues 2009-02-27 14:51:42 -05:00
sta_info.h mac80211: Tear down aggregation sessions for suspend/resume 2009-03-27 20:12:55 -04:00
tkip.c mac80211: convert to %pM away from print_mac 2008-10-27 17:06:16 -07:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: don't drop nullfunc frames during software scan 2009-03-27 20:13:00 -04:00
util.c nl80211: Optional IEs into scan request 2009-02-27 14:52:38 -05:00
wep.c mac80211: fix unaligned access in ieee80211_wep_encrypt_data 2008-11-26 09:47:51 -05:00
wep.h mac80211: minor code cleanups 2008-10-31 18:05:59 -04:00
wext.c nl80211: Add MLME primitives to support external SME 2009-03-27 20:13:02 -04:00
wme.c mac80211: Fix WMM ACM parsing and AC downgrade operation 2009-03-16 18:09:27 -04:00
wme.h mac80211: fix aggregation for hardware with ampdu queues 2009-02-27 14:51:42 -05:00
wpa.c mac80211: 802.11w - Optional software CCMP for management frames 2009-01-29 16:00:08 -05:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00