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