Prism2/2.5/3 Host AP - new release v0.0.1 - 2003-04-05
Jouni Malinen
jkmaline
Sat Apr 5 20:40:08 PST 2003
A new version of Prism2 Host AP driver was just released and it is now
available from http://hostap.epitest.fi/
I was already going to release this version a long time ago, but other
wireless LAN related projects have taken most of my time and this was
been delayed. In addition, I was hoping to go through all pending emails
in my Host AP mailing folders before releasing new version, but this
proved to be too time consuming; I still have almost 500 messages left..
Anyway, I wanted to get this release out so that I can more freely
ignore bug reports for old versions ;-).
I'm going to go through the pending emails at some point and include
submitted patches etc. into the code. However, this will take some time
and if you think some of your emails about important issues has been
ignored (and the issue is still present in this release), feel free to
resend them to get more attention to the problems.
2003-04-05 - v0.0.1
* added support for IEEE 802.11 standard compliant WDS (4 addresses)
frames for Host AP mode
- this requires station firmware version 1.5.x or newer
- standard compliant vs. bogus 3-addr format can be selected with
bit2 of prism2_param wds_type; it is automatically enabled, if
station firmware is version 1.5.0 or newer
* added new prism2_param 'hostscan' for requesting scanning of APs and
IBBSs from all channels; this requires STA f/w 1.3.1 or newer; in
Master mode, this command moves to Managed mode for a second to
perform to scan, so normal AP functionality is disturbed; at the
moment, the results are shown only in the kernel ring buffer
('dmesg')
* added experimental version of passive AP scanning functionality for
Host AP mode:
- driver can be instructed to scan other channels passively, i.e.,
by listening to beacon frames from other APs
- prism2_param 'ap_scan' is used to set the interval (in seconds)
between scan attempts on different channels; 0 = passive scanning
disabled (default)
- prism2_param 'other_ap_policy' should be set to at least 1
(2 or 3 would probably be more useful) in order to record the
found APs
- changing channels will cause some disturbance on normal
functionality and using very small values of ap_scan is not
recommended
* added new procfs file /proc/net/hostap/<device>/ap to provide
compact information about other APs found (other_ap_policy must be
set for this)
* added support for TX callbacks
- driver code can register callback that will receive status of
selected TX frame (i.e., whether they were ACKed or not)
- modified AP management to mark stations authenticated/associated
only after they have acknowledged the response frame (previously,
stations were marked auth/assoc when sending the frame)
* moved a lot of code from hardware interrupt context to tasklets
(software IRQ)
- RX, Info, TX and TX Exc event handling is now in tasklets instead
of performing data copying and all computation in hardware IRQ
handler (this includes host-based decryption)
- this should make the driver behave better especially with low
performance CPUs that might have lost interrupts and systems that
need timely IRQ delivery for other devices
- AP code in hostap_ap.c is from now never called in hard IRQ
context, so lighter spinlocks can be used; most of the other code
can also use lighter locks (e.g., with baplock)
- as an extra bonus, RX code path is now more readable than before
* added new kernel patch for including Host AP driver into Linux 2.5.47
- new kernel configuration items for selecting hostapd and firmware
download support
* added station (Managed/Ad-hoc) mode support for promiscuous mode and
multicast frames (using promiscuous mode with kernel side packet
filtering); Note! This is currently commented out due to problems
with various station firmware versions.
* modified Host AP (Master) mode to honor TX rate configuration
(e.g., 'iwconfig wlan0 rate 11M')
* fixed kernel AP management code to change station status from AP to
STA when no beacons have been received from the AP for some time and
a station using same hwaddr tries to authenticate with us
* fixed monitor mode setting with the old, now deprecated, interface
(iwpriv wlan0 monitor #)
* changed Buffer Access Path (BAP) usage
- use only one BAP (BAP0) for all wlan card memory access (RX, TX,
info frame, configuration)
- there have been lot of problems with using two BAPs concurrently
even though hardware should support it; in addition, PCI Prism2.5
has a known problem that would require sleeping for some time
between BAP0 and BAP1 accesses (with recommended workaround to use
only one BAP)
- from now on, BAP accesses are fully protected with local->baplock
and this should remove all issues related to concurrent (or "almost
concurrent") BAP0/BAP1 accesses
- very experimental PCI bus mastering code is still using BAP1, but
it is not enabled in default configuration (and anyway, it has not
even been tested with the latest versions of the driver)
* added SIOCSIWSCAN ('iwlist wlan0 scan') support also to Host AP mode
* updated EAPOL state machines to use IEEE 802.1aa/D4
(note! order of EAP Success and EAPOL-Key packets has been reverted
back to IEEE 802.1x due to compatibility problems with WinXP
Supplicant)
* added support for WEP rekeying into hostapd (IEEE 802.1x)
* added preliminary (and so far minimal) support for IEEE 802.11f
(IAPP) to hostapd
* added preliminary support for RADIUS Accounting to hostapd
* added preliminary support for station functionality into hostapd:
- associate as a client to another AP while simultaneously operating
as an AP (must use same channel as the other AP)
- hostapd can wait for beacons from one AP (command line argument -C)
and then authenticate and associate with it
- new netdevice (wlan#sta) will be used for data frames to and from
this BSS
- this link can be used instead of WDS link, e.g., to extend range
of an AP or to remove need for wired uplink; however, client
connection does _not_ support layer 2 bridge operations (i.e.,
IP routing or ProxyARP must be used)
- Note! Simultaneous client operation seems to work with station
firmware version 0.6.2, 0.7.6, and 0.8.0, but not with 1.?.?.
With new firmware versions, promiscuous mode can be used to work
around this ('iwpriv wlan0 set_rid_word 64645 1')
* added '-B' command line argument for hostapd to fork it into
a background process
* moved hostapd configuration from command line arguments into a
configuration file (see hostapd/hostapd.conf for an example)
* added hostapd configuration file reloading on SIGHUP (not yet fully
implemented)
* added hostapd support for MAC address based ACLs in IEEE 802.11
authentication
- accept/deny lists in configuration file
- optional query to external RADIUS Authentication server
(User-Name and User-Password are set to station MAC address;
default format (RADIUS_ADDR_FORMAT in hostapd/radius.h has no
delimiters and uses lower case hex characters, e.g.,
00123456789a (= 00:12:34:56:78:9a); this shares the same RADIUS
server configuration with IEEE 802.1X
* added support for S3 firmware info records that span multiple lines
and for multiple variant,bottom,top triplets (prism2_srec)
* added new prism2_param 'enh_sec' for hiding SSID in beacon frames
and ignoring clients configured with "ANY" (broadcast) SSID
(note: this requires STA f/w ver 1.6.3 or newer)
* added a workaround for STA f/w version 1.6.3 (and possibly other
1.6.x or newer) to operate in Host AP mode
* fixed TX rate controlling and statistics gathering for WDS links that
are generated manually (i.e., not based on received beacon) and for
AP client mode; this should improve WDS performance for cases where
the maximum rate seemed to be 1 or 2 Mbps
--
Jouni Malinen PGP id EFC895FA
More information about the Hostap
mailing list