xref: /dflybsd-src/share/man/man9/ieee80211_input.9 (revision e4c06619483849b6d1d179ae56da763ed720062d)
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*e4c06619SSascha Wildner.\" $FreeBSD: head/share/man/man9/ieee80211_input.9 233648 2012-03-29 05:02:12Z eadler $
28ff66a890SHiten Pandya.\"
2905ac2d0dSSascha Wildner.Dd April 28, 2010
30ff66a890SHiten Pandya.Dt IEEE80211_INPUT 9
31ff66a890SHiten Pandya.Os
32ff66a890SHiten Pandya.Sh NAME
3305ac2d0dSSascha Wildner.Nm ieee80211_input
34ff66a890SHiten Pandya.Nd software 802.11 stack input functions
35ff66a890SHiten Pandya.Sh SYNOPSIS
367d9c9280SSascha Wildner.In net/if.h
377d9c9280SSascha Wildner.In net/if_media.h
38737edb20SSascha Wildner.In netproto/802_11/ieee80211_var.h
39ff66a890SHiten Pandya.Ft void
40ff66a890SHiten Pandya.Fo ieee80211_input
4105ac2d0dSSascha Wildner.Fa "struct ieee80211_node *"
4205ac2d0dSSascha Wildner.Fa "struct mbuf *"
4305ac2d0dSSascha Wildner.Fa "int rssi"
4405ac2d0dSSascha Wildner.Fa "int noise"
45ff66a890SHiten Pandya.Fc
46ff66a890SHiten Pandya.Ft void
4705ac2d0dSSascha Wildner.Fo ieee80211_input_all
4805ac2d0dSSascha Wildner.Fa "struct ieee80211com *"
4905ac2d0dSSascha Wildner.Fa "struct mbuf *"
5005ac2d0dSSascha Wildner.Fa "int rssi"
5105ac2d0dSSascha Wildner.Fa "int noise"
52ff66a890SHiten Pandya.Fc
53ff66a890SHiten Pandya.Sh DESCRIPTION
54ff66a890SHiten PandyaThe
5505ac2d0dSSascha Wildner.Nm net80211
5605ac2d0dSSascha Wildnerlayer that supports 802.11 device drivers requires that
5705ac2d0dSSascha Wildnerreceive processing be single-threaded.
5805ac2d0dSSascha WildnerTypically this is done using a dedicated driver
5905ac2d0dSSascha Wildner.Xr taskqueue 9
6005ac2d0dSSascha Wildnerthread.
61ff66a890SHiten Pandya.Fn ieee80211_input
62ff66a890SHiten Pandyaand
6305ac2d0dSSascha Wildner.Fn ieee80211_input_all
6405ac2d0dSSascha Wildnerprocess received 802.11 frames and are designed
6505ac2d0dSSascha Wildnerfor use in that context; e.g. no driver locks may be held.
66ff66a890SHiten Pandya.Pp
6705ac2d0dSSascha WildnerThe frame passed up in the
6805ac2d0dSSascha Wildner.Vt mbuf
6905ac2d0dSSascha Wildnermust have the 802.11 protocol header at the front; all device-specific
7005ac2d0dSSascha Wildnerinformation and/or PLCP must be removed.
7105ac2d0dSSascha WildnerAny CRC must be stripped from the end of the frame.
7205ac2d0dSSascha WildnerThe 802.11 protocol header should be 32-bit aligned for
7305ac2d0dSSascha Wildneroptimal performance but receive processing does not require it.
7405ac2d0dSSascha WildnerIf the frame holds a payload and that is not aligned to a 32-bit
7505ac2d0dSSascha Wildnerboundary then the payload will be re-aligned so that it is suitable
7605ac2d0dSSascha Wildnerfor processing by protocols such as
7705ac2d0dSSascha Wildner.Xr ip 4 .
7805ac2d0dSSascha Wildner.Pp
7905ac2d0dSSascha WildnerIf a device (such as
8005ac2d0dSSascha Wildner.Xr ath 4 )
8105ac2d0dSSascha Wildnerinserts padding after the 802.11 header to align
8205ac2d0dSSascha Wildnerthe payload to a 32-bit boundary the
8305ac2d0dSSascha Wildner.Dv IEEE80211_C_DATAPAD
8405ac2d0dSSascha Wildnercapability must be set.
8505ac2d0dSSascha WildnerOtherwise header and payload are assumed contiguous in the mbuf chain.
8605ac2d0dSSascha Wildner.Pp
8705ac2d0dSSascha WildnerIf a received frame must pass
8805ac2d0dSSascha Wildnerthrough the A-MPDU receive reorder buffer then the mbuf
8905ac2d0dSSascha Wildnermust be marked with the
9005ac2d0dSSascha Wildner.Dv M_AMPDU
9105ac2d0dSSascha Wildnerflag.
9205ac2d0dSSascha WildnerNote that for the moment this is required of all frames received from
9305ac2d0dSSascha Wildnera station and TID where a Block ACK stream is active, not just A-MPDU
9405ac2d0dSSascha Wildneraggregates.
9505ac2d0dSSascha WildnerIt is sufficient to check for
9605ac2d0dSSascha Wildner.Dv IEEE80211_NODE_HT
9705ac2d0dSSascha Wildnerin the
9805ac2d0dSSascha Wildner.Vt ni_flags
9905ac2d0dSSascha Wildnerof the station's node table entry, any frames that do not require reorder
10005ac2d0dSSascha Wildnerprocessing will be dispatched with only minimal overhead.
10105ac2d0dSSascha Wildner.Pp
102ff66a890SHiten PandyaThe
10305ac2d0dSSascha Wildner.Vt rssi
10405ac2d0dSSascha Wildnerparameter is the Receive Signal Strength Indication of the frame
10505ac2d0dSSascha Wildnermeasured in 0.5dBm units relative to the noise floor.
10605ac2d0dSSascha WildnerThe
10705ac2d0dSSascha Wildner.Vt noise
10805ac2d0dSSascha Wildnerparameter is the best approximation of the noise floor in
10905ac2d0dSSascha WildnerdBm units at the time the frame was received.
11005ac2d0dSSascha WildnerRSSI and noise are used by the
11105ac2d0dSSascha Wildner.Nm net80211
11205ac2d0dSSascha Wildnerlayer to make scanning and roaming decisions in station mode
11305ac2d0dSSascha Wildnerand to do auto channel selection for hostap and similar modes.
11405ac2d0dSSascha WildnerOtherwise the values are made available to user applications
11505ac2d0dSSascha Wildner(with the rssi presented as a filtered average over the last ten values
11605ac2d0dSSascha Wildnerand the noise floor the last reported value).
117ff66a890SHiten Pandya.Sh SEE ALSO
11805ac2d0dSSascha Wildner.Xr ieee80211 9
119