diff options
Diffstat (limited to 'static/freebsd/man9/ieee80211_regdomain.9 3.html')
| -rw-r--r-- | static/freebsd/man9/ieee80211_regdomain.9 3.html | 118 |
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> — - <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 - <<a class="In">net80211/ieee80211_var.h</a>></code> - <br/> - <code class="In">#include - <<a class="In">net80211/ieee80211_regdomain.h</a>></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> |
