Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
IEEE80211_IFATTACH(9)  FreeBSD Kernel Developer's Manual IEEE80211_IFATTACH(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, ieee80211_rate2plcp,	ieee80211_plcp2rate -- 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,
	 const 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,
	 const struct ieee80211_channel	*chan);

     int
     ieee80211_rate2media(struct ieee80211com *ic, int rate,
	 enum ieee80211_phymode	mode);

     int
     ieee80211_media2rate(int mword);

     u_int8_t
     ieee80211_rate2plcp(u_int8_t rate,	enum ieee80211_phymode mode);

     u_int8_t
     ieee80211_plcp2rate(u_int8_t plcp,	enum ieee80211_phymode mode);

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 network interface ifp to
     the 802.11	network	stack layer.  This function must be called before us-
     ing 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 initialized to
     tell ieee80211 about its capabilities.  This function performs Ethernet
     and BPF attachment	(by calling ether_ifattach() and bpfattach()) on be-
     half of the caller.  It also implements the ifmedia interface.

     The ieee80211_ifdetach() function frees any ieee80211 structures associ-
     ated 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 func-
     tion requires that	the driver is hooked up	to the ieee80211 subsystem.

     The ieee80211_ieee2mhz() utility function converts	the IEEE channel num-
     ber 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_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 se-
     lecting 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.

     The ieee80211_rate2plcp() function	converts the bit rate rate (measured
     in	units of 0.5Mbps) to a plcp signal (in msb-first R4-R1 format).	 The
     ieee80211_plcp2rate() function performs the reverse of this conversion,
     returning the bit rate (in	0.5Mbps	units) corresponding to	a plcp signal
     (in msb-first R4-R1 format).

SEE ALSO
     ifmedia(4), ieee80211_crypto(9), ieee80211_input(9), ieee80211_ioctl(9),
     ieee80211_node(9),	ieee80211_output(9), ieee80211_proto(9),
     ieee80211_radiotap(9), rssadapt(9)

HISTORY
     The ieee80211 series of functions first appeared in NetBSD	1.5, and were
     later ported to FreeBSD 4.6 and OpenBSD 3.6.

AUTHORS
     This man page was written by Bruce	M. Simpson <bms@FreeBSD.org> and
     Darron Broad <darron@kewl.org>.

FreeBSD	13.0		       November	23, 2015		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ieee80211&sektion=9&manpath=OpenBSD+6.9>

home | help