Intel(R) PRO/Wireless 3945ABG Network Connection driver for Linux* in 
support of:

Intel(R) PRO/Wireless 3945ABG Network Connection Adapter
Intel(R) PRO/Wireless 3945BG Network Connection Adapter

Note: The Intel(R) PRO/Wireless 3945ABG Network Connection driver for 
Linux is a unified driver that works on both hardware adapters listed 
above. In this document the Intel(R) PRO/Wireless 3945ABG Network Connection 
driver for Linux will be used to reference the unified driver.

Copyright (C) 2005 - 2006, Intel Corporation

README.ipw3945

Version: 1.0.5
Date   : May 22, 2006


Index
-----------------------------------------------
0.   IMPORTANT INFORMATION BEFORE USING THIS DRIVER
1.   Introduction
1.1. Overview of Features
2.   Loading the Driver
3.   Feature Details
3.1. LEDs
3.2. Association Details
3.3. Roaming Details
3.4. Scanning Details
3.5. Antenna Selection and "Diversity"
3.6. IEEE 802.11h Details 
3.7. Tx Power 
3.8. Security Details
3.9. Power Management
4.   Configuring the driver
4.1. Command Line Parameters
4.3. Sysfs Helper Files:
5.   Wireless Tools Details
5.1. iwlist
5.2. iwpriv
5.3. iwconfig
6.   Support
7.   License


===============================================
0.   IMPORTANT INFORMATION BEFORE USING THIS DRIVER
===============================================

Important Notice FOR ALL USERS OR DISTRIBUTORS!!!! 

Intel wireless LAN adapters are engineered, manufactured, tested, and
quality checked to ensure that they meet all necessary local and
governmental regulatory agency requirements for the regions that they
are designated and/or marked to ship into. Since wireless LANs are
generally unlicensed devices that share spectrum with radars,
satellites, and other licensed and unlicensed devices, it is sometimes
necessary to dynamically detect, avoid, and limit usage to avoid
interference with these devices. In many instances Intel is required to
provide test data to prove regional and local compliance to regional and
governmental regulations before certification or approval to use the
product is granted. Intel's wireless LAN's EEPROM, firmware, and
software driver are designed to carefully control parameters that affect
radio operation and to ensure electromagnetic compliance (EMC). These
parameters include, without limitation, RF power, spectrum usage,
channel scanning, and human exposure. 

For these reasons Intel cannot permit any manipulation by third parties
of the software provided in binary format with the wireless WLAN
adapters (e.g., the EEPROM and firmware). Furthermore, if you use any
patches, utilities, or code with the Intel wireless LAN adapters that
have been manipulated by an unauthorized party (i.e., patches,
utilities, or code (including open source code modifications) which have
not been validated by Intel), (i) you will be solely responsible for
ensuring the regulatory compliance of the products, (ii) Intel will bear
no liability, under any theory of liability for any issues associated
with the modified products, including without limitation, claims under
the warranty and/or issues arising from regulatory non-compliance, and
(iii) Intel will not provide or be required to assist in providing
support to any third parties for such modified products.  

Note: Many regulatory agencies consider Wireless LAN adapters to be
modules, and accordingly, condition system-level regulatory approval
upon receipt and review of test data documenting that the antennas and
system configuration do not cause the EMC and radio operation to be
non-compliant.

The drivers available for download from SourceForge are provided as a 
part of a development project.  Conformance to local regulatory 
requirements is the responsibility of the individual developer.  As 
such, if you are interested in deploying or shipping a driver as part of 
solution intended to be used for purposes other than development, please 
obtain a tested driver from Intel Customer Support at:

http://support.intel.com/support/notebook/sb/CS-006408.htm


===============================================
1.   Introduction
===============================================
The following sections attempt to provide a brief introduction to using 
the Intel(R) PRO/Wireless 3945ABG driver for Linux.

This document is not meant to be a comprehensive manual on 
understanding or using wireless technologies, but should be sufficient 
to get you moving without wires on Linux.

For information on building and installing the driver, see the INSTALL
file.


1.1. Overview of Features
-----------------------------------------------
The current release (1.0.5) supports the following features:

