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
currently 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 unsupported, 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 support 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,
generally 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
. Currently,
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 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.
-
-
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 setting 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.