2.6.x wireless update and status

From: Jeff Garzik
Date: Tue Mar 22 2005 - 20:48:03 EST


Just updated the wireless-2.6 queue to include a HostAP update, and to add Wireless Extensions 18 (WPA). See attached for BK info, patch info, and changelog.

I also wanted to comment on the general status and direction of wireless.


So far, the following decisions have been made:

1) Use HostAP as the basis for a wireless stack that can drive "softMAC" wireless hardware.

2) We want wireless to be better integrated into the network stack, rather than "faking" 802.3 ethernet.

3) The in-kernel Wireless Extensions API will see some changes, to be more type-safe (and more like other Linux APIs). Userland ABI compatibility is desired, but don't care about kernel API compatibility.


Along these lines, the following work has been done:
* HostAP has been integrated into wireless-2.6, and Jouni has been updating it.
* Intel submitted the HostAP-derived ieee80211 lib code.
* DaveM posted some template code[1] that hackers can use as a starting point for true wireless protocol/management code.
* A few people have submitted some wireless cleanup patches associated with this.



Moving forward, the next "todo" for kernel wireless hackers is to get ieee80211 common code lib into shape, namely:
* Merge Intel ipw drivers, which use ieee80211
* Update HostAP to use ieee80211
* Merge/convert other drivers to use ieee80211?

At that point, ieee80211 has in-tree users, and I can push both the ipw and HostAP drivers upstream. After that milestone, working on the wireless protocol layer (DaveM code template) and improving the in-kernel WE API will be key focus.


There is one minor point of contention so far. Jouni stated he prefers that HostAP go upstream before it gets updated to use ieee80211. I respectfully disagree, and prefer that HostAP is updated -first- to use the ieee80211 lib, before going upstream.

Jeff


P.S. For Realtek RTL8180 owners, I'm hoping to have some time in the next month or two to flesh out a driver that uses the ieee80211 lib in the wireless-2.6 queue.

[1] http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/davem-p80211.tar.bz2

BK users:

bk pull bk://gkernel.bkbits.net/wireless-2.6

Patch:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/2.6.12-rc1-bk1-wireless1.patch.bz2

This will update the following files:

drivers/net/wireless/ieee802_11.h | 78
MAINTAINERS | 7
drivers/net/wireless/Kconfig | 2
drivers/net/wireless/Makefile | 2
drivers/net/wireless/atmel.c | 62
drivers/net/wireless/hostap/Kconfig | 104
drivers/net/wireless/hostap/Makefile | 8
drivers/net/wireless/hostap/hostap.c | 1205 +++++++
drivers/net/wireless/hostap/hostap.h | 57
drivers/net/wireless/hostap/hostap_80211.h | 107
drivers/net/wireless/hostap/hostap_80211_rx.c | 1084 ++++++
drivers/net/wireless/hostap/hostap_80211_tx.c | 522 +++
drivers/net/wireless/hostap/hostap_ap.c | 3286 +++++++++++++++++++
drivers/net/wireless/hostap/hostap_ap.h | 272 +
drivers/net/wireless/hostap/hostap_common.h | 557 +++
drivers/net/wireless/hostap/hostap_config.h | 86
drivers/net/wireless/hostap/hostap_crypt.c | 167
drivers/net/wireless/hostap/hostap_crypt.h | 50
drivers/net/wireless/hostap/hostap_crypt_ccmp.c | 486 ++
drivers/net/wireless/hostap/hostap_crypt_tkip.c | 696 ++++
drivers/net/wireless/hostap/hostap_crypt_wep.c | 281 +
drivers/net/wireless/hostap/hostap_cs.c | 929 +++++
drivers/net/wireless/hostap/hostap_download.c | 766 ++++
drivers/net/wireless/hostap/hostap_hw.c | 3631 +++++++++++++++++++++
drivers/net/wireless/hostap/hostap_info.c | 478 ++
drivers/net/wireless/hostap/hostap_ioctl.c | 4116 ++++++++++++++++++++++++
drivers/net/wireless/hostap/hostap_pci.c | 453 ++
drivers/net/wireless/hostap/hostap_plx.c | 612 +++
drivers/net/wireless/hostap/hostap_proc.c | 466 ++
drivers/net/wireless/hostap/hostap_wlan.h | 1075 ++++++
drivers/net/wireless/orinoco.c | 11
drivers/net/wireless/wl3501.h | 4
include/linux/wireless.h | 283 +
include/net/ieee80211.h | 887 +++++
include/net/ieee80211_crypt.h | 86
net/Kconfig | 2
net/Makefile | 1
net/core/wireless.c | 74
net/ieee80211/Kconfig | 67
net/ieee80211/Makefile | 11
net/ieee80211/ieee80211_crypt.c | 259 +
net/ieee80211/ieee80211_crypt_ccmp.c | 470 ++
net/ieee80211/ieee80211_crypt_tkip.c | 708 ++++
net/ieee80211/ieee80211_crypt_wep.c | 272 +
net/ieee80211/ieee80211_module.c | 268 +
net/ieee80211/ieee80211_rx.c | 1206 +++++++
net/ieee80211/ieee80211_tx.c | 448 ++
net/ieee80211/ieee80211_wx.c | 471 ++
48 files changed, 27052 insertions(+), 121 deletions(-)

through these ChangeSets:

<jketreno:linux.intel.com>:
o ieee80211 subsystem

<mgalgoci:parcelfarce.linux.theplanet.co.uk>:
o wireless-2.6 cleanup

Adrian Bunk:
o net/ieee80211/Kconfig: don't describe what gets selected

Alexander Viro:
o hostap __user annotations

François Romieu:
o ieee80211: offset_in_page() removal
o ieee80211: C99 initialization for eap_types
o ieee80211: failure of ieee80211_crypto_init()

Jean Tourrilhes:
o Wireless Extensions 18 (aka WPA)

Jeff Garzik:
o [wireless hostap] update for new pci_save_state()

Joshua Kwan:
o hostap: fix Kconfig typos and missing select CRYPTO

Jouni Malinen:
o hostap: Update to use the new WE18 proposal
o hostap: Filter disconnect events
o hostap: Improved suspend
o hostap: Rate limiting for debug messages
o hostap: Clear station statistic on accounting start
o hostap: Fix procfs rmdir after ifname change
o hostap: Add support for multi-func SanDisk ConnectPlus
o hostap: Disable interrupts before Genesis mode
o hostap: Include asm/io.h
o hostap: Clear station statistic on accounting start
o Host AP: Replaced MODULE_PARM with module_param*
o Host AP: Replaced direct dev->priv references with netdev_priv(dev)
o Host AP: Updated to use Linux wireless extensions v17
o Host AP: pci_register_driver() return value changes
o Host AP: Fix netif_carrier_off() in non-client modes
o Host AP: Fix PRISM2_IO_DEBUG
o Host AP: Use void __iomem * with {read,write}{b,w}
o Host AP: Fix card enabling after firmware download
o Host AP: Do not bridge packets to unauthorized ports
o Host AP: Fix compilation with PRISM2_NO_STATION_MODES defined
o Host AP: Prevent STAs from associating using AP address
o Host AP: Fix hw address changing for wifi# interface
o Host AP: Remove ioctl debug messages
o Host AP: Ignore (Re)AssocResp messages silently
o Host AP: Fix interface packet counters
o Host AP: Disable EAPOL TX/RX debug messages
o fix hostap crypto bugs
o Add HostAP wireless driver