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