Re: Prism2/2.5/3 Host AP - new release 2002-09-12

From: Marian Danisek (
Date: 2002-09-12 18:12:05 UTC

Great work Jouni !!!!

Than you for your effort.

please maybe you finnaly can change actual release on your page - still as latest release May 19..

best regared


Jouni Malinen wrote:

> A new version of Prism2 Host AP driver was just released and it is now
> available from
> 2002-09-12
> * hostapd improvements: implemented ioctl() for controlling kernel
> driver from hostapd; this version is able to add stations (and
> flush list on exit/startup) and remove expired stations so operations
> with user space handling of management frames is starting to be
> usable
> * cleaned up RX and TX paths by moving AP related operations from
> prism2.c into prism2_ap.c
> * added new monitor mode 3 (like mode 2, but also include linux-wlan-ng
> style Prism2 header and use ARPHRD_IEEE80211_PRISM) and removed
> monitor mode 1 (netlink)
> - new libpcap and Ethereal knows how to use device with type
> ARPHRD_IEEE80211_PRISM so netlink version is not needed anymore
> for getting signal levels and rate
> - removed prism2ethereal since Ethereal can directly capture packets
> with Prism2 header
> - netlink mode did not fully support more than one interface
> * fixed couple of bugs causing timeouts while setting RID (TIM) in
> power saving mode with PRISM2_USE_CMD_COMPL_INTERRUPT
> * record SSID and channel of the monitored APs and show it in procfs
> file
> * fixed AP data expiration (timer was not initialized)
> * cleanup of TX buffering for power saving stations:
> - got rid of 'struct sta_buffer_frame' and use kernel routines for
> queueing skb instead
> - use prism2_tx() to send buffered frames instead of using copied
> code in prism2_ap.c (skb->cb is used to indicate that the packet
> was buffered)
> * fixed WEP with PS stations (buffered frames were not encrypted
> before)
> * added optional defines for removing unneeded parts of the driver
> (e.g., to limit the size of the kernel module); see the end of
> prism2_config.h for more information; defining all PRISM2_NO_*
> defines seem to reduce module size about 30% on Intel x86 platforms
> * added generic callback function to make it easier to add platform
> specific operations, like activity led blinking, without needing to
> change Host AP driver source code. If PRISM2_CALLBACK is defined,
> external file, hostap_callback.c, is included and it must define
> prism2_callback() that will be called on events like card
> enable/disable and RX/TX.
> * converted wireless extension ioctls to new API (based on patch from
> Jean Tourrilhes)
> * added support for wireless events (wireless ext >= 14)
> - IWEVREGISTERED, IWEVEXPIRED (wireless ext >= 15)
> * improved AP scanning support:
> - moved ScanResult debug messages into
> /proc/net/hostap/wlan#/scan_results
> - send wireless SIOCGIWSCAN event when receiving ScanResult info
> frame
> - added SIOCSIWSCAN and SIOCGIWSCAN for wireless extensions ver >= 13
> (i.e., 'iwlist scan' can be used to perform AP scanning; currently
> only in station modes) (based on patch from Jean Tourrilhes)
> * added support for host-based roaming decision for Managed mode
> (default is to use firmware-based roaming; use new prism2_param
> 'host_roaming' to enable driver-based selection)
> * added support for SIOCSIWAP (iwconfig wlan0 ap <preferred AP BSSID>)
> when using host_roaming (this can be used to implement user space
> roaming daemon (scan request with SIOCSIWSCAN, get results using
> SIOCGIWSCAN, and select AP with SIOCSIWAP)
> * fixed a bug in AP management queue handling (noticed by
> Tiebing Zhang)
> - if AP management frame queue had more than one item, only the last
> one was processed; other items were dropped with memory leak
> * fixed priv ioctls wds_add, wds_del, addmac, delmac, and kickmac to
> use copy_from_user() when referencing wrq->
> * added support for wireless extensions sub-ioctls
> - an optional replacement for prism2_param wrapper
> - these are included for WIRELESS_EXT >= 15 or if
> PRISM2_USE_WE_SUB_IOCTLS is defined (WIRELESS_EXT >= 12 is
> required in any case)
> - new iwpriv version is required (ver 25 or higher; older versions
> segfault due to long private ioctl list)
> * added support for IW_PRIV_TYPE_ADDR (replace old 18*char with user
> space parsing of MAC address). This requires iwpriv ver >= 25. This
> will be automatically included for WIRELESS_EXT >= 15; defining
> PRISM2_USE_WE_TYPE_ADDR will force this to be used even with older
> WIRELESS_EXT versions.
> * added detection for interrupt delivery problems (enabled only for
> hostap_cs.o)
> * added PCI suspend/resume support to hostap_pci.o (patch from
> Gerald Britton)
> * added support for changing MAC address (also BSSID in Host AP mode)
> with 'ifconfig wlan0 hw ether <new addr>'
> * added WDS support for non-Host AP modes and IEEE 802.11 compliant
> 4 address frame
> - removed PRISM2_STA_HAS_NO_HOSTAP_WDS_BUG define and include code
> for both IEEE 802.11 standard compliant WDS frame with 4 addresses
> and "bogus" format with 3 addresses in the header and 4th after
> payload
> - RX of both WDS formats seems to work in all modes
> - Host AP mode cannot send standard compliant WDS frames so it uses
> own format; other modes try to send standard compiliant WDS frames
> - some station firmware versions seems to be able to send valid WDS
> frames in pseudo ad-hoc mode, but some versions zero addr3 (= DA)
> - setting porttype to WDS seems to allow sending correct addr3
> - started to use 'Repeater' mode as WDS (i.e., 'iwconfig wlan0 mode
> Repeater'); this seems to be the best choice for WDS links needing
> standard compliant frame format
> * modularized encryption/decryption support
> - redesigned WEP code to allow easy addition of other algorithms as
> loadable kernel modules; new module, hostap_crypt.o is used to
> register these modules and it will be used by
> hostap_{cs,plx,pci}.o; modprobe should be able to load this
> automatically after depmod has been run; use 'make crypt' to build
> encryption related modules (they will be installed with
> 'make install_{pccard,plx,pci}')
> - moved WEP implementation from hostap_{cs,plx,pci}.o into
> hostap_crypt_wep.o; this is _not_ loaded automatically and it will
> need to be loaded before WEP can be used (e.g., from the script
> that sets the keys)
> - added support for key mappings, i.e., individual keys for each
> station
> - added new prism2_param 'bcrx_sta_key' for selecting whether
> individual is used also for broadcast frames (IEEE 802.11 specifies
> that it is not used and this is the default)
> - added a tool, utils/hostap_crypt_conf, for setting encryption
> algorithms and individual keys (iwconfig can still be used to setup
> default WEP keys)
> - fixed host_decrypt to not accept unencrypted frames unless open_wep
> is set
> * module structure reorganization
> - moved prism2_ap.c, prism2_ioctl.c, prism2_proc.c, and some
> functions from prism2.c into new hostap.o module that exports
> symbols shared by hostap_{cs,plx,pci}.o; more will probably follow
> later so that hostap_{cs,plx,pci}.o will end up having only code
> that is hardware model dependent
> - renamed all exported functions to use hostap_ prefix in their names
> * renamed /proc/net/prism2 directory to /proc/net/hostap and fixed
> concurrent use of different hostap_{cs,plx,pci}.o modules to use the
> same directory instead of making two directories with the same name
> * renamed driver/ to driver/, driver/modules/prism2_*
> to driver/modules/hostap_*, and driver/modules/prism2.c to
> driver/modules/hostap_hw.c, i.e., use 'hostap' prefix with all file
> names
> * redesigned command completion waiting
> - do not use busy waiting
> - use a driver queue for pending commands to guarantee string order
> and serialization of the commands; if command queue is empty, new
> commands will be issued immediately, otherwise the pending
> commands will be issued from command completion event of the
> previous command
> - use command completion event (interrupt) for all commands
> (previously this was only used for transmit command)
> - remove PRISM2_USE_CMD_COMPL_INTERRUPT definition (there is no
> alternative version for busy waiting to keep the code cleaner)
> - hfa384x_cmd() can from now on only be called from user context;
> it will sleep (instead of busy waiting) for the command completion
> event (wake up from interrupt handler); same limit applies to
> get_rid/set_rid
> - hfa384x_callback() is a new method for performing commands, both
> from user and interrupt context; it registers a callback function
> that will be called when the command has finished; this cleans up
> transmit and bus mastering code a lot
> - HW reset (prism2_hw_reset) cannot be called from interrupt context
> anymore (these calls are replaced with scheduled task that calls
> prism2_hw_reset() from user context
> - AP's TIM setting has been replaced with scheduled task and a queue
> of entries to be set to avoid using set_rid from interrupt context
> * modified (kernel driver) AP code to send management frames using
> netif queue to make sure that TX operations are not used
> concurrently; this should fix some problems with high load cases;
> this also means, that management frames are _not_ anymore sent unless
> device is UP (i.e., no auth/assoc happens before device is set up;
> however, beacons and probe responses are sent if the device is
> enabled)
> * added support for TMD7160-based National Datacomm NCP130
> (PCI ID 15e8:0131) to hostap_plx.o
> * fixed iwpriv readmif and writemif on big endian platforms
> * added IEEE 802.1X support:
> - Port access entity (in the kernel driver) control authorized/
> unauthorized port access
> - Authenticator in hostapd user space daemon (kernel driver needs
> to be compiled with EXTRA_CFLAGS=-DPRISM2_HOSTAPD)
> - minimal authentication server included in hostapd for test use
> (does not check any keys etc.)
> - support for external authentication server using RADIUS (e.g.,
> FreeRadius and EAP/TLS)
> - automatic WEP key setting for default/broadcast and individual
> unicast keys
> * changed TXEXC RetryErr debug logging to be configurable (default:
> do not print); this can be set with bit2 (= 4) of prism2_param
> 'dump'
> * improved ordering of debug printing in auth/assoc frame handlers to
> avoid spending too much time before replying the message and causing
> failed auth/assoc (TXEXC RetryErr)

SUNTEQ s. r. o.
Bojnicka cesta 35 # Prievidza # 971 04 # Slovak republic
Tel: +421-46-5430 754 # Fax: +421-46-5439 144
A mind is like a parachute... it only works when it's open.

This archive was generated by hypermail 2.1.4.