Deployed ba010c01 to dev with MkDocs 1.6.1 and mike 2.2.0

This commit is contained in:
github-actions[bot]
2026-06-05 14:30:14 +00:00
parent b32fbe7d6d
commit 96021f7418
7 changed files with 1033 additions and 73 deletions
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long
+52 -52
View File
@@ -2,210 +2,210 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://kernelkit.github.io/infix/dev/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/boot/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/branding/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/bridging/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/container/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/developers-guide/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/dhcp/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/discovery/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/eth-counters/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ethernet/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/firewall/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/hardware/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/iface/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ip/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/keystore/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/lag/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/license/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/management/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/nacm/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/netboot/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/networking/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ntp/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/override-package/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/ptp/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/qos/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/routing/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-netconf/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-prod/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-restconf/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting-sysrepocfg/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/scripting/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/support/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/syslog/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/system/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/test-arch/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/testing/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/tunnels/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/upgrade/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/virtual/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vlan/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpd/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpn-wireguard/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/vpn/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/wifi/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/configure/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/introduction/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/keybindings/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/netcalc/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/quick/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/tcpdump/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/text-editor/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
<url>
<loc>https://kernelkit.github.io/infix/dev/cli/upgrade/</loc>
<lastmod>2026-05-29</lastmod>
<lastmod>2026-06-05</lastmod>
</url>
</urlset>
Binary file not shown.
+579 -15
View File
@@ -1316,6 +1316,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#bands-and-channels" class="md-nav__link">
<span class="md-ellipsis">
Bands and Channels
</span>
</a>
</li>
<li class="md-nav__item">
@@ -1468,11 +1479,150 @@
</li>
<li class="md-nav__item">
<a href="#ap-as-bridge-port" class="md-nav__link">
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#fast-roaming-between-access-points" class="md-nav__link">
<span class="md-ellipsis">
AP as Bridge Port
Fast Roaming Between Access Points
</span>
</a>
<nav class="md-nav" aria-label="Fast Roaming Between Access Points">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#80211r-fast-bss-transition" class="md-nav__link">
<span class="md-ellipsis">
802.11r - Fast BSS Transition
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#80211k-radio-resource-management" class="md-nav__link">
<span class="md-ellipsis">
802.11k - Radio Resource Management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#80211v-bss-transition-management" class="md-nav__link">
<span class="md-ellipsis">
802.11v - BSS Transition Management
</span>
</a>
<nav class="md-nav" aria-label="802.11v - BSS Transition Management">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#band-steering-mbo" class="md-nav__link">
<span class="md-ellipsis">
Band Steering (MBO)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#opportunistic-key-caching-okc" class="md-nav__link">
<span class="md-ellipsis">
Opportunistic Key Caching (OKC)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#recommended-configuration" class="md-nav__link">
<span class="md-ellipsis">
Recommended Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#80211s-mesh-point-mode" class="md-nav__link">
<span class="md-ellipsis">
802.11s Mesh Point Mode
</span>
</a>
<nav class="md-nav" aria-label="802.11s Mesh Point Mode">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#80211s-vs-easymesh" class="md-nav__link">
<span class="md-ellipsis">
802.11s vs EasyMesh
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-configuration" class="md-nav__link">
<span class="md-ellipsis">
Mesh configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-portal-bridge-integration" class="md-nav__link">
<span class="md-ellipsis">
Mesh portal (bridge integration)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-with-roaming-aps" class="md-nav__link">
<span class="md-ellipsis">
Mesh with roaming APs
</span>
</a>
@@ -2672,6 +2822,17 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#bands-and-channels" class="md-nav__link">
<span class="md-ellipsis">
Bands and Channels
</span>
</a>
</li>
<li class="md-nav__item">
@@ -2824,11 +2985,150 @@
</li>
<li class="md-nav__item">
<a href="#ap-as-bridge-port" class="md-nav__link">
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#fast-roaming-between-access-points" class="md-nav__link">
<span class="md-ellipsis">
AP as Bridge Port
Fast Roaming Between Access Points
</span>
</a>
<nav class="md-nav" aria-label="Fast Roaming Between Access Points">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#80211r-fast-bss-transition" class="md-nav__link">
<span class="md-ellipsis">
802.11r - Fast BSS Transition
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#80211k-radio-resource-management" class="md-nav__link">
<span class="md-ellipsis">
802.11k - Radio Resource Management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#80211v-bss-transition-management" class="md-nav__link">
<span class="md-ellipsis">
802.11v - BSS Transition Management
</span>
</a>
<nav class="md-nav" aria-label="802.11v - BSS Transition Management">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#band-steering-mbo" class="md-nav__link">
<span class="md-ellipsis">
Band Steering (MBO)
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#opportunistic-key-caching-okc" class="md-nav__link">
<span class="md-ellipsis">
Opportunistic Key Caching (OKC)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#recommended-configuration" class="md-nav__link">
<span class="md-ellipsis">
Recommended Configuration
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#80211s-mesh-point-mode" class="md-nav__link">
<span class="md-ellipsis">
802.11s Mesh Point Mode
</span>
</a>
<nav class="md-nav" aria-label="802.11s Mesh Point Mode">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#80211s-vs-easymesh" class="md-nav__link">
<span class="md-ellipsis">
802.11s vs EasyMesh
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-configuration" class="md-nav__link">
<span class="md-ellipsis">
Mesh configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-portal-bridge-integration" class="md-nav__link">
<span class="md-ellipsis">
Mesh portal (bridge integration)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#mesh-with-roaming-aps" class="md-nav__link">
<span class="md-ellipsis">
Mesh with roaming APs
</span>
</a>
@@ -3093,6 +3393,11 @@ admin@example:/config/hardware/component/radio0/wifi-radio/&gt; <b>leave</b>
<li><code>channel-width</code>: AP channel bandwidth. Supported values are <code>auto</code>, <code>20MHz</code>,
<code>40MHz</code>, <code>80MHz</code>, and <code>160MHz</code>. Wider channels require matching hardware,
regulatory approval, and are only available on 5GHz/6GHz where supported.</li>
<li><code>legacy-rates</code>: Allow legacy 802.11b rates (1, 2, 5.5, 11 Mbps) on 2.4GHz
(default: disabled). Slow 802.11b clients consume excessive airtime and
degrade throughput for all stations, so the rates are normally suppressed.
Enable only when old 2.4GHz-only IoT devices need them to associate. No
effect on 5GHz/6GHz.</li>
<li><code>probe-timeout</code>: Seconds to wait for PHY detection at boot (default: 0). Set
to a non-zero value (e.g., 30) for USB WiFi dongles that are slow to
initialize due to firmware loading</li>
@@ -3103,6 +3408,61 @@ admin@example:/config/hardware/component/radio0/wifi-radio/&gt; <b>leave</b>
constraints and hardware capabilities. Channel width can now be set
explicitly for AP mode, or left at <code>auto</code> to let the driver choose.</p>
</div>
<h3 id="bands-and-channels">Bands and Channels<a class="headerlink" href="#bands-and-channels" title="Permanent link"></a></h3>
<p>Each band strikes a different balance between range and capacity. The
<code>country-code</code> decides which channels are legal in your location; the
lists below are the common allocations, and your regulatory domain may
allow fewer.</p>
<p><strong>2.4 GHz</strong></p>
<p>Channels 1-13 are available in most of the world, 1-11 in the US and
Canada, and 14 in Japan (802.11b only). At 20 MHz only three channels
avoid overlap: 1, 6, and 11. A 40 MHz channel takes up most of the
band, so it is seldom worth using here.</p>
<p>Drawbacks:</p>
<ul>
<li>This is the most crowded band. It is shared with Bluetooth, Zigbee,
cordless phones, microwave ovens, and most of the neighboring Wi-Fi.</li>
<li>Narrow channels and constant contention hold real throughput well
below 5 and 6 GHz.</li>
<li>The upside is range: 2.4 GHz reaches further and passes through walls
better, which keeps it useful for distant clients and 2.4 GHz-only
IoT devices.</li>
</ul>
<p><strong>5 GHz</strong></p>
<p>UNII-1 (channels 36-48) and UNII-3 (149-165) need no radar checks.
UNII-2 (channels 52-64 and 100-144) shares spectrum with radar and
requires DFS. ETSI regions such as the EU do not include UNII-3, so the
only non-DFS 5 GHz channels there are 36-48. This band supports 20, 40,
80, and 160 MHz, so it is the one to use for wide, fast channels.</p>
<p>Drawbacks:</p>
<ul>
<li>Shorter range than 2.4 GHz, and a weaker signal through walls and
floors.</li>
<li>A DFS channel must be monitored for radar for 60 seconds (up to 10
minutes near some weather radars) before the AP may transmit, which
delays start-up. If radar appears later, the AP has to leave the
channel within 10 seconds and avoid it for 30 minutes, dropping
clients during the move.</li>
<li>The widest 80 and 160 MHz channels almost always sit on DFS spectrum,
so the same radar rules apply to them.</li>
</ul>
<p><strong>6 GHz</strong></p>
<p>The FCC regions open 59 channels (1, 5, 9 ... 233) across 5925-7125 MHz.
ETSI regions, including the EU, currently open only the lower part,
5945-6425 MHz (channels 1-93), for indoor use. Clients find networks on
the 15 Preferred Scanning Channels (5, 21, 37 ... 229) spaced every
80 MHz, and <code>auto</code> selects channel 37. There is no DFS in 6 GHz, so
there is no radar start-up delay.</p>
<p>Drawbacks:</p>
<ul>
<li>The shortest range and the weakest wall penetration of the three
bands.</li>
<li>Only Wi-Fi 6E and newer clients can use it; older phones and IoT
devices cannot see the band at all.</li>
<li>AP operation requires WPA3-Personal (SAE) with management frame
protection, so WPA2-only and open networks are rejected.</li>
<li>Indoor power limits cap coverage further.</li>
</ul>
<h3 id="wifi-6-support">WiFi 6 Support<a class="headerlink" href="#wifi-6-support" title="Permanent link"></a></h3>
<p>WiFi 6 (802.11ax) is always enabled in AP mode on all bands, providing improved
performance through features like OFDMA, BSS Coloring, and beamforming.</p>
@@ -3400,18 +3760,222 @@ radio settings, and <code>show interface</code> to see all active AP interfaces.
<p>AP and Station modes cannot be mixed on the same radio. All virtual interfaces
on a radio must be the same mode (all APs or all Stations).</p>
</div>
<h3 id="ap-as-bridge-port">AP as Bridge Port<a class="headerlink" href="#ap-as-bridge-port" title="Permanent link"></a></h3>
<p>WiFi AP interfaces can be added to bridges to integrate wireless devices
into your LAN:</p>
<h2 id="fast-roaming-between-access-points">Fast Roaming Between Access Points<a class="headerlink" href="#fast-roaming-between-access-points" title="Permanent link"></a></h2>
<p>Fast roaming enables seamless client handoff between access points through
802.11k/r/v standards. These features can be enabled individually based on
your requirements.</p>
<h3 id="80211r-fast-bss-transition">802.11r - Fast BSS Transition<a class="headerlink" href="#80211r-fast-bss-transition" title="Permanent link"></a></h3>
<p>Enable 802.11r for fast handoff (&lt;50ms) between APs with the same SSID:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r mobility-domain 4f57
</code></pre></div>
<p><strong>Requirements:</strong>
- All APs in roaming group must have <strong>identical</strong> SSID
- All APs must have <strong>identical</strong> passphrase (same keystore secret)
- All APs must use the <strong>same mobility-domain</strong> identifier</p>
<p><strong>Mobility Domain Options:</strong>
- Explicit 4-character hex value (e.g., <code>4f57</code>) - default if not specified
- <code>hash</code> - Automatically derive from SSID using MD5 (OpenWrt-compatible)</p>
<p>Using <code>hash</code> allows multiple APs with the same SSID to automatically share
the same mobility domain without manual configuration:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r mobility-domain hash
</code></pre></div>
<p>The NAS-Identifier (Network Access Server Identifier) is a string that
uniquely identifies each AP within the 802.11r mobility domain. APs
exchange this identifier during fast BSS transition so they can look up
the correct PMK-R1 key for the roaming client. It must be unique per AP
BSS and stable across reboots.</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r nas-identifier auto
</code></pre></div>
<p><code>auto</code> derives the identifier as:</p>
<p><code>&lt;interface-name&gt;-&lt;hostname&gt;.&lt;mobility-domain&gt;</code></p>
<p>Or set an explicit string:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r nas-identifier ap01.wifi0.4f57
</code></pre></div>
<h3 id="80211k-radio-resource-management">802.11k - Radio Resource Management<a class="headerlink" href="#80211k-radio-resource-management" title="Permanent link"></a></h3>
<p>Enable 802.11k for client neighbor discovery and better roaming decisions:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11k
</code></pre></div>
<p>Enables neighbor reports and beacon reports, allowing clients to discover
nearby APs before roaming.</p>
<h3 id="80211v-bss-transition-management">802.11v - BSS Transition Management<a class="headerlink" href="#80211v-bss-transition-management" title="Permanent link"></a></h3>
<p>Enable 802.11v for network-assisted roaming:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11v
</code></pre></div>
<p>Allows APs to suggest better APs to clients, improving roaming decisions.</p>
<h4 id="band-steering-mbo">Band Steering (MBO)<a class="headerlink" href="#band-steering-mbo" title="Permanent link"></a></h4>
<p>Enabling <code>dot11v</code> also turns on MBO (Multi-Band Operation), advertised in
beacons and association responses. MBO lets a dual-band client see that
the same SSID exists on another band and decide for itself when to move,
while 802.11v BSS Transition Management lets the AP suggest a better
target.</p>
<p>On top of the client-cooperative hints, the AP applies active steering:
on a 2.4 GHz access-point it suppresses probe responses to clients that
were recently seen on the same SSID on the 5/6 GHz band, nudging
dual-band clients onto the higher band. MBO is <strong>enabled by default</strong>
whenever <code>dot11v</code> is enabled:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11v
</code></pre></div>
<p>To turn it off while keeping BSS Transition Management:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11v band-steering false
</code></pre></div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Band steering only matters when the same SSID is offered on two or more
bands (one access-point per radio). On a single-band network there is
no other band to move to, so it has no effect.</p>
</div>
<h3 id="opportunistic-key-caching-okc">Opportunistic Key Caching (OKC)<a class="headerlink" href="#opportunistic-key-caching-okc" title="Permanent link"></a></h3>
<p>OKC reduces re-authentication time for roaming clients that do not
support 802.11r. The AP caches the PMK from previous associations and
shares it with other APs in the same mobility group. It is <strong>enabled by
default</strong> and only activates when both AP and client support it:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming okc false
</code></pre></div>
<h3 id="recommended-configuration">Recommended Configuration<a class="headerlink" href="#recommended-configuration" title="Permanent link"></a></h3>
<p>For optimal roaming experience, enable all three features:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11k
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11v
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r mobility-domain 4f57
</code></pre></div>
<p>Or use <code>hash</code> for automatic mobility domain derivation from SSID:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11k
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11v
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a>admin@example:/config/interface/wifi0/&gt; set wifi access-point roaming dot11r mobility-domain hash
</code></pre></div>
<p>Repeat for all APs that should participate in the roaming group.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Not all client devices support all roaming features. Modern devices typically
support 802.11k/r/v, but older devices may only support basic roaming without
fast transition.</p>
</div>
<h2 id="80211s-mesh-point-mode">802.11s Mesh Point Mode<a class="headerlink" href="#80211s-mesh-point-mode" title="Permanent link"></a></h2>
<p>IEEE 802.11s is a wireless mesh networking standard operating at Layer 2.
Mesh nodes form peer links directly with each other and route traffic
using HWMP (Hybrid Wireless Mesh Protocol), which is built into the
Linux mac80211 subsystem. There is no central controller; nodes
discover peers and find paths on their own.</p>
<p>The standard defines two node roles:</p>
<ul>
<li><strong>Mesh Point (MP)</strong> - a basic mesh node that forwards traffic within
the mesh</li>
<li><strong>Mesh Portal (MPP)</strong> - a mesh node that bridges traffic between the
mesh and an external network (e.g., a wired LAN)</li>
</ul>
<p>In practice, a node bridging the mesh interface to a LAN acts as a mesh
portal.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Not all WiFi hardware supports 802.11s mesh. The driver must implement
mesh point mode in mac80211. Check your adapter's capabilities with
<code>iw phy &lt;phy&gt; info</code> and look for "mesh point" under "Supported interface
modes".</p>
</div>
<h3 id="80211s-vs-easymesh">802.11s vs EasyMesh<a class="headerlink" href="#80211s-vs-easymesh" title="Permanent link"></a></h3>
<table>
<thead>
<tr>
<th></th>
<th><strong>802.11s</strong></th>
<th><strong>EasyMesh</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Standard</strong></td>
<td>IEEE (open, ratified)</td>
<td>Wi-Fi Alliance (certification)</td>
</tr>
<tr>
<td><strong>Topology</strong></td>
<td>Peer-to-peer, any-to-any</td>
<td>Controller-based tree</td>
</tr>
<tr>
<td><strong>Single point of failure</strong></td>
<td>None</td>
<td>Controller</td>
</tr>
<tr>
<td><strong>Multi-hop</strong></td>
<td>True N-hop</td>
<td>Limited (1-2 hops)</td>
</tr>
<tr>
<td><strong>Vendor lock-in</strong></td>
<td>None</td>
<td>Common</td>
</tr>
<tr>
<td><strong>Linux support</strong></td>
<td>Kernel-native (mac80211)</td>
<td>Requires proprietary firmware</td>
</tr>
</tbody>
</table>
<p>Infix uses 802.11s because it runs entirely in the kernel with no
proprietary components.</p>
<h3 id="mesh-configuration">Mesh configuration<a class="headerlink" href="#mesh-configuration" title="Permanent link"></a></h3>
<p>A mesh point requires the radio to have <code>band</code>, <code>channel</code>, and a valid
<code>country-code</code> configured. Mesh and AP modes cannot coexist on the same
radio.</p>
<p><strong>Step 1: Configure the radio</strong></p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface br0</b>
admin@example:/config/interface/br0/&gt; <b>set type bridge</b>
admin@example:/config/&gt; <b>edit interface wifi0</b>
admin@example:/config/interface/wifi0/&gt; <b>set bridge-port bridge br0</b>
admin@example:/config/interface/wifi0/&gt; <b>leave</b>
admin@example:/config/&gt; <b>edit hardware component radio1 wifi-radio</b>
admin@example:/config/hardware/component/radio1/wifi-radio/&gt; <b>set country-code DE</b>
admin@example:/config/hardware/component/radio1/wifi-radio/&gt; <b>set band 5GHz</b>
admin@example:/config/hardware/component/radio1/wifi-radio/&gt; <b>set channel 36</b>
admin@example:/config/hardware/component/radio1/wifi-radio/&gt; <b>leave</b>
</code></pre>
<p><strong>Step 2: Create keystore entry for mesh security</strong></p>
<p>All mesh links use WPA3-SAE encryption. All nodes in the same mesh
network must share the same passphrase:</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit keystore symmetric-key mesh-secret</b>
admin@example:/config/keystore/…/mesh-secret/&gt; <b>set key-format passphrase-key-format</b>
admin@example:/config/keystore/…/mesh-secret/&gt; <b>change cleartext-symmetric-key</b>
Passphrase: ************
Retype passphrase: ************
admin@example:/config/keystore/…/mesh-secret/&gt; <b>end</b>
</code></pre>
<p><strong>Step 3: Configure the mesh interface</strong></p>
<pre class="cli"><code>admin@example:/config/&gt; <b>edit interface wifi-mesh</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>set type wifi</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>set wifi radio radio1</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>set wifi mesh-point mesh-id my-mesh</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>set wifi mesh-point security secret mesh-secret</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>leave</b>
</code></pre>
<p><strong>Mesh parameters:</strong></p>
<ul>
<li><code>mesh-id</code>: Network identifier, 1-32 characters. All nodes in the mesh
must use the same mesh ID</li>
<li><code>forwarding</code>: L2 mesh forwarding (default: true). When enabled, the
interface can be added to a bridge as a mesh portal</li>
<li><code>security secret</code>: Keystore reference for the WPA3-SAE passphrase</li>
</ul>
<h3 id="mesh-portal-bridge-integration">Mesh portal (bridge integration)<a class="headerlink" href="#mesh-portal-bridge-integration" title="Permanent link"></a></h3>
<p>To connect the wireless mesh to a wired LAN, add the mesh interface to
a bridge:</p>
<pre class="cli"><code>admin@example:/config/&gt; <b>edit interface wifi-mesh</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>set bridge-port bridge br0</b>
admin@example:/config/interface/wifi-mesh/&gt; <b>leave</b>
</code></pre>
<h3 id="mesh-with-roaming-aps">Mesh with roaming APs<a class="headerlink" href="#mesh-with-roaming-aps" title="Permanent link"></a></h3>
<p>You can combine 802.11s mesh backhaul with roaming-enabled access
points. Each node has a mesh interface for backhaul on one radio and
AP interfaces for clients on another:</p>
<p><a class="glightbox" data-type="image" data-width="100%" data-height="auto" href="../img/wifi-mesh-roaming.svg" data-desc-position="bottom"><img alt="802.11s mesh backhaul with roaming-enabled access points" src="../img/wifi-mesh-roaming.svg"></a></p>
<p>With 802.11r/k/v roaming enabled on the APs (same SSID, same
passphrase, same mobility domain), clients hand off between nodes while
the mesh carries backhaul traffic.</p>
<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link"></a></h2>
<p>Use <code>show interface wifi0</code> to verify signal strength and connection status.
If issues arise, try the following troubleshooting steps:</p>
+1 -1
View File
@@ -1 +1 @@
26.05
dev
+4 -4
View File
@@ -2,14 +2,14 @@
{
"version": "dev",
"title": "dev",
"aliases": []
"aliases": [
"latest"
]
},
{
"version": "26.05",
"title": "26.05",
"aliases": [
"latest"
]
"aliases": []
},
{
"version": "26.04",