Add the ieee80211(9) API manual pages.
[dragonfly.git] / share / man / man9 / ieee80211_input.9
1 .\"
2 .\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
3 .\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
4 .\" All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\"
15 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 .\" SUCH DAMAGE.
26 .\"
27 .\" $FreeBSD$
28 .\" $DragonFly: src/share/man/man9/ieee80211_input.9,v 1.1 2004/07/27 14:50:56 hmp Exp $
29 .\" $Id: ieee80211_input.9,v 1.2 2004/07/07 12:59:39 ru Exp $
30 .\"
31 .Dd March 2, 2004
32 .Dt IEEE80211_INPUT 9
33 .Os
34 .Sh NAME
35 .Nm ieee80211_input , ieee80211_decap , ieee80211_recv_mgmt
36 .Nd software 802.11 stack input functions
37 .Sh SYNOPSIS
38 .In net80211/ieee80211_var.h
39 .In net80211/ieee80211_proto.h
40 .Ft void
41 .Fo ieee80211_input
42 .Fa "struct ifnet *ifp" "struct mbuf *m" "struct ieee80211_node *ni"
43 .Fa "int rssi" "u_int32_t rstamp"
44 .Fc
45 .Ft struct mbuf *
46 .Fn ieee80211_decap "struct ifnet *ifp" "struct mbuf *m"
47 .Ft void
48 .Fo ieee80211_recv_mgmt
49 .Fa "struct ieee80211com *ic" "struct mbuf *m0" "struct ieee80211_node *ni"
50 .Fa "int subtype" "int rssi" "u_int32_t rstamp"
51 .Fc
52 .Sh DESCRIPTION
53 These
54 functions process received 802.11 frames.
55 .Pp
56 .\"
57 The
58 .Fn ieee80211_input
59 function takes an mbuf chain
60 .Fa m
61 containing a complete 802.11 frame from the driver
62 .Fa ifp
63 and passes it to the software 802.11 stack for input processing.
64 The
65 .Fa ni
66 argument specifies an instance of
67 .Vt struct ieee80211_node
68 (which may be driver-specific) representing the node from which the
69 frame was received.
70 The arguments
71 .Fa rssi
72 and
73 .Fa stamp
74 are typically derived from on-card data structures; they are used for
75 recording the signal strength and time received of the frame respectively.
76 .Pp
77 .\"
78 The
79 .Fn ieee80211_decap
80 function performs decapsulation of the 802.11 frame in the mbuf chain
81 .Fa m
82 received by the device
83 .Fa ifp ,
84 taking the form of the 802.11 address fields into account;
85 the structure of 802.11 addresses vary according to the intended
86 source and destination of the frame.
87 It is typically called from within
88 .Fn ieee80211_input .
89 .Pp
90 .\"
91 The
92 .Fn ieee80211_recv_mgmt
93 performs input processing for 802.11 management frames.
94 It is typically called from within
95 .Fn ieee80211_input .
96 .\"
97 .Sh SEE ALSO
98 .Xr ieee80211 9 ,
99 .Xr ifnet 9
100 .Sh HISTORY
101 The
102 .Nm ieee80211
103 series of functions first appeared in
104 .Nx 1.5 ,
105 and were later ported to
106 .Fx 4.6 .
107 .Sh AUTHORS
108 .An -nosplit
109 This man page was written by
110 .An Bruce M. Simpson Aq bms@FreeBSD.org
111 and
112 .An Darron Broad Aq darron@kewl.org .
113 .Sh BUGS
114 There is no netisr queue specifically for the software 802.11 stack yet.