Deployed 1012759a to dev with MkDocs 1.6.1 and mike 2.2.0

This commit is contained in:
github-actions[bot]
2026-05-27 21:40:59 +00:00
parent e0d7d1f6b4
commit d8a3e99101
56 changed files with 4879 additions and 619 deletions
+303 -146
View File
@@ -13,7 +13,7 @@
<link rel="prev" href="../lag/">
<link rel="next" href="../ip/">
<link rel="next" href="../vlan/">
@@ -654,6 +654,8 @@
@@ -875,17 +877,6 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item">
<a href="#vlan-interfaces" class="md-nav__link">
<span class="md-ellipsis">
VLAN Interfaces
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#physical-ethernet-interfaces" class="md-nav__link">
<span class="md-ellipsis">
@@ -910,14 +901,42 @@
</li>
<li class="md-nav__item">
<a href="#configuring-fixed-speed-and-duplex" class="md-nav__link">
<a href="#restricting-advertised-link-modes" class="md-nav__link">
<span class="md-ellipsis">
Configuring fixed speed and duplex
Restricting advertised link modes
</span>
</a>
<nav class="md-nav" aria-label="Restricting advertised link modes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#duplex-and-advertised-modes" class="md-nav__link">
<span class="md-ellipsis">
Duplex and advertised modes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#disabling-auto-negotiation" class="md-nav__link">
<span class="md-ellipsis">
Disabling auto-negotiation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -962,6 +981,34 @@
<li class="md-nav__item">
<a href="../vlan/" class="md-nav__link">
<span class="md-ellipsis">
VLAN Interfaces
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../ip/" class="md-nav__link">
@@ -1145,10 +1192,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_12">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_13">
<label class="md-nav__link" for="__nav_4_12" id="__nav_4_12_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_13" id="__nav_4_13_label" tabindex="0">
@@ -1166,8 +1213,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_12">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_13">
<span class="md-nav__icon md-icon"></span>
@@ -2333,17 +2380,6 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix="">
<li class="md-nav__item">
<a href="#vlan-interfaces" class="md-nav__link">
<span class="md-ellipsis">
VLAN Interfaces
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#physical-ethernet-interfaces" class="md-nav__link">
<span class="md-ellipsis">
@@ -2368,14 +2404,42 @@
</li>
<li class="md-nav__item">
<a href="#configuring-fixed-speed-and-duplex" class="md-nav__link">
<a href="#restricting-advertised-link-modes" class="md-nav__link">
<span class="md-ellipsis">
Configuring fixed speed and duplex
Restricting advertised link modes
</span>
</a>
<nav class="md-nav" aria-label="Restricting advertised link modes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#duplex-and-advertised-modes" class="md-nav__link">
<span class="md-ellipsis">
Duplex and advertised modes
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#disabling-auto-negotiation" class="md-nav__link">
<span class="md-ellipsis">
Disabling auto-negotiation
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -2474,148 +2538,241 @@
<h1 id="ethernet-interfaces">Ethernet Interfaces<a class="headerlink" href="#ethernet-interfaces" title="Permanent link"></a></h1>
<p>This document covers VLAN interfaces, physical Ethernet interfaces,
and virtual Ethernet (VETH) pairs.</p>
<h2 id="vlan-interfaces">VLAN Interfaces<a class="headerlink" href="#vlan-interfaces" title="Permanent link"></a></h2>
<p>Creating a VLAN can be done in many ways. This section assumes VLAN
interfaces created atop another Linux interface. E.g., the VLAN
interfaces created on top of the Ethernet interface or bridge in the
picture below.</p>
<p><a class="glightbox" data-type="image" data-width="100%" data-height="auto" href="../img/interface-vlan-variants.svg" data-desc-position="bottom"><img alt="VLAN interface on top of Ethernet or Bridge interfaces" src="../img/interface-vlan-variants.svg"></a></p>
<p>A VLAN interface is basically a filtering abstraction. When you run
<code>tcpdump</code> on a VLAN interface you will only see the frames matching the
VLAN ID of the interface, compared to <em>all</em> the VLAN IDs if you run
<code>tcpdump</code> on the lower-layer interface.</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface eth0.20</b>
admin@example:/config/interface/eth0.20/&gt; <b>show</b>
type vlan;
vlan {
tag-type c-vlan;
id 20;
lower-layer-if eth0;
}
admin@example:/config/interface/eth0.20/&gt; <b>leave</b>
</code></pre>
<p>The example below assumes bridge br0 is already created, see <a href="../bridging/#vlan-filtering-bridge">VLAN
Filtering Bridge</a>.</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface vlan10</b>
admin@example:/config/interface/vlan10/&gt; <b>set vlan id 10</b>
admin@example:/config/interface/vlan10/&gt; <b>set vlan lower-layer-if br0</b>
admin@example:/config/interface/vlan10/&gt; <b>leave</b>
</code></pre>
<p>As conventions, a VLAN interface for VID 20 on top of an Ethernet
interface <em>eth0</em> is named <em>eth0.20</em>, and a VLAN interface for VID 10 on
top of a bridge interface <em>br0</em> is named <em>vlan10</em>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you name your VLAN interface <code>foo0.N</code> or <code>vlanN</code>, where <code>N</code> is a
number, the CLI infers the interface type automatically.</p>
</div>
<p>This document covers physical Ethernet interfaces and virtual Ethernet
(VETH) pairs. For VLAN interfaces stacked on top of an Ethernet port
or bridge, see <a href="../vlan/">VLAN Interfaces</a>.</p>
<h2 id="physical-ethernet-interfaces">Physical Ethernet Interfaces<a class="headerlink" href="#physical-ethernet-interfaces" title="Permanent link"></a></h2>
<h3 id="ethernet-settings-and-status">Ethernet Settings and Status<a class="headerlink" href="#ethernet-settings-and-status" title="Permanent link"></a></h3>
<p>Physical Ethernet interfaces provide low-level settings for speed/duplex as
well as packet status and <a href="#ethernet-statistics">statistics</a>.</p>
<p>By default, Ethernet interfaces defaults to auto-negotiating
speed/duplex modes, advertising all speed and duplex modes available.
In the example below, the switch would by default auto-negotiate speed
1 Gbit/s on port eth1 and 100 Mbit/s on port eth4, as those are the
highest speeds supported by H1 and H2 respectively.</p>
<p>By default, Ethernet interfaces defaults to auto-negotiating speed/duplex
modes, advertising all speed and duplex modes available. In the example
below, the switch would by default auto-negotiate speed 1 Gbps on port eth1
and 100 Mbps on port eth4, as those are the highest speeds supported by H1 and
H2 respectively.</p>
<p><a class="glightbox" data-type="image" data-width="100%" data-height="auto" href="../img/ethernet-autoneg.svg" data-desc-position="bottom"><img alt="4-port Gbit/s switch connected to Gbit and Fast Ethernet Hosts" src="../img/ethernet-autoneg.svg"></a></p>
<p>The speed and duplex status for the links can be listed as shown
below, assuming the link operational status is 'up'.</p>
<p>A quick at-a-glance view of the physical link is available in the summary
listing. When a port is up, a physical-layer row appears above the ethernet
row, naming the IEEE PMD type (e.g. <code>1000baseT</code>, <code>10GbaseLR</code>) in the PROTOCOL
column and the negotiated duplex in DATA. When the link is down the row is
omitted and the interface name falls onto the ethernet row.</p>
<pre class="cli"><code>admin@example:/&gt; <b>show interface</b>
<span class="header">INTERFACE PROTOCOL STATE DATA </span>
eth1 1000baseT UP duplex: full
ethernet 00:53:00:06:11:01
eth2 1000baseT UP duplex: full
ethernet 00:53:00:06:11:02
eth3 ethernet DOWN 00:53:00:06:11:03
eth4 100baseTX UP duplex: full
ethernet 00:53:00:06:11:04
...
</code></pre>
<p>The detail view spells everything out, including auto-negotiation
state and the speed in Mbit/s.</p>
<pre class="cli"><code>admin@example:/&gt; <b>show interface eth1</b>
name : eth1
index : 2
mtu : 1500
operational status : up
auto-negotiation : on
duplex : full
speed : 1000
physical address : 00:53:00:06:11:01
ipv4 addresses :
ipv6 addresses :
in-octets : 75581
out-octets : 43130
name : eth1
index : 2
mtu : 1500
operational status : up
link mode : 1000baseT
auto-negotiation : on
duplex : full
speed : 1000
physical address : 00:53:00:06:11:01
ipv4 addresses :
ipv6 addresses :
in-octets : 75581
out-octets : 43130
...
admin@example:/&gt; <b>show interface eth4</b>
name : eth4
index : 5
mtu : 1500
operational status : up
auto-negotiation : on
duplex : full
speed : 100
physical address : 00:53:00:06:11:04
ipv4 addresses :
ipv6 addresses :
in-octets : 75439
out-octets : 550704
name : eth4
index : 5
mtu : 1500
operational status : up
link mode : 100baseTX
auto-negotiation : on
duplex : full
speed : 100
physical address : 00:53:00:06:11:04
ipv4 addresses :
ipv6 addresses :
in-octets : 75439
out-octets : 550704
...
admin@example:/&gt;
</code></pre>
<h3 id="configuring-fixed-speed-and-duplex">Configuring fixed speed and duplex<a class="headerlink" href="#configuring-fixed-speed-and-duplex" title="Permanent link"></a></h3>
<p>Auto-negotiation of speed/duplex mode is desired in almost all
use-cases, but it is possible to disable auto-negotiation and specify
a fixed speed and duplex mode.</p>
<div class="admonition tip">
<p class="admonition-title">Important</p>
<p>When setting a fixed speed and duplex mode, ensure both sides of the
link have matching configuration. If speed does not match, the link
will not come up. If duplex mode does not match, the result is
reported collisions and/or bad throughput.</p>
<h3 id="restricting-advertised-link-modes">Restricting advertised link modes<a class="headerlink" href="#restricting-advertised-link-modes" title="Permanent link"></a></h3>
<p>Auto-negotiation is the right default for almost all links, but sometimes a
port has to come up at a fixed speed, usually when talking to old hardware
that won't auto-negotiate or does it badly. IEEE Std 802.3.2-2025 dropped
the old "turn off auto-negotiation, then set a fixed speed and duplex"
approach. Instead you restrict the set of PMD types the port may advertise:
list a single PMD and the link pins to that mode against any peer that
supports it.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Earlier Infix releases needed <code>enable false</code> plus explicit <code>speed</code> and
<code>duplex</code> leaves. IEEE Std 802.3.2-2025 retired the <code>eth:speed</code> leaf, so
the speed now comes from the <code>advertised-pmd-types</code> entry instead.
Existing <code>startup-config.cfg</code> files are migrated automatically on upgrade.</p>
</div>
<p>The example below configures port eth3 to fixed speed 100 Mbit/s
half-duplex mode.</p>
<p>Each entry in <code>auto-negotiation/advertised-pmd-types</code> is an IEEE PMD-type
identity (<code>ieee802-ethernet-phy-type:pmd-type-*</code>). The separate <code>duplex</code>
leaf controls half vs full duplex.</p>
<p>The example below pins port <code>eth3</code> to 100 Mbit/s half-duplex.</p>
<pre class="cli"><code>admin@example:/&gt; <b>configure</b>
admin@example:/config/&gt; <b>edit interface eth3 ethernet</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set speed 0.1</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set auto-negotiation advertised-pmd-types pmd-type-100BASE-TX</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set duplex half</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set auto-negotiation enable false</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>show</b>
auto-negotiation {
enable false;
advertised-pmd-types [ ieee802-ethernet-phy-type:pmd-type-100BASE-TX ];
}
duplex half;
speed 0.1;
admin@example:/config/interface/eth3/ethernet/&gt; <b>leave</b>
admin@example:/&gt;
</code></pre>
<p>Speed metric is in Gbit/s. Auto-negotiation needs to be disabled in
order for fixed speed/duplex to apply. Only speeds <code>0.1</code>(100 Mbit/s)
and <code>0.01</code> (10 Mbit/s) can be specified. 1 Gbit/s and higher speeds
require auto-negotiation to be enabled.</p>
<p>List several PMDs to advertise all of them; auto-negotiation then settles
on the highest mode both ends support.</p>
<div class="admonition tip">
<p class="admonition-title">Important</p>
<p>When pinning a link mode, make sure both ends share at least one common
(PMD, duplex) combination, otherwise the link will not come up.</p>
</div>
<h4 id="duplex-and-advertised-modes">Duplex and advertised modes<a class="headerlink" href="#duplex-and-advertised-modes" title="Permanent link"></a></h4>
<p>A PMD type like <code>10BASE-T</code> or <code>100BASE-TX</code> says nothing about duplex on its
own, but the kernel tracks half and full duplex as separate link modes.
Infix advertises both variants of every PMD you list, then narrows to one
duplex when the <code>duplex</code> leaf is set:</p>
<table>
<thead>
<tr>
<th><code>advertised-pmd-types</code></th>
<th><code>duplex</code></th>
<th>Resulting advertised modes</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>[10BASE-T]</code></td>
<td><em>unset</em></td>
<td><code>10baseT/Half</code> + <code>10baseT/Full</code></td>
</tr>
<tr>
<td><code>[10BASE-T]</code></td>
<td><code>full</code></td>
<td><code>10baseT/Full</code></td>
</tr>
<tr>
<td><code>[10BASE-T]</code></td>
<td><code>half</code></td>
<td><code>10baseT/Half</code></td>
</tr>
<tr>
<td><code>[10BASE-T, 100BASE-TX]</code></td>
<td><em>unset</em></td>
<td>all four half/full combinations</td>
</tr>
<tr>
<td><code>[10BASE-T, 100BASE-TX]</code></td>
<td><code>full</code></td>
<td><code>10baseT/Full</code> + <code>100baseT/Full</code></td>
</tr>
<tr>
<td><em>unset</em></td>
<td><em>unset</em></td>
<td>every mode the PHY supports (default)</td>
</tr>
</tbody>
</table>
<p>So <code>duplex</code> filters the PMDs you listed. PMDs with no half-duplex variant
(everything above 1 Gbps) only ever advertise full.</p>
<h4 id="disabling-auto-negotiation">Disabling auto-negotiation<a class="headerlink" href="#disabling-auto-negotiation" title="Permanent link"></a></h4>
<p>The method above keeps auto-negotiation on and only limits what it
advertises, so the peer still negotiates as usual. That doesn't help with
gear that won't negotiate at all, like some old switches or a back-to-back
copper link. For those, set <code>auto-negotiation/enable false</code> together with a
single <code>advertised-pmd-types</code> entry to force a fixed speed and duplex with
negotiation off:</p>
<pre class="cli"><code>admin@example:/config/interface/eth3/ethernet/&gt; <b>set auto-negotiation enable false</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set auto-negotiation advertised-pmd-types pmd-type-100BASE-TX</b>
admin@example:/config/interface/eth3/ethernet/&gt; <b>set duplex full</b>
</code></pre>
<p>With <code>enable false</code> you must list exactly one PMD: it sets the speed, and
the <code>duplex</code> leaf sets half or full. Leave <code>duplex</code> out and Infix uses
whatever the PMD supports, normally full.</p>
<p>Auto-MDIX usually rides along with auto-negotiation, so turning negotiation
off can leave both ends picking the same MDI/MDI-X pinout. The link then
comes up electrically but carries no traffic. When that happens, force
opposite pinouts with the <code>mdi-x</code> leaf — set one end true (MDI-X) and the
other false (MDI):</p>
<pre class="cli"><code>admin@example:/config/interface/eth3/ethernet/&gt; <b>set mdi-x false</b>
</code></pre>
<p>Leaving <code>mdi-x</code> unset keeps Auto-MDIX in charge, which is correct whenever
auto-negotiation is on.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Whether <code>enable false</code> reaches the external PHY depends on the driver.
Direct-attach NICs handle it directly. Switch user ports go through the
switch driver, and some accept the request at the MAC but leave the PHY
auto-negotiating: the kernel reports the configured speed while the wire
runs at whatever was negotiated, and traffic stalls. If that happens,
read the PHY's BMCR register (e.g. with <code>mdio</code> from <code>mdiotools</code>) to see
what the PHY is actually doing.</p>
</div>
<p>The detail view exposes a <code>supported</code> block (operational state,
backed by the <code>supported-pmd-types</code> leaf-list) listing the PMD types
the kernel currently believes the interface can operate at. For
SFP/SFP+ cages this set reflects the inserted module: plug in a 10G
LR optic and <code>supported</code> will narrow to <code>10GbaseLR</code> only. Combined
with the operational <code>link mode</code> row above it, this makes it trivial
to confirm what an unknown transceiver actually is — no <code>ethtool -m</code>
round-trip needed.</p>
<pre class="cli"><code>admin@example:/&gt; <b>show interface eth13</b>
name : eth13
type : ethernet
operational status : up
link mode : 10GbaseLR
auto-negotiation : off
supported : 10GbaseLR
duplex : full
speed : 10000
...
</code></pre>
<h3 id="ethernet-statistics">Ethernet statistics<a class="headerlink" href="#ethernet-statistics" title="Permanent link"></a></h3>
<p>Ethernet packet statistics<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup> can be listed as shown below.</p>
<pre class="cli"><code>admin@example:/&gt; <b>show interface eth1</b>
name : eth1
index : 2
mtu : 1500
operational status : up
auto-negotiation : on
duplex : full
speed : 1000
physical address : 00:53:00:06:11:0a
ipv4 addresses :
ipv6 addresses :
in-octets : 75581
out-octets : 43130
eth-in-frames : 434
eth-in-multicast-frames : 296
eth-in-broadcast-frames : 138
eth-in-error-fcs-frames : 0
eth-in-error-oversize-frames : 0
eth-out-frames : 310
eth-out-multicast-frames : 310
eth-out-broadcast-frames : 0
eth-out-good-octets : 76821
eth-in-good-octets : 60598
name : eth1
index : 2
mtu : 1500
operational status : up
link mode : 1000baseT
auto-negotiation : on
duplex : full
speed : 1000
physical address : 00:53:00:06:11:0a
ipv4 addresses :
ipv6 addresses :
in-octets : 75581
out-octets : 43130
───────────────────
<b>Ethernet Statistics</b>
in-frames : 434
in-multicast-frames : 296
in-broadcast-frames : 138
in-error-fcs-frames : 0
in-error-oversize-frames : 0
out-frames : 310
out-multicast-frames : 310
out-broadcast-frames : 0
out-good-octets : 76821
in-good-octets : 60598
admin@example:/&gt;
</code></pre>