Deleted Added
full compact
ieee80211.9 (211397) ieee80211.9 (233648)
1.\"
2.\" Copyright (c) 2009 Sam Leffler, Errno Consulting
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
1.\"
2.\" Copyright (c) 2009 Sam Leffler, Errno Consulting
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.\" $FreeBSD: head/share/man/man9/ieee80211.9 211397 2010-08-16 15:18:30Z joel $
26.\" $FreeBSD: head/share/man/man9/ieee80211.9 233648 2012-03-29 05:02:12Z eadler $
27.\"
28.Dd April 28, 2010
29.Dt IEEE80211 9
30.Os
31.Sh NAME
27.\"
28.Dd April 28, 2010
29.Dt IEEE80211 9
30.Os
31.Sh NAME
32.Nm IEEE80211
32.Nm IEEE80211
33.Nd 802.11 network layer
34.Sh SYNOPSIS
35.In net80211/ieee80211_var.h
36.Ft void
37.Fn ieee80211_ifattach "struct ieee80211com *ic" "const uint8_t macaddr[IEEE80211_ADDR_LEN]"
38.Ft void
39.Fn ieee80211_ifdetach "struct ieee80211com *ic"
40.Sh DESCRIPTION

--- 118 unchanged lines hidden (view full) ---

159Backpointer to the physical device's ifnet.
160.It Dv ic_caps
161Device/driver capabilities; see below for a complete description.
162.It Dv ic_channels
163Table of channels the device is capable of operating on.
164This is initially provided by the driver but may be changed
165through calls that change the regulatory state.
166.It Dv ic_nchan
33.Nd 802.11 network layer
34.Sh SYNOPSIS
35.In net80211/ieee80211_var.h
36.Ft void
37.Fn ieee80211_ifattach "struct ieee80211com *ic" "const uint8_t macaddr[IEEE80211_ADDR_LEN]"
38.Ft void
39.Fn ieee80211_ifdetach "struct ieee80211com *ic"
40.Sh DESCRIPTION

--- 118 unchanged lines hidden (view full) ---

159Backpointer to the physical device's ifnet.
160.It Dv ic_caps
161Device/driver capabilities; see below for a complete description.
162.It Dv ic_channels
163Table of channels the device is capable of operating on.
164This is initially provided by the driver but may be changed
165through calls that change the regulatory state.
166.It Dv ic_nchan
167Number of entries in
167Number of entries in
168.Dv ic_channels .
169.El
170.Pp
171On return from
172.Fn ieee80211_ifattach
173the driver is expected to override default callback functions in the
174.Vt ieee80211com
175structure to register it's private routines.

--- 40 unchanged lines hidden (view full) ---

216The default method prints a console message.
217.It Dv ic_newassoc
218Update driver/device state for association to a new AP (in station mode)
219or when a new station associates (e.g. in AP mode).
220There is no default method; the pointer may be NULL in which case
221it will not be used.
222.It Dv ic_node_alloc
223Allocate and initialize a
168.Dv ic_channels .
169.El
170.Pp
171On return from
172.Fn ieee80211_ifattach
173the driver is expected to override default callback functions in the
174.Vt ieee80211com
175structure to register it's private routines.

--- 40 unchanged lines hidden (view full) ---

216The default method prints a console message.
217.It Dv ic_newassoc
218Update driver/device state for association to a new AP (in station mode)
219or when a new station associates (e.g. in AP mode).
220There is no default method; the pointer may be NULL in which case
221it will not be used.
222.It Dv ic_node_alloc
223Allocate and initialize a
224.Vt ieee80211_node
224.Vt ieee80211_node
225structure.
226This method cannot sleep.
227The default method allocates zero'd memory using
228.Xr malloc 9 .
229Drivers should override this method to allocate extended storage
230for their own needs.
231Memory allocated by the driver must be tagged with
232.Dv M_80211_NODE
233to balance the memory allocation statistics.
234.It Dv ic_node_free
225structure.
226This method cannot sleep.
227The default method allocates zero'd memory using
228.Xr malloc 9 .
229Drivers should override this method to allocate extended storage
230for their own needs.
231Memory allocated by the driver must be tagged with
232.Dv M_80211_NODE
233to balance the memory allocation statistics.
234.It Dv ic_node_free
235Reclaim storage of a node allocated by
235Reclaim storage of a node allocated by
236.Dv ic_node_alloc .
237Drivers are expected to
238.Em interpose
239their own method to cleanup private state but must call through
240this method to allow
241.Nm
242to reclaim it's private state.
243.It Dv ic_node_cleanup