+ BSS mode (Infrastructure, Managed)
+ IBSS mode (Ad-Hoc)
+ WEP (OPEN and SHARED KEY mode)
+ 802.1x EAP via wpa_supplicant and xsupplicant
+ 802.11i (WPA/WPA2)
+ Wireless Extension support 
+ Full B and G rate support
+ Full A rate support (ABG only)
+ Transmit power control
+ S state support (ACPI suspend/resume)

The following features are currently enabled, but not officially
supported:

+ QoS
+ Monitor mode (aka RFMon)
+ Associated RF promiscuous mode
+ Frame Rx simulation

The distinction between officially supported and enabled is a reflection 
of the amount of validation and interoperability testing that has been
performed on a given feature. Note: in addition, the features may not have 
all of the code in the driver to fully enable the feature.


===============================================
2. Loading the Driver
===============================================

See the INSTALL document for information on installing the driver.

Once installed, a typical method for launching the driver and the 
regulatory daemon is via the load script provided in the source package:

	# ./load debug=0x43fff   <--- You need to be root for this

NOTE:  You will not be able to rmmod the driver so long as the 
ipw3945d daemon is running.  

If you followed the steps of the INSTALL document to set up your
modprobe.conf, you can load the module by simply running:

	# modprobe ipw3945       <--- You need to be root for this

If you did not configure your modprobe.conf to automatically launch the 
regulatory daemon (see INSTALL), you must do so manually after loading 
the module:

	# /sbin/ipw3945d	<--- You need to be root for this

If you want to unload the module (and kill the deamon as well), you can 
simply use the unload script:

	# ./unload               <--- You need to be root for this

or likewise if you configured modprobe.conf:

	# modprobe -r ipw3945       <--- You need to be root for this

If you did not configure modprobe.conf to unload the regulatory daemon 
and are not using the unload script, you need to kill the regulatory 
daemon before you will be able to unload the module:

	# /sbin/ipw3945d --kill	<--- You need to be root for this
	# modprobe -r ipw3945


===============================================
3. Feature Details
===============================================

3.1. LEDs
-----------------------------------------------

The driver will attempt to control the wireless LED, if one is 
configured in hardware.  There are typically two LEDs:

	Activity -- used to indicate wireless activity
	Link     -- used to indicate wireless link

The LED blink states can be interpreted as:

  Link

	Off                      -- Radio OFF
	Long off, long on        -- Unassociated
	Short off, short on      -- Scanning
	Solid on                 -- Associated
	Intermittent off         -- Attempting to roam

  Activity

	Off                      -- No network activity
	Blinking                 -- Speed of blink correlates to speed of 
		 		    Tx/Rx

NOTE:  In configurations where there is only one LED, the states may be 
overlaid -- for example, while no data is being transferred while 
associated, the LED may be solid.  When data is being transferred it may 
blink according to the data transfer speed.


3.2. Association Details
-----------------------------------------------

The driver is configured to only attempt association once you have 
specified the ESSID for the network to associate with.  You can 
override this behavior by providing the associate=1 module parameter.

See the section 'Command Line Parameters' for more information.


3.3. Roaming Details
-----------------------------------------------

Roaming criteria is based on missed beacons.  Once a given number of 
beacons have been missed, the STA will look for an alternate AP on the 
same network (ESSID and CHANNEL).  If one with a stronger signal is 
found, it will attempt a re-association with the new AP.


3.4. Scanning Details
-----------------------------------------------

Active / Passive scanning is controlled by the regulatory daemon.  
The driver can request to invoke active scanning on any channel, 
but only those channels currently allowing active scanning will 
be allowed to actually send probe requests.


3.5. Antenna Selection and "Diversity"
-----------------------------------------------

If you use only one antenna, you should manually select it via the
"antenna" load parameter, or via /sys/bus/pci/drivers/ipw3945/00*/antenna.

Modes are:
0:  Diversity ... NIC selects best antenna by itself (this is the default)
1:  Main antenna only
2:  Aux antenna only


3.6. IEEE 802.11h Details 
-----------------------------------------------

Only BASIC reporting is supported; CCA and RPI are optional and not 
implemented.  The driver currently does not respond with the appropriate 
refusal frame if it receives a request that it will not provide a 
report for.  

  Received TPC Request's will result in a TPC report being transmitted.  

Channel Switch is currently supported; a received channel switch will 
result in the channel switching.

  The STA will not perform measurements requested by other STAs.

