xref: /dflybsd-src/share/man/man9/ieee80211_output.9 (revision 1102a27e1141baf846d4f8ced2aecee4870b4260)
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.\"
27ff66a890SHiten Pandya.\" $FreeBSD$
28*1102a27eSSascha Wildner.\" $DragonFly: src/share/man/man9/ieee80211_output.9,v 1.4 2006/06/28 19:41:59 swildner Exp $
29ff66a890SHiten Pandya.\" $Id: ieee80211_output.9,v 1.2 2004/07/07 12:59:39 ru Exp $
30ff66a890SHiten Pandya.\"
31*1102a27eSSascha Wildner.Dd June 28, 2006
32ff66a890SHiten Pandya.Dt IEEE80211_OUTPUT 9
33ff66a890SHiten Pandya.Os
34ff66a890SHiten Pandya.Sh NAME
35d0de9052SSascha Wildner.Nm ieee80211_encap ,
36*1102a27eSSascha Wildner.Nm ieee80211_send_mgmt,
37*1102a27eSSascha Wildner.Nm ieee80211_add_ssid ,
38d0de9052SSascha Wildner.Nm ieee80211_add_rates ,
39*1102a27eSSascha Wildner.Nm ieee80211_add_xrates
40ff66a890SHiten Pandya.Nd software 802.11 stack output functions
41ff66a890SHiten Pandya.Sh SYNOPSIS
4244cb301eSSascha Wildner.In netproto/802_11/ieee80211_var.h
4344cb301eSSascha Wildner.In netproto/802_11/ieee80211_proto.h
44ff66a890SHiten Pandya.Ft struct mbuf *
45ff66a890SHiten Pandya.Fo ieee80211_encap
46*1102a27eSSascha Wildner.Fa "struct ieee80211com *ic" "struct mbuf *m" "struct ieee80211_node *ni"
47ff66a890SHiten Pandya.Fc
48ff66a890SHiten Pandya.Ft int
49ff66a890SHiten Pandya.Fo ieee80211_send_mgmt
50ff66a890SHiten Pandya.Fa "struct ieee80211com *ic" "struct ieee80211_node *ni" "int type" "int arg"
51ff66a890SHiten Pandya.Fc
52*1102a27eSSascha Wildner.Ft uint8_t *
53*1102a27eSSascha Wildner.Fn ieee80211_add_ssid "uint8_t *frm" "const uint8_t *ssid" "int ssid_len"
54*1102a27eSSascha Wildner.Ft uint8_t *
55*1102a27eSSascha Wildner.Fn ieee80211_add_rates "uint8_t *frm" "const struct ieee80211_rateset *rs"
56*1102a27eSSascha Wildner.Ft uint8_t *
57*1102a27eSSascha Wildner.Fn ieee80211_add_xrates "uint8_t *frm" "const struct ieee80211_rateset *rs"
58ff66a890SHiten Pandya.Sh DESCRIPTION
59ff66a890SHiten PandyaThese functions handle the encapsulation and transmission of 802.11 frames
60ff66a890SHiten Pandyawithin the software 802.11 stack.
61ff66a890SHiten Pandya.Pp
62ff66a890SHiten PandyaThe
63ff66a890SHiten Pandya.Fn ieee80211_encap
64ff66a890SHiten Pandyafunction encapsulates an outbound data frame contained within the
65ff66a890SHiten Pandyambuf chain
66ff66a890SHiten Pandya.Fa m
67ff66a890SHiten Pandyafrom the interface
68*1102a27eSSascha Wildner.Fa ic .
69ff66a890SHiten PandyaThe argument
70*1102a27eSSascha Wildner.Fa ni
71ff66a890SHiten Pandyais a reference to the destination node.
72ff66a890SHiten Pandya.Pp
73ff66a890SHiten Pandya.\"
74ff66a890SHiten PandyaThe
75ff66a890SHiten Pandya.Fn ieee80211_send_mgmt
76ff66a890SHiten Pandyafunction transmits a management frame on the interface
77ff66a890SHiten Pandya.Fa ic
78ff66a890SHiten Pandyato the destination node
79ff66a890SHiten Pandya.Fa ni
80ff66a890SHiten Pandyaof type
81ff66a890SHiten Pandya.Fa type .
82*1102a27eSSascha WildnerThe node entry
83*1102a27eSSascha Wildner.Fa ni
84*1102a27eSSascha Wildnermust not be
85*1102a27eSSascha Wildner.Dv NULL
86*1102a27eSSascha Wildnerand is typically the non-NULL return value of
87*1102a27eSSascha Wildner.Xr ieee80211_find_txnode 9 .
88*1102a27eSSascha WildnerThis function is typically called through
89*1102a27eSSascha Wildner.Fn IEEE80211_SEND_MGMT ,
90*1102a27eSSascha Wildnerwhich is a wrapper for the invocation of
91*1102a27eSSascha Wildner.Va ic_send_mgmt .
92ff66a890SHiten Pandya.Pp
93ff66a890SHiten PandyaThe argument
94ff66a890SHiten Pandya.Fa arg
95ff66a890SHiten Pandyaspecifies either a sequence number for authentication operations,
96*1102a27eSSascha Wildnera status code for (re)association operations,
97ff66a890SHiten Pandyaor a reason for deauthentication and deassociation operations.
98ff66a890SHiten Pandya.Pp
99*1102a27eSSascha WildnerThe destination node
100*1102a27eSSascha Wildner.Fa ni
101*1102a27eSSascha Wildnerwill have its reference count incremented to reflect its use for an
102ff66a890SHiten Pandyaindeterminate amount of time.
103*1102a27eSSascha WildnerThis reference is freed either in
104*1102a27eSSascha Wildner.Va if_start
105*1102a27eSSascha Wildneror,
106*1102a27eSSascha Wildnerduring the interrupt service routine for transmission completing
107*1102a27eSSascha Wildnerif certain transmission rate control algorithms are used.
108ff66a890SHiten Pandya.Pp
109*1102a27eSSascha Wildner.\"
110*1102a27eSSascha WildnerThe
111*1102a27eSSascha Wildner.Fn ieee80211_add_ssid
112*1102a27eSSascha Wildnerutility function is used to add the service set ID element
113*1102a27eSSascha Wildner.Fa ssid
114*1102a27eSSascha Wildnerto the frame
115*1102a27eSSascha Wildner.Fa frm .
116*1102a27eSSascha WildnerThe
117*1102a27eSSascha Wildner.Fa ssid_len
118*1102a27eSSascha Wildnerargument indicates the length of the
119*1102a27eSSascha Wildner.Fa ssid
120*1102a27eSSascha Wildnerto be added.
121*1102a27eSSascha Wildner.Pp
122*1102a27eSSascha Wildner.\"
123*1102a27eSSascha WildnerThe
124*1102a27eSSascha Wildner.Fn ieee80211_add_rates
125*1102a27eSSascha Wildnerutility function is used to add the rate set element
126*1102a27eSSascha Wildner.Fa rs
127*1102a27eSSascha Wildnerto the frame
128*1102a27eSSascha Wildner.Fa frm .
129*1102a27eSSascha Wildner.Pp
130*1102a27eSSascha Wildner.\"
131*1102a27eSSascha WildnerThe
132*1102a27eSSascha Wildner.Fn ieee80211_add_xrates
133*1102a27eSSascha Wildnerutility function is used to add the extended rate set element
134*1102a27eSSascha Wildner.Fa rs
135*1102a27eSSascha Wildnerto the frame
136*1102a27eSSascha Wildner.Fa frm .
137*1102a27eSSascha Wildner.Pp
138*1102a27eSSascha Wildner.\"
139*1102a27eSSascha WildnerThe functions
140*1102a27eSSascha Wildner.Fn ieee80211_add_ssid ,
141*1102a27eSSascha Wildner.Fn ieee80211_add_rate
142*1102a27eSSascha Wildnerand
143*1102a27eSSascha Wildner.Fn ieee80211_add_xrate
144*1102a27eSSascha Wildnerare typically used when constructing management frames from within the
145*1102a27eSSascha Wildnersoftware 802.11 stack in 802.11g mode.
146*1102a27eSSascha Wildner.Pp
147*1102a27eSSascha Wildner.\"
148*1102a27eSSascha Wildner.Sh RETURN VALUES
149*1102a27eSSascha WildnerIf the function
150*1102a27eSSascha Wildner.Fn ieee80211_encap
151*1102a27eSSascha Wildneris successful,
152*1102a27eSSascha Wildnerthe mbuf chain
153*1102a27eSSascha Wildner.Fa m
154*1102a27eSSascha Wildneris updated with the 802.11 frame header prepended,
155*1102a27eSSascha Wildnerand a pointer to the head of the updated mbuf chain is returned.
156*1102a27eSSascha WildnerIf an error occurs,
157*1102a27eSSascha Wildner.Dv NULL
158*1102a27eSSascha Wildnerwill be returned,
159*1102a27eSSascha Wildnerand
160*1102a27eSSascha Wildner.Fa m
161*1102a27eSSascha Wildnerwill be freed.
162*1102a27eSSascha Wildner.Pp
163*1102a27eSSascha Wildner.\"
164*1102a27eSSascha WildnerThe function
165*1102a27eSSascha Wildner.Fn ieee80211_send_mgmt
166*1102a27eSSascha Wildnerreturns 0 if successful;
167*1102a27eSSascha Wildnerif temporary buffer space is not available,
168*1102a27eSSascha Wildnerit returns
169ff66a890SHiten Pandya.Er ENOMEM .
170*1102a27eSSascha Wildner.Pp
171*1102a27eSSascha Wildner.\"
172*1102a27eSSascha WildnerThe functions
173*1102a27eSSascha Wildner.Fn ieee80211_add_ssid ,
174*1102a27eSSascha Wildner.Fn ieee80211_add_rate
175*1102a27eSSascha Wildnerand
176*1102a27eSSascha Wildner.Fn ieee80211_add_xrate
177*1102a27eSSascha Wildnerreturn a pointer to the location in the
178*1102a27eSSascha Wildner.Fa frm
179*1102a27eSSascha Wildnerafter the addition of the second argument.
180ff66a890SHiten Pandya.\"
181ff66a890SHiten Pandya.Sh SEE ALSO
182ff66a890SHiten Pandya.Xr ieee80211 9 ,
183ff66a890SHiten Pandya.Xr ifnet 9
184ff66a890SHiten Pandya.Sh HISTORY
185ff66a890SHiten PandyaThe
186ff66a890SHiten Pandya.Nm ieee80211
187ff66a890SHiten Pandyaseries of functions first appeared in
188ff66a890SHiten Pandya.Nx 1.5 ,
189ff66a890SHiten Pandyaand were later ported to
190ff66a890SHiten Pandya.Fx 4.6 .
191ff66a890SHiten Pandya.Sh AUTHORS
192ff66a890SHiten Pandya.An -nosplit
193ff66a890SHiten PandyaThis man page was written by
194ff66a890SHiten Pandya.An Bruce M. Simpson Aq bms@FreeBSD.org
195ff66a890SHiten Pandyaand
196ff66a890SHiten Pandya.An Darron Broad Aq darron@kewl.org .
197