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

FreeBSD Manual Pages


home | help
IEEE80211_INPUT(9)     FreeBSD Kernel Developer's Manual    IEEE80211_INPUT(9)

     ieee80211_input --	software 802.11	stack input functions

     #include <net80211/ieee80211_var.h>

     ieee80211_input(struct ieee80211_node *, struct mbuf *, int rssi,
	 int noise);

     ieee80211_input_all(struct	ieee80211com *,	struct mbuf *, int rssi,
	 int noise);

     The net80211 layer	that supports 802.11 device drivers requires that re-
     ceive processing be single-threaded.  Typically this is done using	a ded-
     icated driver taskqueue(9)	thread.	 ieee80211_input() and
     ieee80211_input_all() process received 802.11 frames and are designed for
     use in that context; e.g. no driver locks may be held.

     The frame passed up in the	mbuf must have the 802.11 protocol header at
     the front;	all device-specific information	and/or PLCP must be removed.
     Any CRC must be stripped from the end of the frame.  The 802.11 protocol
     header should be 32-bit aligned for optimal performance but receive pro-
     cessing does not require it.  If the frame	holds a	payload	and that is
     not aligned to a 32-bit boundary then the payload will be re-aligned so
     that it is	suitable for processing	by protocols such as ip(4).

     If	a device (such as ath(4)) inserts padding after	the 802.11 header to
     align the payload to a 32-bit boundary the	IEEE80211_C_DATAPAD capability
     must be set.  Otherwise header and	payload	are assumed contiguous in the
     mbuf chain.

     If	a received frame must pass through the A-MPDU receive reorder buffer
     then the mbuf must	be marked with the M_AMPDU flag.  Note that for	the
     moment this is required of	all frames received from a station and TID
     where a Block ACK stream is active, not just A-MPDU aggregates.  It is
     sufficient	to check for IEEE80211_NODE_HT in the ni_flags of the sta-
     tion's node table entry, any frames that do not require reorder process-
     ing will be dispatched with only minimal overhead.

     The rssi parameter	is the Receive Signal Strength Indication of the frame
     measured in 0.5dBm	units relative to the noise floor.  The	noise parame-
     ter is the	best approximation of the noise	floor in dBm units at the time
     the frame was received.  RSSI and noise are used by the net80211 layer to
     make scanning and roaming decisions in station mode and to	do auto	chan-
     nel selection for hostap and similar modes.  Otherwise the	values are
     made available to user applications (with the rssi	presented as a fil-
     tered average over	the last ten values and	the noise floor	the last re-
     ported value).


FreeBSD	13.0			August 4, 2009			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help