IBSS is not supported on channels marked as DFS or passive-only.  As 
such, supporting IBSS DFS is not required.  The use of IBSS networks 
(starting or joining) on channels marked as spectrum managed is not 
supported (since we do not support the full IBSS DFS owner mode)

The user can manually control the transmit power control via the 
iwconfig txpower command (see below for details on behavior of the
txpower command with this driver).

Channels indicated to require radar detection are only allowed to be 
used in association with access points that advertise support for IEEE 
802.11h.  To determine which channels require this, see the 'channels' 
entry in the section 'Device Level Sysfs Helper Files.'


3.7. Tx Power 
-----------------------------------------------

Through the use of the wireless tools, you can set an upper limit on 
the maximum transmit power to use.  When unassociated, the driver
defaults to reporting the Tx power of the maximum transmit power supported 
by any of the channels.  For example, if one channel supports 16dBm and the
rest support only 14dBm, upon loading the driver the reported Tx power
level will be set to 'auto' with a level of '16dBm'.  Attempts to
set the Tx power above 16dBm will be clamped by the driver.

When tuning to a channel, if no user limit has been configured, the driver
will set the transmit power to the maximum supported by that channel.  
The wireless tools will report 'auto' with that level.

If you configure a maximum value, the wireless tools will report 'fixed'
and the value you specified if unassociated.  If you are associated, the
driver will use and report the lesser of either the limit provided or the
limit configured for that channel in the hardware.

After setting the transmit power level limit via Tx power both scan probe 
requests and data packets will be clamped to this level.  If you attempt
to provide a value outside of the supported range (-12dBm to the maximum 
supported by your SKU, typically in the range of 14dBm to 17dBm) that
value will be automatically clamped.

Scan probe requests have a lower bound of 0dBm.  If you set a value 
below 0dBm, that value will be used for other packets, but scan requests 
will be set to 0dBm.


3.8. Security Details
-----------------------------------------------

The driver currently supports WEP (64 and 128) as well as 802.1x, WPA, 
and WPA2 with the use of wpa_supplicant.  If you are using a newer 
kernel with Wireless Extensions > 18, then you should use a newer 
version of wpa_supplicant and the -Dext driver.  If you are using an 
older kernel, you should use wpa_supplicant and the -Dipw driver.

Users have reported problems using older (0.3.x) versions of 
wpa_supplicant with various authentication modes (WPA PSK, etc.).  
If you experience problems using wpa_supplicant, please upgrade to the 
latest version of the supplicant (0.4.6 or newer).


3.9. Power Management
-----------------------------------------------
The Intel PRO/Wireless 3945ABG Network Connection driver for Linux 
supports the configuration of the Power Save Protocol through a private 
wireless extension interface. The driver supports the following 
different modes:

	0       AC - Always ON
	1-5	Different levels of power management.  The higher the 
		Number, the greater the power savings, but with an impact to 
		packet latencies. 
	6	AC - Always ON
	7	BATTERY - Default setting for battery mode
	>7      AC - Always ON

Power management works by powering down the radio after a certain 
interval of time has passed where no packets are passed through the 
radio.  Once powered down, the radio remains in that state for a given 
period of time.  For higher power savings, the interval between last 
packet processed to sleep is shorter and the sleep period is longer.

When the radio is asleep, the access point sending data to the station 
must buffer packets at the AP until the station wakes up and requests 
any buffered packets.  If you have an AP that does not correctly support 
the PSP protocol you may experience packet loss or very poor performance 
while power management is enabled.  If this is the case, you will need 
to try to find a firmware update for your AP, or disable power 
management (via `iwconfig eth1 power off`)

To configure the power level on the Intel PRO/Wireless 3945ABG Network
Connection driver for Linux, you must use the iwpriv set_power command:

Setting the power management on and off via 'iwconfig power' is not
currently supported by the driver.

	iwpriv set_power 1-5  Set the power level as specified.
	iwpriv set_power 7    Set power level to default BATTERY level.

Setting the power level to any other value (0, 6, >7) will result in setting
the device into AC mode with Power Management disabled.  

If you explicitly set AC mode, the radio will always be on, however because
you have set a specific mode, it will still show as 'Power Management: on'
via wireless tools.

You can view the current power level setting via:
	
	iwpriv get_power

