ieee80211(9)
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 ifnet *ifp); void ieee80211_ifdetach(struct ifnet *ifp); 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 ifnet *ifp, 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 ifnet *ifp); 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 al - so provided;
these are safe to call from any driver without prior ini - tialization.
- The ieee80211_ifattach() function attaches the network in
- terface ifp 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; The struct ifnet instance pointed to by - ifp MUST be
an instance of struct ieee80211com, with various fields ini - tialized to
tell ieee80211 about its capabilities. This function per - forms Ethernet
and BPF attachment (by calling ether_ifattach() and - bpfattach2()) on
behalf of the caller. It also implements the ifmedia inter - face.
- The ieee80211_ifdetach() function frees any ieee80211 struc
- tures associated with the driver, and performs Ethernet and BPF detach
- ment on behalf
of the caller. - The ieee80211_mhz2ieee() utility function converts the fre
- quency 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 conver - sion 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 ifp. It must - be called by
the driver after calling ieee80211_attach() and before call - ing most
ieee80211 functions. The media_change and media_stat argu - ments specify
helper functions which will be invoked by the ifmedia frame - work 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 period - ic 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 re
- quired 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 exam - ple.
- 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 re - verse of this
conversion, returning the bit rate (in 0.5Mbps units) corre - sponding 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), ifnet(9)
HISTORY
- The ieee80211 series of functions first appeared in NetBSD
- 1.5, and were
later ported to FreeBSD 4.6.
AUTHORS
- This manual page was written by Bruce M. Simpson <bms@FreeB
- SD.org> and
Darron Broad <darron@kewl.org>. - BSD March 2, 2004