Initial import of documentation for net80211 interface code.
Of particular interest here is the ieee80211_radiotap(9) man page. TODO: Flesh out ieee80211_node.9, ieee80211_proto.9. Submitted by: bms (with help from Darron Broad)
This commit is contained in:
parent
d483b7825e
commit
3f3f4cdba2
@ -450,6 +450,53 @@ MLINKS+=g_geom.9 g_destroy_geom.9 \
|
||||
MLINKS+=g_provider.9 g_destroy_provider.9 \
|
||||
g_provider.9 g_error_provider.9 \
|
||||
g_provider.9 g_new_providerf.9
|
||||
MLINKS+=ieee80211.9 ieee80211_attach.9 \
|
||||
ieee80211.9 ieee80211_chan2ieee.9 \
|
||||
ieee80211.9 ieee80211_chan2mode.9 \
|
||||
ieee80211.9 ieee80211_ieee2mhz.9 \
|
||||
ieee80211.9 ieee80211_ifattach.9 \
|
||||
ieee80211.9 ieee80211_ifdetach.9 \
|
||||
ieee80211.9 ieee80211_media2rate.9 \
|
||||
ieee80211.9 ieee80211_media_change.9 \
|
||||
ieee80211.9 ieee80211_media_init.9 \
|
||||
ieee80211.9 ieee80211_media_status.9 \
|
||||
ieee80211.9 ieee80211_mhz2ieee.9 \
|
||||
ieee80211.9 ieee80211_rate2media.9 \
|
||||
ieee80211.9 ieee80211_setmode.9 \
|
||||
ieee80211.9 ieee80211_watchdog.9
|
||||
MLINKS+=ieee80211_crypto.9 ieee80211_crypto_attach.9 \
|
||||
ieee80211_crypto.9 ieee80211_crypto_detach.9 \
|
||||
ieee80211_crypto.9 ieee80211_wep_crypt.9
|
||||
MLINKS+=ieee80211_input.9 ieee80211_decap.9 \
|
||||
ieee80211_input.9 ieee80211_input.9 \
|
||||
ieee80211_input.9 ieee80211_recv_mgmt.9
|
||||
MLINKS+=ieee80211_ioctl.9 ieee80211_cfgget.9 \
|
||||
ieee80211_ioctl.9 ieee80211_cfgset.9 \
|
||||
ieee80211_ioctl.9 ieee80211_ioctl.9 \
|
||||
MLINKS+=ieee80211_node.9 ieee80211_alloc_node.9 \
|
||||
ieee80211_node.9 ieee80211_begin_scan.9 \
|
||||
ieee80211_node.9 ieee80211_create_ibss.9 \
|
||||
ieee80211_node.9 ieee80211_dup_bss.9 \
|
||||
ieee80211_node.9 ieee80211_end_scan.9 \
|
||||
ieee80211_node.9 ieee80211_find_node.9 \
|
||||
ieee80211_node.9 ieee80211_free_allnodes.9 \
|
||||
ieee80211_node.9 ieee80211_free_node.9 \
|
||||
ieee80211_node.9 ieee80211_iterate_nodes.9 \
|
||||
ieee80211_node.9 ieee80211_lookup_node.9 \
|
||||
ieee80211_node.9 ieee80211_next_scan.9 \
|
||||
ieee80211_node.9 ieee80211_node_attach.9 \
|
||||
ieee80211_node.9 ieee80211_node_detach.9 \
|
||||
ieee80211_node.9 ieee80211_node_lateattach.9 \
|
||||
ieee80211_node.9 ieee80211_timeout_nodes.9
|
||||
MLINKS+=ieee80211_output.9 ieee80211_add_rates.9 \
|
||||
ieee80211_output.9 ieee80211_add_xrates.9 \
|
||||
ieee80211_output.9 ieee80211_encap.9 \
|
||||
ieee80211_output.9 ieee80211_send_mgmt.9
|
||||
MLINKS+=ieee80211_proto.9 ieee80211_dump_pkt.9 \
|
||||
ieee80211_proto.9 ieee80211_fix_rate.9 \
|
||||
ieee80211_proto.9 ieee80211_print_essid.9 \
|
||||
ieee80211_proto.9 ieee80211_proto_attach.9 \
|
||||
ieee80211_proto.9 ieee80211_proto_detach.9
|
||||
MLINKS+=ifnet.9 ifaddr.9 \
|
||||
ifnet.9 if_data.9 \
|
||||
ifnet.9 ifqueue.9
|
||||
|
246
share/man/man9/ieee80211.9
Normal file
246
share/man/man9/ieee80211.9
Normal file
@ -0,0 +1,246 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211.9,v 1.5 2004/03/04 12:33:27 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211
|
||||
.Nd core 802.11 network stack functions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.Ft void
|
||||
.Fn ieee80211_ifattach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_ifdetach "struct ifnet *ifp"
|
||||
.Ft u_int
|
||||
.Fn ieee80211_mhz2ieee "u_int freq" "u_int flags"
|
||||
.Ft u_int
|
||||
.Fn ieee80211_chan2ieee "struct ieee80211com *ic" "struct ieee80211_channel *c"
|
||||
.Ft u_int
|
||||
.Fn ieee80211_ieee2mhz "u_int chan" "u_int flags"
|
||||
.Fa int
|
||||
.Fn ieee80211_media_change "struct ifnet *ifp"
|
||||
.Fa void
|
||||
.Fn ieee80211_media_status "struct ifnet *ifp" "struct ifmediareq *imr"
|
||||
.Ft void
|
||||
.Fn ieee80211_watchdog "struct ifnet *ifp"
|
||||
.Ft int
|
||||
.Fn ieee80211_setmode "struct ieee80211com *ic" "enum ieee80211_phymode mode"
|
||||
.Ft enum ieee80211_phymode
|
||||
.Fn ieee80211_chan2mode "struct ieee80211com *ic" "struct ieee80211_channel *chan"
|
||||
.Ft int
|
||||
.Fn ieee80211_rate2media "struct ieee80211com *ic" "int rate" "enum ieee80211_phymode mode"
|
||||
.Ft int
|
||||
.Fn ieee80211_media2rate "int mword"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
collection of functions are used to manage wireless network interfaces in the
|
||||
system which use the system's software 802.11 network stack.
|
||||
Most of these functions require that attachment to the stack is performed
|
||||
before calling.
|
||||
Several utility functions are also provided; these are safe to call from
|
||||
any driver without prior initialization.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_ifattach
|
||||
function attaches the network interface
|
||||
.Fa ifp
|
||||
to the 802.11 network stack layer.
|
||||
This function must be called before using any of the
|
||||
.Nm
|
||||
functions which need to store driver state across invocations;
|
||||
The
|
||||
.Vt struct ifnet
|
||||
instance pointed to by
|
||||
.Fa ifp
|
||||
MUST be an instance of
|
||||
.Vt struct ieee80211com ,
|
||||
with various fields initialized to tell
|
||||
.Nm
|
||||
about its capabilities.
|
||||
This function performs Ethernet and BPF attachment (by calling
|
||||
.Fn ether_ifattach
|
||||
and
|
||||
.Fn bpfattach2 )
|
||||
on behalf of the caller.
|
||||
It also implements the
|
||||
.Vt ifmedia
|
||||
interface.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_ifdetach
|
||||
function frees any
|
||||
.Nm
|
||||
structures associated with the driver, and performs Ethernet and BPF
|
||||
detachment on behalf of the caller.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_mhz2ieee
|
||||
utility function converts the frequency
|
||||
.Fa freq
|
||||
(specified in MHz) to an IEEE 802.11 channel number.
|
||||
The
|
||||
.Fa flags
|
||||
argument is a hint which specifies whether the frequency is in
|
||||
the 2GHz ISM band (
|
||||
.Vt IEEE80211_CHAN_2GHZ )
|
||||
or the 5GHz band (
|
||||
.Vt IEEE80211_CHAN_5GHZ ) ;
|
||||
appropriate clipping of the result is then performed.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_chan2ieee
|
||||
function converts the channel specified in
|
||||
.Fa *c
|
||||
to an IEEE channel number for the driver
|
||||
.Fa ic .
|
||||
If the conversion would be invalid, an error message is printed to the
|
||||
system console.
|
||||
This function REQUIRES that the driver is hooked up to the
|
||||
.Nm
|
||||
subsystem.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_ieee2mhz
|
||||
utility function converts the IEEE channel number
|
||||
.Ft chan
|
||||
to a frequency (in MHz).
|
||||
The
|
||||
.Fa flags
|
||||
argument is a hint which specifies whether the frequency is in
|
||||
the 2GHz ISM band (
|
||||
.Vt IEEE80211_CHAN_2GHZ )
|
||||
or the 5GHz band (
|
||||
.Vt IEEE80211_CHAN_5GHZ ) ;
|
||||
appropriate clipping of the result is then performed.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_media_init
|
||||
function initializes media data structures used by the
|
||||
.Vt ifmedia
|
||||
interface, for the driver
|
||||
.Fa ifp .
|
||||
It must be called by the driver after calling
|
||||
.Fn ieee80211_attach
|
||||
and before calling most
|
||||
.Nm
|
||||
functions.
|
||||
The
|
||||
.Fa media_change
|
||||
and
|
||||
.Fa media_stat
|
||||
arguments specify helper functions which will be invoked by the
|
||||
.Vt ifmedia
|
||||
framework when the user changes or queries media options,
|
||||
using a command such as
|
||||
.Xr ifconfig 8 .
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_media_status
|
||||
and
|
||||
.Fn ieee80211_media_change
|
||||
functions are device-independent handlers for
|
||||
.Vt ifmedia
|
||||
commands and are not intended to be called directly.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_watchdog
|
||||
function is intended to be called from a driver's
|
||||
.Vt if_watchdog
|
||||
routine.
|
||||
It is used to perform periodic cleanup of state within the software 802.11
|
||||
stack, as well as timing out scans.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_setmode
|
||||
function is called from within the 802.11 stack to change the mode
|
||||
of the driver's PHY; it is not intended to be called directly.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_chan2mode
|
||||
function returns the PHY mode required for use with the channel
|
||||
.Fa chan
|
||||
on the device
|
||||
.Fa ic .
|
||||
This is typically used when selecting a rate set, to be advertised in
|
||||
beacons, for example.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_rate2media
|
||||
function converts the bit rate
|
||||
.Fa rate (
|
||||
measured in units of 0.5Mbps) to an
|
||||
.Vt ifmedia
|
||||
sub-type, for the device
|
||||
.Fa ic
|
||||
running in PHY mode
|
||||
.Fa mode .
|
||||
The
|
||||
.Fn ieee80211_media2rate
|
||||
performs the reverse of this conversion, returning the bit rate (in 0.5Mbps
|
||||
units) corresponding to an
|
||||
.Vt ifmedia
|
||||
sub-type.
|
||||
.Pp
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr ifnet 9
|
||||
.Xr ieee80211_crypto 9 ,
|
||||
.Xr ieee80211_input 9 ,
|
||||
.Xr ieee80211_ioctl 9 ,
|
||||
.Xr ieee80211_node 9 ,
|
||||
.Xr ieee80211_output 9 ,
|
||||
.Xr ieee80211_proto 9 ,
|
||||
.Xr ieee80211_radiotap 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
102
share/man/man9/ieee80211_crypto.9
Normal file
102
share/man/man9/ieee80211_crypto.9
Normal file
@ -0,0 +1,102 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_crypto.9,v 1.3 2004/03/04 10:42:56 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_crypto 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_crypto
|
||||
.Nd 802.11 WEP encryption functions
|
||||
.Sh SYNOPSIS
|
||||
.Ft void
|
||||
.Fn ieee80211_crypto_attach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_crypto_detach "struct ifnet *ifp"
|
||||
.Ft struct mbuf *
|
||||
.Fn ieee80211_wep_crypt "struct ifnet *ifp" "struct mbuf *m0" "int txflag"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
collection of functions provide software encryption support
|
||||
for 802.11 device drivers.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_crypto_attach
|
||||
function initializes crypto support for the interface
|
||||
.Fa ifp ,
|
||||
and sets the initialization vector (IV) for WEP encryption to
|
||||
a random number derived from a secure PRNG.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_crypto_detach
|
||||
function frees data structures associated with crypto support
|
||||
for the interface
|
||||
.Fa ifp .
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_wep_crypt
|
||||
function runs the appropriate WEP encryption algorithm over the 802.11
|
||||
encapsulated frame held in the mbuf chain
|
||||
.Fa m0 ,
|
||||
for transmission or reception on the interface
|
||||
.Fa ifp .
|
||||
The
|
||||
.Fa txflag
|
||||
argument specifies whether the frame is being received or transmitted.
|
||||
A value of 0 indicates that the frame is being received and should
|
||||
therefore be decrypted; a non-zero value indicates that the frame
|
||||
and should be encrypted.
|
||||
.\"
|
||||
.Sh IMPLEMENTATION NOTES
|
||||
The
|
||||
.Fn ieee80211_wep_crypt
|
||||
function stores its IV in the interface's embedded
|
||||
.Vt struct ieee80211com
|
||||
instance.
|
||||
.Sh SEE ALSO
|
||||
.Xr awi 4 ,
|
||||
.Xr wi 4 ,
|
||||
.Xr arc4random 9 ,
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
108
share/man/man9/ieee80211_input.9
Normal file
108
share/man/man9/ieee80211_input.9
Normal file
@ -0,0 +1,108 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_input.9,v 1.6 2004/03/04 12:33:27 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211
|
||||
.Nd core 802.11 network stack functions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.Ft void
|
||||
.Fn ieee80211_input "struct ifnet *ifp" "struct mbuf *m" "struct ieee80211_node *ni" "int rssi" "u_int32_t rstamp"
|
||||
.Ft struct mbuf *
|
||||
.Fn ieee80211_decap "struct ifnet *ifp" "struct mbuf *m"
|
||||
.Ft void
|
||||
.Fn ieee80211_recv_mgmt "struct ieee80211com *ic" "struct mbuf *m0" "struct ieee80211_node *ni" "int subtype" "int rssi" "u_int32_t rstamp"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
functions process received 802.11 frames.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_input
|
||||
function takes an mbuf chain
|
||||
.Fa m
|
||||
containing a complete 802.11 frame from the driver
|
||||
.Fa ifp
|
||||
and passes it to the software 802.11 stack for input processing.
|
||||
The
|
||||
.Fa ni
|
||||
argument specifies an instance of
|
||||
.Vt struct ieee80211_node
|
||||
(which may be driver-specific) representing the node from which the
|
||||
frame was received.
|
||||
The arguments
|
||||
.Fa rssi
|
||||
and
|
||||
.Fa stamp
|
||||
are typically derived from on-card data structures; they are used for
|
||||
recording the signal strength and time received of the frame respectively.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_decap
|
||||
function performs decapsulation of the 802.11 frame in the mbuf chain
|
||||
.Fa m
|
||||
received by the device
|
||||
.Fa ifp ,
|
||||
taking the form of the 802.11 address fields into account;
|
||||
the structure of 802.11 addresses vary according to the intended
|
||||
source and destination of the frame.
|
||||
It is typically called from within
|
||||
.Fn ieee80211_input .
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_recv_mgmt
|
||||
performs input processing for 802.11 management frames.
|
||||
It is typically called from within
|
||||
.Fn ieee80211_input .
|
||||
.Pp
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
||||
.Sh BUGS
|
||||
There is no netisr queue specifically for the software 802.11 stack yet.
|
100
share/man/man9/ieee80211_ioctl.9
Normal file
100
share/man/man9/ieee80211_ioctl.9
Normal file
@ -0,0 +1,100 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_ioctl.9,v 1.5 2004/03/04 12:33:27 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_ioctl 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_ioctl
|
||||
.Nd 802.11 interface ioctl commands
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.In net80211/ieee80211_ioctl.h
|
||||
.Ft int
|
||||
.Fn ieee80211_cfgget "struct ifnet *ifp" "u_long cmd" "caddr_t data"
|
||||
.Ft int
|
||||
.Fn ieee80211_cfgset "struct ifnet *ifp" "u_long cmd" "caddr_t data"
|
||||
.Ft int
|
||||
.Fn ieee80211_ioctl "struct ifnet *ifp" "u_long cmd" "caddr_t data"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
functions are typically invoked by drivers in response to requests
|
||||
for information or to change settings from the userland.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_cfgget
|
||||
and
|
||||
.Fn ieee80211_cfgset
|
||||
functions implement a legacy interface for getting and setting 802.11
|
||||
interface attributes respectively.
|
||||
The interface is compatible with the RIDs implemented by the legacy
|
||||
.Xr owi 4
|
||||
driver and used by the
|
||||
.Xr wicontrol 8
|
||||
utility.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_ioctl
|
||||
function provides a default implementation of the
|
||||
.Vt SIOCS80211
|
||||
and
|
||||
.Vt SIOCG80211
|
||||
ifioctls commands for 802.11 drivers.
|
||||
The call signature is identical to that of the
|
||||
.Vt if_ioctl
|
||||
member found in
|
||||
.Vt struct ifnet ,
|
||||
however, many drivers store attributes such as
|
||||
.Vt IEEE80211_IOC_STATIONNAME
|
||||
in the driver's private soft state structure, so driver writers may prefer
|
||||
to use this as the catch-all in a switch statement to avoid code duplication.
|
||||
.Pp
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr owi 4 ,
|
||||
.Xr ifconfig 8 ,
|
||||
.Xr wicontrol 8 ,
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
91
share/man/man9/ieee80211_node.9
Normal file
91
share/man/man9/ieee80211_node.9
Normal file
@ -0,0 +1,91 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_node.9,v 1.6 2004/03/04 12:33:27 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_node 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_node
|
||||
.Nd software 802.11 stack node management functions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.In net80211/ieee80211_node.h
|
||||
.Ft void
|
||||
.Fn ieee80211_node_attach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_node_lateattach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_node_detach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_begin_scan "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_next_scan "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_create_ibss "struct ieee80211com *ic" "struct ieee80211_channel *chan"
|
||||
.Ft void
|
||||
.Fn ieee80211_end_scan "struct ifnet *ifp"
|
||||
.Ft struct ieee80211_node *
|
||||
.Fn ieee80211_alloc_node "struct ieee80211com *ic" "u_int8_t *macaddr"
|
||||
.Ft struct ieee80211_node *
|
||||
.Fn ieee80211_dup_bss "struct ieee80211com *ic" "u_int8_t *macaddr"
|
||||
.Ft struct ieee80211_node *
|
||||
.Fn ieee80211_find_node "struct ieee80211com *ic" "u_int8_t *macaddr"
|
||||
.Ft struct ieee80211_node *
|
||||
.Fn ieee80211_lookup_node "struct ieee80211com *ic" "u_int8_t *macaddr" "struct ieee80211_channel *chan"
|
||||
.Ft void
|
||||
.Fn ieee80211_free_node "struct ieee80211com *ic" "struct ieee80211_node *ni"
|
||||
.Ft void
|
||||
.Fn ieee80211_free_allnodes "struct ieee80211com *ic"
|
||||
.Ft void
|
||||
.Fn ieee80211_timeout_nodes "struct ieee80211com *ic"
|
||||
.Ft void
|
||||
.Fn ieee80211_iterate_nodes "struct ieee80211com *ic" "ieee80211_iter_func *f" "void *arg"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
collection of functions are used to manage node lists within the software
|
||||
802.11 stack.
|
||||
These lists are typically used for implementing host-mode AP functionality,
|
||||
or providing signal quality information about neighbouring nodes.
|
||||
.Sh SEE ALSO
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
142
share/man/man9/ieee80211_output.9
Normal file
142
share/man/man9/ieee80211_output.9
Normal file
@ -0,0 +1,142 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_output.9,v 1.5 2004/03/04 12:31:18 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_output 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_output
|
||||
.Nd software 802.11 stack output functions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.Ft struct mbuf *
|
||||
.Fn ieee80211_encap "struct ifnet *ifp" "struct mbuf *m" "struct ieee80211_node **pni"
|
||||
.Ft u_int8_t *
|
||||
.Fn ieee80211_add_rates "u_int8_t *frm" "const struct ieee80211_rateset *rs"
|
||||
.Ft u_int8_t *
|
||||
.Fn ieee80211_add_xrates "u_int8_t *frm" "const struct ieee80211_rateset *rs"
|
||||
.Ft int
|
||||
.Fn ieee80211_send_mgmt "struct ieee80211com *ic" "struct ieee80211_node *ni" "int type" "int arg"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
series of functions handle the encapsulation and transmission of 802.11 frames
|
||||
within the software 802.11 stack.
|
||||
.Pp
|
||||
The
|
||||
.Fn ieee80211_encap
|
||||
function encapsulates an outbound data frame contained within the
|
||||
mbuf chain
|
||||
.Fa m
|
||||
from the interface
|
||||
.Fa ifp .
|
||||
The argument
|
||||
.Fa *pni
|
||||
is a reference to the destination node.
|
||||
.Pp
|
||||
If the function is successful, the mbuf chain is updated with the
|
||||
802.11 frame header prepended, and a pointer to the head of the chain
|
||||
is returned.
|
||||
If an error occurs, NULL will be returned, and
|
||||
.Fa *pni
|
||||
is also set to NULL.
|
||||
The caller is responsible for freeing the node reference if
|
||||
.Fa *pni
|
||||
is non-NULL on return.
|
||||
The convention is that
|
||||
.Vt ic_bss
|
||||
is not reference counted; the caller is responsible for maintaining this
|
||||
reference count.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_add_rates
|
||||
utility function is used to add the rate set element
|
||||
.Fa *rs
|
||||
to the frame
|
||||
.Fa frm .
|
||||
A pointer to the location in the buffer after the addition of the rate set
|
||||
is returned.
|
||||
It is typically used when constructing management frames from within the
|
||||
software 802.11 stack.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_add_xrates
|
||||
utility function is used to add the extended rate set element
|
||||
.Fa *rs
|
||||
to the frame
|
||||
.Fa frm .
|
||||
A pointer to the location in the buffer after the addition of the rate set
|
||||
is returned.
|
||||
It is typically used when constructing management frames from within the
|
||||
software 802.11 stack in 802.11g mode.
|
||||
.Pp
|
||||
.\"
|
||||
The
|
||||
.Fn ieee80211_send_mgmt
|
||||
function transmits a management frame on the interface
|
||||
.Fa ic
|
||||
to the destination node
|
||||
.Fa ni
|
||||
of type
|
||||
.Fa type .
|
||||
.Pp
|
||||
The argument
|
||||
.Fa arg
|
||||
specifies either a sequence number for authentication operations,
|
||||
a status code for [re]association operations,
|
||||
or a reason for deauthentication and deassociation operations.
|
||||
.Pp
|
||||
Nodes other than
|
||||
.Vt ic_bss
|
||||
have their reference count incremented to reflect their use for an
|
||||
indeterminate amount of time.
|
||||
This reference is freed when the function returns.
|
||||
.Pp
|
||||
The function returns 0 if successful; if temporary buffer space is not
|
||||
available, the function returns
|
||||
.Er ENOMEM .
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
68
share/man/man9/ieee80211_proto.9
Normal file
68
share/man/man9/ieee80211_proto.9
Normal file
@ -0,0 +1,68 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_proto.9,v 1.5 2004/03/04 12:33:27 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_proto 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_proto
|
||||
.Nd software 802.11 stack protocol helper functions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_proto.h
|
||||
.Ft void
|
||||
.Fn ieee80211_proto_attach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_proto_detach "struct ifnet *ifp"
|
||||
.Ft void
|
||||
.Fn ieee80211_print_essid "u_int8_t *essid" "int len"
|
||||
.Ft void
|
||||
.Fn ieee80211_dump_pkt "u_int8_t *buf" "int len" "int rate" "int rssi"
|
||||
.Ft int
|
||||
.Fn ieee80211_fix_rate "struct ieee80211com *ic" "struct ieee80211_node *ni" "int flags"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
functions are helper functions used throughout the software 802.11 protocol
|
||||
stack.
|
||||
.Sh SEE ALSO
|
||||
.Xr ieee80211 9 ,
|
||||
.Xr ifnet 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
series of functions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
This man page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
214
share/man/man9/ieee80211_radiotap.9
Normal file
214
share/man/man9/ieee80211_radiotap.9
Normal file
@ -0,0 +1,214 @@
|
||||
.\"
|
||||
.\" Copyright (c) 2004 Bruce M. Simpson <bms@spc.org>
|
||||
.\" Copyright (c) 2004 Darron Broad <darron@kewl.org>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" $Id: ieee80211_radiotap.9,v 1.3 2004/03/04 11:38:52 bruce Exp $
|
||||
.\"
|
||||
.Dd March 2, 2004
|
||||
.Dt ieee80211_radiotap 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm ieee80211_radiotap
|
||||
.Nd software 802.11 stack packet capture definitions
|
||||
.Sh SYNOPSIS
|
||||
.In net80211/ieee80211_var.h
|
||||
.In net80211/ieee80211_ioctl.h
|
||||
.In net80211/ieee80211_radiotap.h
|
||||
.In net/bpf.h
|
||||
.\"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
definitions provide a device-independent
|
||||
.Xr bpf 4
|
||||
attachment for the
|
||||
capture of information about 802.11 traffic which is not part of
|
||||
the 802.11 frame structure.
|
||||
.Pp
|
||||
This typically includes information such as signal quality and
|
||||
timestamps.
|
||||
This information may be used by a variety of user agents, including
|
||||
.Xr tcpdump 1 .
|
||||
It is requested by using the
|
||||
.Xr bpf 4
|
||||
data-link type
|
||||
.Vt DLT_IEEE_80211_RADIO .
|
||||
.Pp
|
||||
.\"
|
||||
Each frame using this attachment has the following header prepended to it:
|
||||
.Bd -literal -offset indent
|
||||
struct ieee80211_radiotap_header {
|
||||
u_int8_t it_version; /* set to 0 */
|
||||
u_int8_t it_pad;
|
||||
u_int16_t it_len; /* entire length */
|
||||
u_int32_t it_present; /* fields present */
|
||||
} __attribute__((__packed__));
|
||||
.Ed
|
||||
.Pp
|
||||
.\"
|
||||
A device driver implementing
|
||||
.Vt radiotap
|
||||
typically defines a packed structure embedding an instance of
|
||||
.Vt struct ieee80211_radiotap_header
|
||||
at the beginning,
|
||||
with subsequent fields in the appropriate order,
|
||||
and a macro to set the bits of the
|
||||
.Vt it_present
|
||||
bitmap to indicate which fields exist and are filled in by the driver.
|
||||
.\"
|
||||
.Pp
|
||||
Radiotap headers are copied to the userland via a separate bpf attachment.
|
||||
It is necessary for the driver to create this attachment after calling
|
||||
.Fn ieee80211_ifattach
|
||||
by calling
|
||||
.Fn bpfattach2
|
||||
with the data-link type set to
|
||||
.Vt DLT_IEEE_80211_RADIO .
|
||||
.Pp
|
||||
.\"
|
||||
When the the information is available,
|
||||
usually immediately before a link-layer transmission or after a receive,
|
||||
the driver copies it to the bpf layer using the
|
||||
.Fn bpf_mtap2
|
||||
function.
|
||||
.Pp
|
||||
.\"
|
||||
The following extension fields are defined for
|
||||
.Vt radiotap ,
|
||||
in the order in which they should appear in the buffer copied to userland:
|
||||
.Bl -tag -width ".Dv IEEE80211_RADIOTAP_DB_TX_ATTENUATION"
|
||||
.It Dv IEEE80211_RADIOTAP_TSFT
|
||||
This field contains the unsigned 64-bit value, in microseconds,
|
||||
of the MAC's 802.11 Time Synchronization Function timer,
|
||||
when the first bit of the MPDU arrived at the MAC.
|
||||
This field should be present for received frames only.
|
||||
.It Dv IEEE80211_RADIOTAP_FLAGS
|
||||
This field contains a single unsigned 8-bit value, containing a bitmap
|
||||
of flags specifying properties of the frame being transmitted or received.
|
||||
.It Dv IEEE80211_RADIOTAP_RATE
|
||||
This field contains a single unsigned 8-bit value, which is the data rate in
|
||||
use in units of 500Kbps.
|
||||
.It Dv IEEE80211_RADIOTAP_CHANNEL
|
||||
This field contains two unsigned 16-bit values.
|
||||
The first value is the frequency upon which this PDU was transmitted
|
||||
or received.
|
||||
The second value is a bitmap containing flags which specify properties of
|
||||
the channel in use.
|
||||
These are documented within the header file,
|
||||
.In net80211/ieee80211_radiotap.h .
|
||||
.It Dv IEEE80211_RADIOTAP_FHSS
|
||||
This field contains two 8-bit values.
|
||||
This field should be present for frequency-hopping radios only.
|
||||
The first byte is the hop set.
|
||||
The second byte is the pattern in use.
|
||||
.It Dv IEEE80211_RADIOTAP_DBM_ANTSIGNAL
|
||||
This field contains a single signed 8-bit value, which indicates the
|
||||
RF signal power at the antenna, in decibels difference from 1mW.
|
||||
.It Dv IEEE80211_RADIOTAP_DBM_ANTNOISE
|
||||
This field contains a single signed 8-bit value, which indicates the
|
||||
RF noise power at the antenna, in decibels difference from 1mW.
|
||||
.It Dv IEEE80211_RADIOTAP_LOCK_QUALITY
|
||||
This field contains a single unsigned 16-bit value, indicating the
|
||||
quality of the Barker Code lock.
|
||||
No unit is specified for this field.
|
||||
There does not appear to be a standard way of measuring this at this time;
|
||||
this quantity is often referred to as 'Signal Quality' in some datasheets.
|
||||
.It Dv IEEE80211_RADIOTAP_TX_ATTENUATION
|
||||
This field contains a single unsigned 16-bit value, expressing transmit
|
||||
power as unitless distance from maximum power set at factory calibration.
|
||||
0 indicates maximum transmit power.
|
||||
Monotonically nondecreasing with lower power levels.
|
||||
.It Dv IEEE80211_RADIOTAP_DB_TX_ATTENUATION
|
||||
This field contains a single unsigned 16-bit value, expressing transmit
|
||||
power as decibel distance from maximum power set at factory calibration.
|
||||
0 indicates maximum transmit power.
|
||||
Monotonically nondecreasing with lower power levels.
|
||||
.It Dv IEEE80211_RADIOTAP_DBM_TX_POWER
|
||||
Transmit power expressed as decibels from a 1mW reference.
|
||||
This field is a single signed 8-bit value.
|
||||
This is the absolute power level measured at the antenna port.
|
||||
.It Dv IEEE80211_RADIOTAP_ANTENNA
|
||||
For radios which support antenna diversity, this field contains a single
|
||||
unsigned 8-bit value specifying which antenna is being used to transmit
|
||||
or receive this frame.
|
||||
The first antenna is antenna 0.
|
||||
.It Dv IEEE80211_RADIOTAP_DB_ANTSIGNAL
|
||||
This field contains a single unsigned 8-bit value, which indicates the
|
||||
RF signal power at the antenna, in decibels difference from an
|
||||
arbitrary, fixed reference.
|
||||
.It Dv IEEE80211_RADIOTAP_DB_ANTNOISE
|
||||
This field contains a single unsigned 8-bit value, which indicates the
|
||||
RF noise power at the antenna, in decibels difference from an
|
||||
arbitrary, fixed reference.
|
||||
.It Dv IEEE80211_RADIOTAP_EXT
|
||||
This bit is reserved for any future extensions to the
|
||||
.Vt radiotap
|
||||
structure.
|
||||
It should not be used at this time.
|
||||
.El
|
||||
.Sh EXAMPLE
|
||||
Radiotap header for the Cisco Aironet driver:
|
||||
.Bd -literal -offset indent
|
||||
struct an_rx_radiotap_header {
|
||||
struct ieee80211_radiotap_header ar_ihdr;
|
||||
u_int8_t ar_flags;
|
||||
u_int8_t ar_rate;
|
||||
u_int16_t ar_chan_freq;
|
||||
u_int16_t ar_chan_flags;
|
||||
u_int8_t ar_antsignal;
|
||||
u_int8_t ar_antnoise;
|
||||
} __attribute__((__packed__));
|
||||
.Ed
|
||||
.Pp
|
||||
Bitmap indicating which fields are present in the above structure:
|
||||
.Bd -literal -offset indent
|
||||
#define AN_RX_RADIOTAP_PRESENT \\
|
||||
((1 << IEEE80211_RADIOTAP_FLAGS) | \\
|
||||
(1 << IEEE80211_RADIOTAP_RATE) | \\
|
||||
(1 << IEEE80211_RADIOTAP_CHANNEL) | \\
|
||||
(1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | \\
|
||||
(1 << IEEE80211_RADIOTAP_DBM_ANTNOISE))
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr bpf 4 ,
|
||||
.Xr ieee80211 9
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
definitions first appeared in
|
||||
.Nx 1.5 ,
|
||||
and were later ported to
|
||||
.Fx 4.6 .
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Nm
|
||||
interface was designed and implemented by
|
||||
.An David Young Aq dyoung@pobox.com .
|
||||
.Pp
|
||||
This manual page was written by
|
||||
.An Bruce M. Simpson Aq bms@FreeBSD.org
|
||||
and
|
||||
.An Darron Broad Aq darron@kewl.org .
|
Loading…
Reference in New Issue
Block a user