--- 53 unchanged lines hidden (view full) ---

297This callback is done in a sleepable context.
298.It Dv ic_scan_curchan
299Start scanning on a channel.
300This method is called immediately after each channel change
301and must initiate the work to scan a channel and schedule a timer
302to advance to the next channel in the scan list.
303This callback is done in a sleepable context.
304The default method handles active scan work (e.g. sending ProbeRequest
236.Dv ic_node_alloc .
237Drivers are expected to
238.Em interpose
239their own method to cleanup private state but must call through
240this method to allow
241.Nm
242to reclaim it's private state.
243.It Dv ic_node_cleanup

--- 53 unchanged lines hidden (view full) ---

297This callback is done in a sleepable context.
298.It Dv ic_scan_curchan
299Start scanning on a channel.
300This method is called immediately after each channel change
301and must initiate the work to scan a channel and schedule a timer
302to advance to the next channel in the scan list.
303This callback is done in a sleepable context.
304The default method handles active scan work (e.g. sending ProbeRequest
305frames), and schedules a call to
305frames), and schedules a call to
306.Xr ieee80211_scan_next 9
307according to the maximum dwell time for the channel.
308Drivers that off-load scan work to firmware typically use this method
309to trigger per-channel scan activity.
310.It Dv ic_scan_mindwell
311Handle reaching the minimum dwell time on a channel when scanning.
312This event is triggered when one or more stations have been found on
313a channel and the minimum dwell time has been reached.

--- 35 unchanged lines hidden (view full) ---

349Process a response to a transmitted BAR control frame.
350.It Dv ic_ampdu_rx_start
351Prepare to receive A-MPDU data from the specified station for the TID.
352.It Dv ic_ampdu_rx_stop
353Terminate receipt of A-MPDU data from the specified station for the TID.
354.El
355.Pp
356Once the
306.Xr ieee80211_scan_next 9
307according to the maximum dwell time for the channel.
308Drivers that off-load scan work to firmware typically use this method
309to trigger per-channel scan activity.
310.It Dv ic_scan_mindwell
311Handle reaching the minimum dwell time on a channel when scanning.
312This event is triggered when one or more stations have been found on
313a channel and the minimum dwell time has been reached.

--- 35 unchanged lines hidden (view full) ---

349Process a response to a transmitted BAR control frame.
350.It Dv ic_ampdu_rx_start
351Prepare to receive A-MPDU data from the specified station for the TID.
352.It Dv ic_ampdu_rx_stop
353Terminate receipt of A-MPDU data from the specified station for the TID.
354.El
355.Pp
356Once the
357.Nm
357.Nm
358layer is attached to a driver there are two more steps typically done
359to complete the work:
360.Bl -enum
361.It
362Setup
363.Dq radiotap support
364for capturing raw 802.11 packets that pass through the device.
365This is done with a call to

--- 34 unchanged lines hidden (view full) ---

400and
401.Vt iv_htcaps .
402The following general capabilities are defined:
403.Bl -tag -width IEEE80211_C_8023ENCAP
404.It Dv IEEE80211_C_STA
405Device is capable of operating in station (aka Infrastructure) mode.
406.It Dv IEEE80211_C_8023ENCAP
407Device requires 802.3-encapsulated frames be passed for transmit.
358layer is attached to a driver there are two more steps typically done
359to complete the work:
360.Bl -enum
361.It
362Setup
363.Dq radiotap support
364for capturing raw 802.11 packets that pass through the device.
365This is done with a call to

