IEEE80211(4)            NetBSD Kernel Interfaces Manual           IEEE80211(4)

NAME
     ieee80211 -- standard interface to IEEE 802.11 devices

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <net/if.h>
     #include <net/ethernet.h>
     #include <net/if_ieee80211.h>

DESCRIPTION
     This section describes the standard interface to configuration and status
     information on IEEE 802.11 devices.  Most devices support options not
     configurable by this interface.  They must be set by their respective,
     specific control program.  The interface is via one of the following
     ioctl(2) calls on a socket:

     SIOCG80211  Get configuration or status information.

     SIOCS80211  Set configuration information.

     These requests are made via a modified ifreq structure.  This structure
     is defined as follows:

     struct ieee80211req {
             char            i_name[IFNAMSIZ];       /* if_name, e.g. "wi0" */
             uint16_t        i_type;                 /* req type */
             int16_t         i_val;                  /* Index or simple value */
             int16_t         i_len;                  /* Index or simple value */
             void            *i_data;                /* Extra data */
     };

     For SIOCG80211 the following values of i_type are valid:

     IEEE80211_IOC_SSID
             Returns the requested SSID by copying it into the buffer pointed
             to by i_data and setting i_len to the length.  If i_val is >= 0
             then the request refers to the configured value for that slot.
             Generally, 0 is the only valid value, but some interfaces support
             more SSIDs.  If i_val is -1 then the request refers to the cur-
             rently active value.

     IEEE80211_IOC_NUMSSIDS
             Returns the number of SSIDs this card supports.  In most cases,
             this is 1, but some devices such as an(4) support more.

     IEEE80211_IOC_WEP
             Returns the current WEP status in i_val.  Valid values are
             IEEE80211_WEP_NOSUP, IEEE80211_WEP_ON, IEEE80211_WEP_OFF, and
             IEEE80211_WEP_MIXED.  Respectively, these values mean unsup-
             ported, mandatory for all devices, off, and on, but not required
             for all devices.

     IEEE80211_IOC_WEPKEY
             Returns the requested WEP key via i_data and its length via
             i_len.  If the device does not support returning the WEP key or
             the user is not root then the key may be returned as all zeros.
             Technically this is a valid key, but it is the kind of key an
             idiot would put on his luggage so we use it as a special value.
             Generally, only four WEP keys are allowed, but some devices sup-
             port more.  If so, the first four (0-3) are the standard keys
             stored in volatile storage and the others are device specific.

     IEEE80211_IOC_NUMWEPKEYS
             Returns the number of WEP keys supported by this device, gener-
             ally 4.  A device that does not support WEP may either report 0
             or simply return EINVAL.

     IEEE80211_IOC_WEPTXKEY
             Returns the WEP key used for transmission.

     IEEE80211_IOC_AUTHMODE
             Returns the current authentication mode in i_val.  Valid values
             are IEEE80211_AUTH_NONE, IEEE80211_AUTH_OPEN, and
             IEEE80211_AUTH_SHARED.

     IEEE80211_IOC_STATIONNAME
             Returns the station name via i_data and its length via i_len.
             While all known devices seem to support this in some way or
             another, they all do it differently and it appears to not have
             anything to do with the actual IEEE 802.11 standard so making up
             an answer may be necessary for future devices.

     IEEE80211_IOC_CHANNEL
             Returns the current direct sequence spread spectrum channel in
             use.

     IEEE80211_IOC_POWERSAVE
             Returns the current powersaving mode.  Valid values are
             IEEE80211_POWERSAVE_NOSUP, IEEE80211_POWERSAVE_OFF,
             IEEE80211_POWERSAVE_ON, IEEE80211_POWERSAVE_CAM,
             IEEE80211_POWERSAVE_PSP, and IEEE80211_POWERSAVE_PSP_CAM.  Cur-
             rently, IEEE80211_POWERSAVE_ON is defined to be equal to
             IEEE80211_POWERSAVE_CAM, but this may be incorrect.

     IEEE80211_IOC_POWERSAVESLEEP
             Returns the powersave sleep time in msec in i_val.

     For SIOCS80211 the following values of i_type are valid:

     IEEE80211_IOC_SSID
             Set the desired SSID for infrastructure and ad-hoc modes to value
             given by i_data and i_len.  The length should be no longer than
             32 characters.

     IEEE80211_IOC_WEP
             Set the current WEP mode to the value given in i_val.  Valid val-
             ues are the same as those for this value above.  Devices which do
             not support all modes may choose to either return EINVAL or
             choose a reasonable alternate (supported) setting.

     IEEE80211_IOC_WEPKEY
             Set the WEP key indicated by i_val to the value given by i_data
             and i_len.  Generally, valid values of i_len are 0, 5, and 13
             though not all devices with WEP support have support for 13-byte
             keys.

     IEEE80211_IOC_WEPTXKEY
             Set the WEP key used for transmission to the value in i_val.  Not
             all values which are valid for setting keys may be valid for set-
             ting transmit keys due to strange device interfaces.

     IEEE80211_IOC_AUTHMODE
             Set the current authorization mode to the value given in i_val.
             Valid values are given above.  Not all devices support this.

     IEEE80211_IOC_STATIONNAME
             Set the station name to the value given by i_data and i_len.  The
             standard does not appear to deal with this feature so the range
             of valid values may vary from device to device.

     IEEE80211_IOC_CHANNEL
             Set the desired ad-hoc channel to the value given by i_val.  On
             some devices this has an impact on infrastructure mode as well.
             Valid values are 1-14, but 0 should be allowed and should return
             the device to the default value.  May devices support this
             directly by converting any invalid value to the default value.

     IEEE80211_IOC_POWERSAVE
             Set the current powersaving mode to the value given in i_val.
             Valid values are the same as those for this value above.  Devices
             which do not support all modes may choose to either return EINVAL
             or choose a reasonable alternate (supported) setting.  Most
             devices only support CAM mode.

     IEEE80211_IOC_POWERSAVESLEEP
             Set the powersave sleep time in msec to the value in i_val.

SEE ALSO
     ioctl(2), an(4), ray(4), wi(4), ifconfig(8)

HISTORY
     The ieee80211 manual appeared in FreeBSD 4.3.

NetBSD 5.0_STABLE              February 23, 2001             NetBSD 5.0_STABLE