It will return the current period or timeout that is configured as a string
in the form of xxxx/yyyy (z) where xxxx is the timeout interval (amount of
time after packet processing), yyyy is the period to sleep (amount of time 
to wait before powering the radio and querying the access point for buffered
packets), and z is the 'power level'.

If the adapter was configured to a mode outside the range 1-7, the value
6 (AC) will be displayed followed by the text OFF to indicate a value 
outside of the Power Management range was specified.

If the adapter is configured to any mode 1-7 then the wireless tool will
report 'Power Management: on'.  If the mode is set to 0 or > 7, the
wireless tools will report 'Power Management: off'.


===============================================
4. Configuring the driver
===============================================

4.1. Command Line Parameters
-----------------------------------------------

Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless
3945ABG driver for Linux allows configuration options to be provided 
as module parameters.  The most common way to specify a module parameter 
is via the command line.  

The general form is:

% modprobe ipw3945 parameter=value

  antenna
	Select antenna to use.  If both antennas are used, antenna
	selection is handled by the driver and microcode.
	
	1 = Main, 2 = Aux.  Default is 0 [both]

  associate
	Set to 0 to disable the auto scan-and-associate functionality of the
	driver.  If disabled, the driver will not attempt to scan 
	for and associate to a network until it has been configured with 
	one or more properties for the target network, for example 
	configuring the network SSID.
	
	0 = only scan and associate once configured, 
	1 = auto scan and associate.
	Default 0 [do nothing until configured]

  auto_create
	Set to 0 to disable the auto creation of an ad-hoc network 
	matching the channel and network name parameters provided.  

	0 = do not attempt to create ad-hoc network
	1 = automatically create ad-hoc network once configured

	Default is 1 [auto create].

  channel
	channel number for association.  The normal method for setting
        the channel would be to use the standard wireless tools
        (i.e. `iwconfig eth1 channel 10`), but it is useful sometimes
	to set this while debugging.  Channel 0 means 'ANY'

	For information on which channels are available, see the 'channels'
	sysfs entry (documented below).

	Default is 0 [ANY].

  debug
	If using a debug build, this is used to control the amount of debug
	info is logged.  See the 'dvals' and 'load' script for more info on
	how to use this. 

	The dvals and load scripts are provided in the ipw3945-1.0.5.tgz
	development snapshot releases available from the SourceForge 
	project at http://ipw3945.sf.net)

	NOTE:  This entry is only available if CONFIG_IPW3945_DEBUG is
	enabled.
  
  disable
	Manually disable the radio (software RF kill).  This parameter
	allows you to configure the syfs rf_kill setting to turn on 
	software based RF kill.  You must clear out the sysfs entry in
	order to turn the radio on if this parameter is provided.

	For additional details on the rf_kill sysfs entry see the section
	on sysfs below.

	0 = Radio ON, 1 = Radio OFF.  Default is 0 [Radio ON]

  led
	Can be used to turn on LED code.

	0 = Off, 1 = On.  Default is 1 [LED On].

  mode
	Can be used to set the default mode of the adapter.

	0 = Managed, 1 = Ad-Hoc, 2 = Monitor.  Default is 0 [Managed]

	NOTE:  Monitor is only available if CONFIG_IPW3945_MONITOR is
	enabled.

  If CONFIG_IPW3945_QOS is enabled:

  qos_enable
	
	Enable all Qos functionality.

	0 = disable, 1 = enable.  Default is 0 [disabled]

  qos_burst_enable

	Enable QoS burst mode.
		
	0 = disable, 1 = enable.  Default is 0 [disabled]

  qos_no_ack_mask

	Mask transmit queue to not ACK.  Currently not used.

  qos_burst_CCK

	Duration of burst for CCK (802.11B) frames.

	Default = 0

  qos_burst_OFDM

	Duration of burst for OFDM (802.11A/G) frames.

	Default = 0.

  If CONFIG_IPW3945_PROMISCUOUS is enabled:

  rtap_iface
	Set to 1 to create a promiscuous radiotap interface.  This 
	interface will be set to type ARPHRD_IEEE80211_RADIOTAP and will 
	be passed every frame received over the air by the adapter.

	Default = 0.


4.3. Sysfs Helper Files:
-----------------------------------------------

The Linux kernel provides a pseudo file system that can be used to 
access various components of the operating system.  The Intel(R)
PRO/Wireless 3945ABG Network Connection driver for Linux exposes 
several configuration parameters through this mechanism.

