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
)
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
(Vt IEEE80211_CHAN_2GHZ)
or the 5GHz band
(Vt 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
(Vt IEEE80211_CHAN_2GHZ)
or the 5GHz band
(Vt IEEE80211_CHAN_5GHZ);
appropriate clipping of the result is then performed.
The
ieee80211_media_init()
function initializes media data structures used by the
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
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
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
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
sub-type.
This man page was written by Bruce M. Simpson <bms@FreeBSD.org> and Darron Broad <darron@kewl.org>.