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

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
* 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
* 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
* 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
* added hostapd support for MAC address based ACLs in IEEE 802.11
  - 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