New Wireless Stack in Linux Kernel
It’s nerdtime again :)
Over at Kernel Newbies you can have a look at the changelog of the recently released Linux Kernel 2.6.22.
Here’s the cool part about the new wireless stack:
New Wireless stackFor too many years, Linux wireless support has worked, but not very well. 2.6.22 has a completely new, better wireless stack included. This new wireless stack has been donated by the known WiFi specialist company Devicescape (many thanks to Devicescape for their contribution and support to open source!). This wireless stack has many features, like a complete software MAC implementation, WEP, WPA, a “link-layer”; bridging module, hostapd, QoS support to prioritize things like VoIP, 802.11g support, and full debug capabilities. All of this comes in a single implementation that drivers can use without rewriting those features themselves, which sadly has been done multiple times in the linux WiFi world.
Another feature of this stack is a completely new user interface. The old stacks have an ugly ioctl-based interface which were standarized under the name of “wireless extensions”; (wext). The new interface uses a netlink-based interface, suited for the needs of desktop-based configuration interfaces, but retaining at the same time userspace compatibility with the old interface.
The disadvantage is the lack of drivers using this stack: the drivers that have been in the tree for a long time do not support this stack, and will need to be ported (which will hopefully not be that hard, since the new stack is actually a much better ground to build drivers upon that the current mess). There are quite a lot of new and ported drivers that are already using the new stack which have not been merged in this release, but will get merged in future releases, like the RT2x00 drivers, the bcm43xx driver, zd1211rw, adm8211, rtl818x, Intel iwlwifi (ipw3945 and ipw4965). Distributions like Ubuntu and Fedora already are using them.
In any case, this is the building block that will bring better wireless support to Linux.