Rt2x00 beta
From Rt2x00Wiki
rt2x00 beta status page
History
Since Ralink released their RT2400 and RT2500 drivers under the GPL, it became apparent that to stabilize the driver for all users and configurations, more was needed then simple bugfixes.
Because of this the decision was made to completely rewrite the driver which is capable of supporting more architectures and devices with less resources. Because the source code of the individual drivers rt2400 and rt2500 looked very similar the decision was made to create a unified driver. With a single source tree support would be created for rt2400 and rt2500 both pci as usb.
The first attempt to create this unified driver was the rt2x00_alpha tree. This alpha tree gives some first impressions on the planned design of the final module, but getting it to work is proofing to be very difficult.
Since a few months some kernel developers have started the development of the generic 802.11 stack. By using this stack development of the rt2x00 module should be simplified. But by making use of the 802.11 stack, the rt2x00 module must again be redesigned. Which gives an opening for everybody to discuss new plans and features.
After working with the IPW ieee80211 stack which was merged into the kernel, the rt2x00 team decided to move over to the newer DeviceScape ieee80211 stack since that should deliver better support for non-firmware wireless devices. The last release with the IPW ieee80211 stack was rt2x00 Beta3, the first release with the DeviceScape ieee80211 stack will be rt2x00 Beta4.
On this page the new features, a design plan and a development plan for rt2x00 Beta published.
New Features
WEP, WPA, WPA2 encryption will be handled by the 802.11 stack.
All modes supported by the DeviceScape ieee80211 stack are:
auto, adhoc, managed, master and monitor.
Supported modes: auto, adhoc, managed, master and monitor.
Repeater and secondary mode are not supported but its implementation depend on the ieee80211 stack .
rt2x00 has been designed to use far less memory then the legacy Ralink drivers.
Not only has the module size significantly been reduced, but also the amount of memory allocated has been more optimized.
Design Plan
The driver will consist of several modules: rt2400pci.ko rt2500pci.ko, rt2500usb.ko, rt61.ko and rt73usb.
The device modules will directly connect with the device. Their tasks will consist of interrupt handling, packet to and from device handling and register updating. All other tasks will be handled by the ieee80211 stack.
For backward compatibility the driver will also contain latest version of the generic 802.11 stack. Instead of the IPW ieee80211 stack the decision was made to include the DeviceScape ieee80211-devel stack. This stack provides some benefits above the IPW ieee80211 stack.
High-level Design Diagram
Image:Rt2x00beta.png
Note: RTS is no longer handled by rt2x00core.
This task has been taken over by the ieee80211 stack.
Source files
rt2x00.h: Generic header which provides methods and variables common for all rt2x00 modules.
module name: rt2400pci.ko
rt2400pci.h: Contains structures and defines for the rt2400 pci module.
rt2400pci.c: rt2400 pci module routines.
module name: rt2500pci.ko
rt2500pci.h: Contains structures and defines for the rt2500 pci module.
rt2500pci.c: rt2500 pci module routines.
module name: rt2500usb.ko
rt2500usb.h: Contains structures and defines for the rt2500 usb module.
rt2500usb.c: rt2500 usb module routines.
module name: rt61pci.ko
rt61pci.h: Contains structures and defines for the rt61 pci module.
rt61pci.c: rt61 pci module routines.
module name: rt73usb.ko
rt73usb.h: Contains structures and defines for the rt73 usb module.
rt73usb.c: rt73 usb module routines.
Wishlist
Features and functionality not yet added to rt2x00-beta but are supposed to be implemented before the first rt2x00-beta release are listed here.
- Investigate implementation Hardware encryption for rt2560 and rt2570.
Problems
Since the move to the new DeviceScape ieee80211 stack, all modules should be retested, and a new list of known problems should be created.
All bugs are being reported on the sourceforge bugzilla.
