summaryrefslogtreecommitdiff
path: root/static/freebsd/man9/ieee80211_regdomain.9 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man9/ieee80211_regdomain.9 3.html')
-rw-r--r--static/freebsd/man9/ieee80211_regdomain.9 3.html118
1 files changed, 0 insertions, 118 deletions
diff --git a/static/freebsd/man9/ieee80211_regdomain.9 3.html b/static/freebsd/man9/ieee80211_regdomain.9 3.html
deleted file mode 100644
index b0233133..00000000
--- a/static/freebsd/man9/ieee80211_regdomain.9 3.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">IEEE80211_REGDOMAIN(9)</td>
- <td class="head-vol">Kernel Developer's Manual</td>
- <td class="head-rtitle">IEEE80211_REGDOMAIN(9)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">ieee80211_regdomain</code> &#x2014;
- <span class="Nd">802.11 regulatory support</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="In">#include
- &lt;<a class="In">net80211/ieee80211_var.h</a>&gt;</code>
- <br/>
- <code class="In">#include
- &lt;<a class="In">net80211/ieee80211_regdomain.h</a>&gt;</code></p>
-<p class="Pp">
- <br/>
- <var class="Ft">int</var>
- <br/>
- <code class="Fn">ieee80211_init_channels</code>(<var class="Fa">struct
- ieee80211com *</var>, <var class="Fa">const struct ieee80211_regdomain
- *</var>, <var class="Fa">const uint8_t bands[]</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">ieee80211_sort_channels</code>(<var class="Fa">struct
- ieee80211_channel *</var>, <var class="Fa">int nchans</var>);</p>
-<p class="Pp"><var class="Ft">struct ieee80211_appie *</var>
- <br/>
- <code class="Fn">ieee80211_alloc_countryie</code>(<var class="Fa" style="white-space: nowrap;">struct
- ieee80211com *</var>);</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The <code class="Nm">net80211</code> software layer provides a
- support framework for drivers that includes comprehensive regulatory
- support. <code class="Nm">net80211</code> provides mechanisms that enforce
- <a class="permalink" href="#regulatory"><i class="Em" id="regulatory">regulatory
- policy</i></a> by privileged user applications.</p>
-<p class="Pp" id="ieee80211_ifattach">Drivers define a device's capabilities and
- can intercept and control regulatory changes requested through
- <code class="Nm">net80211</code>. The initial regulatory state, including
- the channel list, must be filled in by the driver before calling
- <a class="permalink" href="#ieee80211_ifattach"><code class="Fn">ieee80211_ifattach</code></a>().
- The channel list should reflect the set of channels the device is
- <a class="permalink" href="#calibrated"><i class="Em" id="calibrated">calibrated</i></a>
- for use on. This list may also be requested later through the
- <var class="Vt">ic_getradiocaps</var> method in the
- <var class="Vt">ieee80211com</var> structure. The
- <a class="permalink" href="#ieee80211_init_channels"><code class="Fn" id="ieee80211_init_channels">ieee80211_init_channels</code></a>()
- function is provided as a rudimentary fallback for drivers that do not (or
- cannot) fill in a proper channel list. Default regulatory state is supplied
- such as the regulatory SKU, ISO country code, location (e.g. indoor,
- outdoor), and a set of frequency bands the device is capable of operating
- on. <code class="Nm">net80211</code> populates the channel table in
- <var class="Vt">ic_channels</var> with a default set of channels and
- capabilities. Note this mechanism should be used with care as any mismatch
- between the channel list created and the device's capabilities can result in
- runtime errors (e.g. a request to operate on a channel the device does not
- support). The SKU and country information are used for generating 802.11h
- protocol elements and related operation such as for 802.11d; mis-setup by a
- driver is not fatal, only potentially confusing.</p>
-<p class="Pp" id="ieee80211_notify_country">Devices that do not have a
- fixed/default regulatory state can set the regulatory SKU to
- <code class="Dv">SKU_DEBUG</code> and country code to
- <code class="Dv">CTRY_DEFAULT</code> and leave proper setup to user
- applications. If default settings are known they can be installed and/or an
- event can be dispatched to user space using
- <a class="permalink" href="#ieee80211_notify_country"><code class="Fn">ieee80211_notify_country</code></a>()
- so that <a class="Xr">devd(8)</a> will do the appropriate setup work at
- system boot (or device insertion).</p>
-<p class="Pp" id="ieee80211_sort_channels">The channel table is sorted to
- optimize lookups using the
- <a class="permalink" href="#ieee80211_sort_channels"><code class="Fn">ieee80211_sort_channels</code></a>()
- routine. This should be done whenever the channel table contents are
- modified.</p>
-<p class="Pp" id="ieee80211_alloc_countryie">The
- <a class="permalink" href="#ieee80211_alloc_countryie"><code class="Fn">ieee80211_alloc_countryie</code></a>()
- function allocates an information element as specified by 802.11h. Because
- this is expensive to generate it is cached in
- <var class="Vt">ic_countryie</var> and generated only when regulatory state
- changes. Drivers that call
- <code class="Fn">ieee80211_alloc_countryie</code>() directly should not help
- with this caching; doing so may confuse the <code class="Nm">net80211</code>
- layer.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DRIVER_REGULATORY_CONTROL"><a class="permalink" href="#DRIVER_REGULATORY_CONTROL">DRIVER
- REGULATORY CONTROL</a></h1>
-<p class="Pp">Drivers can control regulatory change requests by overriding the
- <var class="Vt">ic_setregdomain</var> method that checks change requests.
- While drivers can reject any request that does not meet its requirements it
- is recommended that one be lenient in what is accepted and, whenever
- possible, instead of rejecting a request, alter it to be correct. For
- example, if the transmit power cap for a channel is too high the driver can
- either reject the request or (better) reduce the cap to be compliant.
- Requests that include unacceptable channels should cause the request to be
- rejected as otherwise a mismatch may be created between application state
- and the state managed by <code class="Nm">net80211</code>. The exact rules
- by which to operate are still being codified.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">regdomain(5)</a>, <a class="Xr">ifconfig(8)</a>,
- <a class="Xr">ieee80211(9)</a></p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">August 4, 2009</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>