New MadWifi Code From Atheros
This page is a brief description of the features of the latest code from Atheros.
License and HAL
- The license for the driver has not changed. It is still dual BSD / GPL v2 licensed.
- The About/HAL is still binary only and will still taint the kernel.
- More information on the About/HAL page.
Enhanced Chipset Support
The About/HAL that comes along with the new code now supports almost all of chipsets that are currently available. There should be a new HAL soon which supports all of them except for USB chipsets.
VAPs and wlanconfig
The most interesting new feature is probably the introduction of Virtual AP (VAP) mode, which allows the operation of multiple concurrent (virtual) access points, and concurrent running in both AP and station mode. VAPs sit on top of a base device (usually called wifi0). This base device will be the first device you see when the drivers load, and is not linked to the wireless extensions. Beware that ifrename might change the device name from wifi0 to something else if you installed and configured it to rename interfaces with your device's MAC address. The initial kernel messages from ath_pci will still report wifi0, though.
To manipulate VAPs, Madwifi comes with a tool called wlanconfig which is used to create and destroy VAPS with various different modes. As of SVN r1407, a sta VAP (Managed mode interface) is created by default, please see this the Autocreate page for more details about manipulating the autocreation process.
A typical wlanconfig command might look like the following (which creates the device ath0 as a normal 'station mode' VAP):
wlanconfig ath0 create wlandev wifi0 wlanmode sta
If the 0 from ath0 were to be ommited, wlanconfig would start creating devices using the first available index. If you obtain an error (wlanconfig: ioctl: Invalid argument) when specifying an index, not specifying an index may work (!).
To create an access point, use:
wlanconfig ath0 create wlandev wifi0 wlanmode ap
To create an access point, _and_ a station, use:
wlanconfig ath0 create wlandev wifi0 wlanmode ap wlanconfig ath1 create wlandev wifi0 wlanmode sta nosbeacon
To create APs which share a single MAC address, use the -bssid flag when creating the VAPs:
wlanconfig ath0 create wlandev wifi0 wlanmode ap -bssid wlanconfig ath1 create wlandev wifi0 wlanmode ap -bssid
Finally, to destroy a VAP, issue the command:
wlanconfig ath0 destroy
Note that the whole interface name is needed.
Also note that this feature will work with any supported chipset.
WDS, XR, Compression etc.
Madwifi comes with a whole host of private commands (accessible through iwpriv) which allow getting and setting driver features/details. The following descriptions are as a guide only:
- ChipsetFeatures/4AddressHeaders -- 4-address header support.
- ChipsetFeatures/Roaming -- Roaming.
- WPA/WPA 2 countermeasures
- ChipsetFeatures/WMM -- Wi-Fi Multimedia.
- ChipsetFeatures/SuperAG -- Super A/G Features.
- ChipsetFeatures/TPC -- Transmit Power Control.
- ChipsetFeatures/DFS -- Dynamic Frequency Selection.
- ChipsetFeatures/BackgroundScanning -- Background Scanning