--- 34 unchanged lines hidden (view full) ---

400and
401.Vt iv_htcaps .
402The following general capabilities are defined:
403.Bl -tag -width IEEE80211_C_8023ENCAP
404.It Dv IEEE80211_C_STA
405Device is capable of operating in station (aka Infrastructure) mode.
406.It Dv IEEE80211_C_8023ENCAP
407Device requires 802.3-encapsulated frames be passed for transmit.
408By default
408By default
409.Nm
410will encapsulate all outbound frames as 802.11 frames (without a PLCP header).
411.It Dv IEEE80211_C_FF
412Device supports Atheros Fast-Frames.
413.It Dv IEEE80211_C_TURBOP
414Device supports Atheros Dynamic Turbo mode.
415.It Dv IEEE80211_C_IBSS
416Device is capable of operating in adhoc/IBSS mode.

--- 107 unchanged lines hidden (view full) ---

524Device supports PSMP.
525.It Dv IEEE80211_HTCAP_40INTOLERANT
526Device is intolerant of 40MHz wide channel use.
527.It Dv IEEE80211_HTCAP_LSIGTXOPPROT
528Device supports L-SIG TXOP protection.
529.It Dv IEEE80211_HTC_AMPDU
530Device supports A-MPDU aggregation.
531Note that any 802.11n compliant device must support A-MPDU receive
409.Nm
410will encapsulate all outbound frames as 802.11 frames (without a PLCP header).
411.It Dv IEEE80211_C_FF
412Device supports Atheros Fast-Frames.
413.It Dv IEEE80211_C_TURBOP
414Device supports Atheros Dynamic Turbo mode.
415.It Dv IEEE80211_C_IBSS
416Device is capable of operating in adhoc/IBSS mode.

--- 107 unchanged lines hidden (view full) ---

524Device supports PSMP.
525.It Dv IEEE80211_HTCAP_40INTOLERANT
526Device is intolerant of 40MHz wide channel use.
527.It Dv IEEE80211_HTCAP_LSIGTXOPPROT
528Device supports L-SIG TXOP protection.
529.It Dv IEEE80211_HTC_AMPDU
530Device supports A-MPDU aggregation.
531Note that any 802.11n compliant device must support A-MPDU receive
532so this implicitly means support for
532so this implicitly means support for
533.Em transmit
534of A-MPDU frames.
535.It Dv IEEE80211_HTC_AMSDU
536Device supports A-MSDU aggregation.
537Note that any 802.11n compliant device must support A-MSDU receive
533.Em transmit
534of A-MPDU frames.
535.It Dv IEEE80211_HTC_AMSDU
536Device supports A-MSDU aggregation.
537Note that any 802.11n compliant device must support A-MSDU receive
538so this implicitly means support for
538so this implicitly means support for
539.Em transmit
540of A-MSDU frames.
539.Em transmit
540of A-MSDU frames.
541.It Dv IEEE80211_HTC_HT
541.It Dv IEEE80211_HTC_HT
542Device supports High Throughput (HT) operation.
543This capability must be set to enable 802.11n functionality
544in
545.Nm .
546.It Dv IEEE80211_HTC_SMPS
547Device supports MIMO Power Save operation.
548.It Dv IEEE80211_HTC_RIFS
549Device supports Reduced Inter Frame Spacing (RIFS).

--- 19 unchanged lines hidden ---
542Device supports High Throughput (HT) operation.
543This capability must be set to enable 802.11n functionality
544in
545.Nm .
546.It Dv IEEE80211_HTC_SMPS
547Device supports MIMO Power Save operation.
548.It Dv IEEE80211_HTC_RIFS
549Device supports Reduced Inter Frame Spacing (RIFS).

--- 19 unchanged lines hidden ---