An entry in the sysfs can support reading and/or writing.  You can 
typically query the contents of a sysfs entry through the use of cat, 
and can set the contents via echo.  For example:

	% cat /sys/bus/pci/drivers/ipw3945/debug_level

Will report the current debug level of the driver's logging subsystem 
(only available if CONFIG_IPW_DEBUG was configured when the driver was 
built).

You can set the debug level via:

	% echo $VALUE > /sys/bus/pci/drivers/ipw3945/debug_level

Where $VALUE would be a number in the case of this sysfs entry.  The 
input to sysfs files does not have to be a number.  For example, the 
firmware loader used by hotplug utilizes sysfs entries for transfering 
the firmware image from user space into the driver.

The Intel(R) PRO/Wireless 3945ABG Network Connection driver for Linux 
exposes sysfs entries at two levels -- driver level, which apply to all 
instances of the driver (in the event that there is more than one device 
installed) and device level, which applies only to the single specific 
instance.


4.3.1 Driver Level Sysfs Helper Files

For the driver level files, look in /sys/bus/pci/drivers/ipw3945/

  If CONFIG_IPW3945_DEBUG is enabled:

  debug_level  
	
	This controls the same global as the 'debug' module parameter



4.3.2 Device Level Sysfs Helper Files

For the device level files, look in
	
	/sys/bus/pci/drivers/ipw3945/{PCI-ID}/

For example:
	/sys/bus/pci/drivers/ipw3945/0000:02:01.0

