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