ieee80211 —
standard interface to IEEE 802.11 devices
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, andIEEE80211_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, andIEEE80211_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, andIEEE80211_POWERSAVE_PSP_CAM. Currently,IEEE80211_POWERSAVE_ONis defined to be equal toIEEE80211_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 EINVALor 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 EINVALor 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.
Theieee80211 manual appeared in
  FreeBSD 4.3.