For the device level files, see /sys/bus/pci/drivers/ipw3945:

  rf_kill
	read - 
	0 = RF kill not enabled (radio on)
	1 = SW based RF kill active (radio off)
	2 = HW based RF kill active (radio off)
	3 = Both HW and SW RF kill active (radio off)

	write -
	0 = If SW based RF kill active, turn the radio back on
	1 = If radio is on, activate SW based RF kill

	NOTE: If you enable the SW based RF kill and then toggle the HW
  	based RF kill from ON -> OFF -> ON, the radio will NOT come back on
	
  led
	read -
	0 = LED code disabled
	1 = LED code enabled
	write -
	0 = Disable LED code
	1 = Enable LED code

	NOTE: The LED code has been reported to hang some systems when 
	running ifconfig and is therefore disabled by default.

  scan_age
	read -
	Maximum age of a usable network in milliseconds 

	write -
	Maximum age of a usable network in milliseconds.  For example:

	# echo 15000 > /sys/bus/pci/drivers/ipw3945/*/scan_age

	will set a maximum age of 15 seconds.  The default as of 
	ieee80211-1.1.12 was 15 seconds.  Some users find setting this to
	60 seconds is more appropriate.

  channels
	read -

	Used to provide details on the channel capabilities enabled
	by the adapter.
	
	Example:   
	
	% cat /sys/bus/pci/drivers/ipw3945/*/channels

	  Displaying 13 channels in 2.4Ghz band (802.11bg):
	  1: 17dBm: BSS, IBSS, active/passive.
	  2: 17dBm: BSS, IBSS, active/passive.
	...
	  11: 17dBm: BSS, IBSS, active/passive.
	  12: 17dBm: BSS, passive only.
	  13: 17dBm: BSS, passive only.
	  Displaying 19 channels in 5.2Ghz band (802.11a):
	  36: 17dBm: BSS, IBSS, active/passive.
	...
	  48: 17dBm: BSS, IBSS, active/passive.
	  52: 17dBm: BSS (IEEE 802.11h required), passive only.
	...
	  136: 17dBm: BSS (IEEE 802.11h required), passive only.
	  140: 17dBm: BSS (IEEE 802.11h required), passive only.

	Channels where IEEE 802.11h is required will only associate with 
	APs that have the Spectrum Management bit enabled.  

	For channels marked where ad-hoc is not supported (IBSS is not 
	listed), you can neither join or create an IBSS (ad-hoc) network 
	on that channel.

  If CONFIG_IPW3945_PROMISCUOUS is enabled:

  rtap_iface
	Set to 1 to create a promiscuous radiotap interface.  This 
	interface will be set to type ARPHRD_IEEE80211_RADIOTAP and will 
	be passed every frame received over the air by the adapter.

	Set to 0 to remove the created interface.

	If an interface is configured, reading the entry will provide 
	the name of the interface, for example 'rtap0'.  If no interface 
	is created, -1 will be returned.	

  If CONFIG_IPW3945_SIM_RX is enabled:

  rx
	This is a write-only entry.  The driver expects a binary blob
	to be passed to this entry in radiotap header format.  The
	driver will parse that format and configure an internal 
	structure as if the frame had been received over the air.  It 
	will then be passed to the driver, simulating reception of the 
	frame.

	For a sample application that writes to this file, see

		http://ipw3945.sf.net/sim_rx.c


===============================================
5. Wireless Tools Details
===============================================

5.1. iwlist
-----------------------------------------------

If a wireless tool command is not described below, please see the
iwlist man page for details.  

5.1.1. iwlist scan

The wireless tools default to only waiting 2 seconds between requesting
a scan and reporting the scan results.  In some hardware configurations,
two seconds is not long enough to rotate through all of the available
channels looking for valid networks.  As such, you may find better 
results by running iwlist scan once, then waiting a few seconds and 
running it again.  For example:

	% iwlist scan 2>&1>/dev/null & sleep 3 ; iwlist scan

While associated, the scan results can take substantially longer to return
as the driver is limited on how long it can be away from the currently
associated channel without impacting packet transmission.  As such,
you may need to run the command several times to see all networks.  

You can also try increasing the maximum age of a network reported by the
ieee80211 subsystem via the scan_age sysfs entry.

5.1.2. iwlist freq/channel

This will list all of the channels that can be used 
with the current hardware card.  There are various versions of the 
Intel PRO/Wireless 3945ABG Network Connection for different geographies.  
The results seen on one computer may not match the results seen on another
computer with a different geography card.

'iwlist freq' will show you the list of supported channels, but it does 
not provide any indication of what type of spectrum management may be 
enabled for a given channel.

You can view the regulatory requirements for your adapter by examining 
the contents of the 'channels' sysfs entry as described under 
channels in the Device Level Sysfs Helper Files section of this document.

5.1.3. iwlist bitrate/rate

Returns the list of supported Tx data rates sorted by modulation and then
speed.  Modulation is sorted by CCK rates first, then OFDM.

5.1.4. iwlist power

See section on Power Management.

5.1.5. iwlist txpower

See section on Tx Power.

5.1.6. iwlist ap/accesspoints/peer

Deprecated.  See iwlist man page.

5.2. iwpriv
-----------------------------------------------

As an interface designed to handle generic hardware, there are certain 
capabilities not exposed through the normal Wireless Tool interface.  As 
such, a provision is provided for a driver to declare custom, or 
private, methods.  The Intel(R) PRO/Wireless 3945ABG Network Connection 
driver for Linux defines several of these to configure various settings.

The general form of using the private wireless methods is:

	% iwpriv $IFNAME method parameters

Where $IFNAME is the interface name the device is registered with 
(typically eth1, customized via one of the various network interface
name managers, such as ifrename)

The supported private methods are:

  get_mode
	Can be used to report out which IEEE 802.11 mode the driver is 
	configured to support.  Example:
	
	% iwpriv eth1 get_mode
	eth1	get_mode:802.11abg (7)

  set_mode
	Can be used to configure which IEEE 802.11 mode the driver will 
	support.  

	Usage:
	% iwpriv eth1 set_mode {mode}
	Where {mode} is a number in the range 1-7:
	1	802.11a (ABG only)
	2	802.11b
	3	802.11ab (ABG only)
	4	802.11g 
	5	802.11ag (ABG only)
	6	802.11bg
	7	802.11abg (ABG only)

  get_preamble
	Can be used to report configuration of preamble length.

  set_preamble
	Can be used to set the configuration of preamble length:

	Usage:
	% iwpriv eth1 set_preamble {mode}
	Where {mode} is one of:
	1	Long preamble only
	0	Auto (long or short based on connection)
	
  set_power
  get_power

	See Power Management section.
  

5.3. iwconfig
-----------------------------------------------

If a wireless tool command is not described below, please see the
iwconfig man page for details.  

5.3.1. iwconfig nwid/domain

Not supported.

5.3.2. iwconfig freq/channel

See iwconfig man page for general description.

Once configured, the adapter will only use the channel or frequency
specified, if valid for the current hardware configuration.  You
can set the adapter back to use any channel by specifying '0' as the 
channel.

5.3.3. iwconfig sens

Not supported.

5.3.4. iwconfig mode

See iwconfig man page for general description.  

Current modes supported: Ad-Hoc and Managed (Auto)
Current modes enabled but untested: Monitor
Current modes unsupported: Master, Repeater, Secondary.

If you configure the adapter to be locked to a specific channel or network
while in one mode, those settings will remain in effect when you switch 
modes.  For  example:

	% iwconfig eth1 mode ad-hoc channel 3 essid Flubox
	% iwconfig eth1 mode managed

The device will still be configured to only associate with the network 
'Flubox' on channel '3'.  You can reset this via:

	% iwconfig eth1 channel 0 essid any ap any

5.3.5. iwconfig frag

See iwconfig man page for general information.

The 'auto' fragmentaton mode is not supported by the driver.
You can set an explicit fragmentation threshold or turn fragmentation off.
Attempts to set the fragmentation threshold to 'auto' will return an error
from iwconfig.

5.3.6. iwconfig power

See Power Management section.

5.3.7. iwconfig txpower

See iwconfig man page for general information.

If you wish to set an upper limit on the transmit power
used by the adapter in dBm do not postfix a unit of measurement to the 
parameter.  For example:

	% iwconfig eth1 txpower 10

will set the upper limit to 10dBm.  If you provide the unit 'dBm', the 
wireless tools will erroneously convert the value as if it were provided
in watts.

See Tx Power section for more details.

5.3.8. iwconfig commit

Not needed/supported.

5.3.9. iwconfig rts

Setting the RTS threshold value is configured to match the IEEE 802.11
specification.

Setting the RTS value to:

	* 0 will use RTS for all unicast data/mgmt packets.
	* greater than the maximum MSDU (2304) will not use RTS for any 
	  unicast data/mgmt packets.
	* greater than 2347 or less than 0 will return an error.
	* all other values will result in RTS for unicast data/mgmt 
	  frames if the MPDU is greater than the RTS.

The RTS threshold defaults to 2347 (resulting in no RTS usage).

6. Support
-----------------------------------------------

For general development information and support, go to:
	
    http://ipw3945.sf.net/

Stable releases can be downloaded from:

    http://support.intel.com

For installation support on the Intel PRO/Wireless 3945ABG Network Connection
driver (stable versions) on Linux kernels 2.6.13 or later, email support is
available from:  

    http://supportmail.intel.com


7. License
-----------------------------------------------

With the exception of the file ipw3945_daemon.h, all of the files 
in this archive are licensed under the terms of version 2 of the GNU 
General Public License as published by the Free Software Foundation.

The file ipw3945_daemon.h is provided under a dual BSD/GPLv2 license.
When using or redistributing this file, you may do so under either 
license.

GPL LICENSE SUMMARY

  Copyright(c) 2005 - 2006 Intel Corporation. All rights reserved.

  This program is free software; you can redistribute it and/or modify 
  it under the terms of version 2 of the GNU General Public License as
  published by the Free Software Foundation.

  This program is distributed in the hope that it will be useful, but 
  WITHOUT ANY WARRANTY; without even the implied warranty of 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
  General Public License for more details.

  You should have received a copy of the GNU General Public License 
  along with this program; if not, write to the Free Software 
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, 
  USA

  The full GNU General Public License is included in this distribution 
  in the file called LICENSE.GPL.

  Contact Information:
  James P. Ketrenos <ipw2100-admin@linux.intel.com>
  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497

BSD LICENSE 

  Copyright(c) 2005 - 2006 Intel Corporation. All rights reserved.
  All rights reserved.

  Redistribution and use in source and binary forms, with or without 
  modification, are permitted provided that the following conditions 
  are met:

    * Redistributions of source code must retain the above copyright 
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright 
      notice, this list of conditions and the following disclaimer in 
      the documentation and/or other materials provided with the 
      distribution.
    * Neither the name of Intel Corporation nor the names of its 
      contributors may be used to endorse or promote products derived 
      from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------
Copyright (C) 2005 - 2006, Intel Corporation

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.  
EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, 
INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR 
IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING 
LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, 
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER 
INTELLECTUAL PROPERTY RIGHT. 

This document is subject to change without notice. 

* Other names and brands may be claimed as the property of others.