xref: /dflybsd-src/share/man/man9/ieee80211_input.9 (revision 05ac2d0d30be792e7f2f4ef6d7bd5c57f08ffc8d)
1ff66a890SHiten Pandya.\"
2ff66a890SHiten Pandya.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
3ff66a890SHiten Pandya.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
4ff66a890SHiten Pandya.\" All rights reserved.
5ff66a890SHiten Pandya.\"
6ff66a890SHiten Pandya.\" Redistribution and use in source and binary forms, with or without
7ff66a890SHiten Pandya.\" modification, are permitted provided that the following conditions
8ff66a890SHiten Pandya.\" are met:
9ff66a890SHiten Pandya.\" 1. Redistributions of source code must retain the above copyright
10ff66a890SHiten Pandya.\"    notice, this list of conditions and the following disclaimer.
11ff66a890SHiten Pandya.\" 2. Redistributions in binary form must reproduce the above copyright
12ff66a890SHiten Pandya.\"    notice, this list of conditions and the following disclaimer in the
13ff66a890SHiten Pandya.\"    documentation and/or other materials provided with the distribution.
14ff66a890SHiten Pandya.\"
15ff66a890SHiten Pandya.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16ff66a890SHiten Pandya.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17ff66a890SHiten Pandya.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18ff66a890SHiten Pandya.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19ff66a890SHiten Pandya.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20ff66a890SHiten Pandya.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21ff66a890SHiten Pandya.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22ff66a890SHiten Pandya.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23ff66a890SHiten Pandya.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24ff66a890SHiten Pandya.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25ff66a890SHiten Pandya.\" SUCH DAMAGE.
26ff66a890SHiten Pandya.\"
27*05ac2d0dSSascha Wildner.\" $FreeBSD: src/share/man/man9/ieee80211_input.9,v 1.5 2009/09/18 00:33:47 brueffer Exp $
28ff66a890SHiten Pandya.\"
29*05ac2d0dSSascha Wildner.Dd April 28, 2010
30ff66a890SHiten Pandya.Dt IEEE80211_INPUT 9
31ff66a890SHiten Pandya.Os
32ff66a890SHiten Pandya.Sh NAME
33*05ac2d0dSSascha Wildner.Nm ieee80211_input
34ff66a890SHiten Pandya.Nd software 802.11 stack input functions
35ff66a890SHiten Pandya.Sh SYNOPSIS
36*05ac2d0dSSascha Wildner.In net80211/ieee80211_var.h
37ff66a890SHiten Pandya.Ft void
38ff66a890SHiten Pandya.Fo ieee80211_input
39*05ac2d0dSSascha Wildner.Fa "struct ieee80211_node *"
40*05ac2d0dSSascha Wildner.Fa "struct mbuf *"
41*05ac2d0dSSascha Wildner.Fa "int rssi"
42*05ac2d0dSSascha Wildner.Fa "int noise"
43ff66a890SHiten Pandya.Fc
44ff66a890SHiten Pandya.Ft void
45*05ac2d0dSSascha Wildner.Fo ieee80211_input_all
46*05ac2d0dSSascha Wildner.Fa "struct ieee80211com *"
47*05ac2d0dSSascha Wildner.Fa "struct mbuf *"
48*05ac2d0dSSascha Wildner.Fa "int rssi"
49*05ac2d0dSSascha Wildner.Fa "int noise"
50ff66a890SHiten Pandya.Fc
51ff66a890SHiten Pandya.Sh DESCRIPTION
52ff66a890SHiten PandyaThe
53*05ac2d0dSSascha Wildner.Nm net80211
54*05ac2d0dSSascha Wildnerlayer that supports 802.11 device drivers requires that
55*05ac2d0dSSascha Wildnerreceive processing be single-threaded.
56*05ac2d0dSSascha WildnerTypically this is done using a dedicated driver
57*05ac2d0dSSascha Wildner.Xr taskqueue 9
58*05ac2d0dSSascha Wildnerthread.
59ff66a890SHiten Pandya.Fn ieee80211_input
60ff66a890SHiten Pandyaand
61*05ac2d0dSSascha Wildner.Fn ieee80211_input_all
62*05ac2d0dSSascha Wildnerprocess received 802.11 frames and are designed
63*05ac2d0dSSascha Wildnerfor use in that context; e.g. no driver locks may be held.
64ff66a890SHiten Pandya.Pp
65*05ac2d0dSSascha WildnerThe frame passed up in the
66*05ac2d0dSSascha Wildner.Vt mbuf
67*05ac2d0dSSascha Wildnermust have the 802.11 protocol header at the front; all device-specific
68*05ac2d0dSSascha Wildnerinformation and/or PLCP must be removed.
69*05ac2d0dSSascha WildnerAny CRC must be stripped from the end of the frame.
70*05ac2d0dSSascha WildnerThe 802.11 protocol header should be 32-bit aligned for
71*05ac2d0dSSascha Wildneroptimal performance but receive processing does not require it.
72*05ac2d0dSSascha WildnerIf the frame holds a payload and that is not aligned to a 32-bit
73*05ac2d0dSSascha Wildnerboundary then the payload will be re-aligned so that it is suitable
74*05ac2d0dSSascha Wildnerfor processing by protocols such as
75*05ac2d0dSSascha Wildner.Xr ip 4 .
76*05ac2d0dSSascha Wildner.Pp
77*05ac2d0dSSascha WildnerIf a device (such as
78*05ac2d0dSSascha Wildner.Xr ath 4 )
79*05ac2d0dSSascha Wildnerinserts padding after the 802.11 header to align
80*05ac2d0dSSascha Wildnerthe payload to a 32-bit boundary the
81*05ac2d0dSSascha Wildner.Dv IEEE80211_C_DATAPAD
82*05ac2d0dSSascha Wildnercapability must be set.
83*05ac2d0dSSascha WildnerOtherwise header and payload are assumed contiguous in the mbuf chain.
84*05ac2d0dSSascha Wildner.Pp
85*05ac2d0dSSascha WildnerIf a received frame must pass
86*05ac2d0dSSascha Wildnerthrough the A-MPDU receive reorder buffer then the mbuf
87*05ac2d0dSSascha Wildnermust be marked with the
88*05ac2d0dSSascha Wildner.Dv M_AMPDU
89*05ac2d0dSSascha Wildnerflag.
90*05ac2d0dSSascha WildnerNote that for the moment this is required of all frames received from
91*05ac2d0dSSascha Wildnera station and TID where a Block ACK stream is active, not just A-MPDU
92*05ac2d0dSSascha Wildneraggregates.
93*05ac2d0dSSascha WildnerIt is sufficient to check for
94*05ac2d0dSSascha Wildner.Dv IEEE80211_NODE_HT
95*05ac2d0dSSascha Wildnerin the
96*05ac2d0dSSascha Wildner.Vt ni_flags
97*05ac2d0dSSascha Wildnerof the station's node table entry, any frames that do not require reorder
98*05ac2d0dSSascha Wildnerprocessing will be dispatched with only minimal overhead.
99*05ac2d0dSSascha Wildner.Pp
100ff66a890SHiten PandyaThe
101*05ac2d0dSSascha Wildner.Vt rssi
102*05ac2d0dSSascha Wildnerparameter is the Receive Signal Strength Indication of the frame
103*05ac2d0dSSascha Wildnermeasured in 0.5dBm units relative to the noise floor.
104*05ac2d0dSSascha WildnerThe
105*05ac2d0dSSascha Wildner.Vt noise
106*05ac2d0dSSascha Wildnerparameter is the best approximation of the noise floor in
107*05ac2d0dSSascha WildnerdBm units at the time the frame was received.
108*05ac2d0dSSascha WildnerRSSI and noise are used by the
109*05ac2d0dSSascha Wildner.Nm net80211
110*05ac2d0dSSascha Wildnerlayer to make scanning and roaming decisions in station mode
111*05ac2d0dSSascha Wildnerand to do auto channel selection for hostap and similar modes.
112*05ac2d0dSSascha WildnerOtherwise the values are made available to user applications
113*05ac2d0dSSascha Wildner(with the rssi presented as a filtered average over the last ten values
114*05ac2d0dSSascha Wildnerand the noise floor the last reported value).
115ff66a890SHiten Pandya.Sh SEE ALSO
116*05ac2d0dSSascha Wildner.Xr ieee80211 9
117