NAME
ieee80211_ifattach,
ieee80211_ifdetach,
ieee80211_mhz2ieee,
ieee80211_chan2ieee,
ieee80211_ieee2mhz,
ieee80211_media_init,
ieee80211_media_change,
ieee80211_media_status,
ieee80211_watchdog,
ieee80211_setmode,
ieee80211_chan2mode,
ieee80211_rate2media,
ieee80211_media2rate —
core 802.11
network stack functions
SYNOPSIS
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_proto.h>
void
ieee80211_ifattach(
struct
ieee80211com *ic);
void
ieee80211_ifdetach(
struct
ieee80211com *ic);
u_int
ieee80211_mhz2ieee(
u_int
freq,
u_int flags);
u_int
ieee80211_chan2ieee(
struct
ieee80211com *ic,
struct
ieee80211_channel *c);
u_int
ieee80211_ieee2mhz(
u_int
chan,
u_int flags);
void
ieee80211_media_init(
struct ieee80211com
*ic,
ifm_change_cb_t media_change,
ifm_stat_cb_t media_stat);
int
ieee80211_media_change(
struct
ifnet *ifp);
void
ieee80211_media_status(
struct
ifnet *ifp,
struct
ifmediareq *imr);
void
ieee80211_watchdog(
struct
ieee80211com *ic);
int
ieee80211_setmode(
struct
ieee80211com *ic,
enum
ieee80211_phymode mode);
enum ieee80211_phymode
ieee80211_chan2mode(
struct ieee80211com
*ic,
struct ieee80211_channel *chan);
int
ieee80211_rate2media(
struct ieee80211com
*ic,
int rate,
enum
ieee80211_phymode mode);
int
ieee80211_media2rate(
int
mword);
DESCRIPTION
The
ieee80211 collection of functions are used to manage
wireless network interfaces in the system which use the system's software
802.11 network stack. Most of these functions require that attachment to the
stack is performed before calling. Several utility functions are also
provided; these are safe to call from any driver without prior initialization.
The
ieee80211_ifattach() function attaches the wireless
network interface
ic to the 802.11 network stack layer.
This function must be called before using any of the
ieee80211 functions which need to store driver state across
invocations. This function also performs Ethernet and BPF attachment (by
calling
ether_ifattach() and
bpfattach2())
on behalf of the caller.
The
ieee80211_ifdetach() function frees any
ieee80211 structures associated with the driver, and
performs Ethernet and BPF detachment on behalf of the caller.
The
ieee80211_mhz2ieee() utility function converts the
frequency
freq (specified in MHz) to an IEEE 802.11
channel number. The
flags argument is a hint which
specifies whether the frequency is in the 2GHz ISM band
(
IEEE80211_CHAN_2GHZ) or the 5GHz band
(
IEEE80211_CHAN_5GHZ); appropriate clipping of the
result is then performed.
The
ieee80211_chan2ieee() function converts the channel
specified in
*c to an IEEE channel number for the driver
ic. If the conversion would be invalid, an error message
is printed to the system console. This function REQUIRES that the driver is
hooked up to the
ieee80211 subsystem.
The
ieee80211_ieee2mhz() utility function converts the IEEE
channel number
chan to a frequency (in MHz). The
flags argument is a hint which specifies whether the
frequency is in the 2GHz ISM band (
IEEE80211_CHAN_2GHZ)
or the 5GHz band (
IEEE80211_CHAN_5GHZ); appropriate
clipping of the result is then performed.
The
ieee80211_media_init() function initializes media data
structures used by the
ifmedia interface for the driver
ic. It must be called by the driver after calling
ieee80211_ifattach() and before calling most
ieee80211 functions. The
media_change
and
media_stat arguments specify helper functions which
will be invoked by the
ifmedia framework when the user
changes or queries media options, using a command such as
ifconfig(8).
The
ieee80211_media_status() and
ieee80211_media_change() functions are device-independent
handlers for
ifmedia commands and are not intended to be
called directly.
The
ieee80211_watchdog() function is intended to be called
from a driver's
if_watchdog routine. It is used to
perform periodic cleanup of state within the software 802.11 stack, as well as
timing out scans.
The
ieee80211_setmode() function is called from within the
802.11 stack to change the mode of the driver's PHY; it is not intended to be
called directly.
The
ieee80211_chan2mode() function returns the PHY mode
required for use with the channel
chan on the device
ic. This is typically used when selecting a rate set, to
be advertised in beacons, for example.
The
ieee80211_rate2media() function converts the bit rate
rate (measured in units of 0.5Mbps) to an
ifmedia sub-type, for the device
ic running in PHY mode
mode. The
ieee80211_media2rate() performs the reverse of this
conversion, returning the bit rate (in 0.5Mbps units) corresponding to an
ifmedia sub-type.
SEE ALSO
ieee80211_crypto(9),
ieee80211_input(9),
ieee80211_ioctl(9),
ieee80211_node(9),
ieee80211_output(9),
ieee80211_proto(9),
ieee80211_radiotap(9)
HISTORY
The
ieee80211 series of functions first appeared in
NetBSD 1.5, and were later ported to
FreeBSD 4.6.
AUTHORS
This man page was written by
Bruce M. Simpson
<
bms@FreeBSD.org> and
Darron Broad
<
darron@kewl.org>.