mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-23 01:23:00 +02:00
+34
-28
@@ -3,7 +3,7 @@ Change Log
|
||||
|
||||
All notable changes to the project are documented in this file.
|
||||
|
||||
[v26.05.0][UNRELEASED]
|
||||
[v26.05.0][] - 2026-05-29
|
||||
-------------------------
|
||||
|
||||
### Changes
|
||||
@@ -24,40 +24,44 @@ All notable changes to the project are documented in this file.
|
||||
above the `ethernet` row. VLAN, GRE, VXLAN and WiFi interfaces likewise get
|
||||
one row per protocol layer, with type-specific data on each (`vid:`,
|
||||
`remote:`, `vni:`, `station ssid:`, etc.), issue #530
|
||||
- New `auto-negotiation/advertised-pmd-types` leaf-list replaces the
|
||||
retired `enable=false + speed + duplex` idiom for pinned link modes
|
||||
(IEEE Std 802.3.2-2025 obsoleted `eth:speed`), issue #805. Existing
|
||||
startup configurations are migrated automatically on upgrade; see
|
||||
[ethernet.md](ethernet.md#restricting-advertised-link-modes) for the
|
||||
new model, the duplex × PMD mapping, and the `enable=false` escape
|
||||
hatch for non-autoneg peers
|
||||
- New `ethernet/mdi-x` boolean leaf to force the copper MDI/MDI-X pinout
|
||||
(true = MDI-X, false = MDI, absent = Auto-MDIX). Needed on some PHYs
|
||||
where Auto-MDIX stops working once auto-negotiation is disabled; see
|
||||
[ethernet.md](ethernet.md#restricting-advertised-link-modes)
|
||||
- Add support for configurable auto-negotiation for Ethernet ports. A new
|
||||
`advertised-pmd-types` leaf-list replaces the fixed speed idiom for pinned
|
||||
link modes, issue #805. See the [Ethernet Interfaces][ethernet] section in
|
||||
the User Guide for details. Existing configurations using fixed speed are
|
||||
migrated automatically on upgrade
|
||||
- Add support for configurable MDI/MDI-X pinout on Ethernet ports. Needed on
|
||||
some PHYs where Auto-MDIX stops working once auto-negotiation is disabled
|
||||
- New operational `supported-pmd-types` leaf-list on each Ethernet interface,
|
||||
exposing the set of PMD types currently supported. Useful for SFP/SFP+
|
||||
diagnosis: an LR-only optic narrows the list to a single entry, confirming
|
||||
the transceiver without `ethtool -m`
|
||||
- New CLI command `show operational`, and XPath filtering for this and any of
|
||||
the other datastores, using `[path /path/to/subtree]`
|
||||
exposing the set of PMD types currently supported
|
||||
- New CLI command `show operational`, and optional XPath filtering for this
|
||||
and any of the other datastores, using `[path /path/to/subtree]`
|
||||
- CLI `show` commands now surface human-friendly error messages instead of a
|
||||
raw Python exceptions, e.g., `Interface "w" not found`
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix #1493: container with a physical interface not properly removed
|
||||
when switching to a configuration without containers
|
||||
- Fix #1506: add documentation on how to configure VLAN interfaces,
|
||||
including stacked (Q-in-Q) VLAN interfaces, in a dedicated `vlan.md`
|
||||
- Fix long-standing typo `auto-negotation` in `yanger`, which caused
|
||||
the operational `auto-negotiation/enable` leaf to always read as
|
||||
`unknown` regardless of the actual port setting
|
||||
- Handle unclean daemon exits better, e.g., `dbus-daemon` crashing and
|
||||
leaving a stale pidfile behind, causing it to refuse to be restarted
|
||||
- Fix #1493: container with a physical interface not properly removed when
|
||||
switching to a configuration without containers
|
||||
- Fix #1506: add documentation on how to configure VLAN interfaces, including
|
||||
stacked (Q-in-Q) VLAN interfaces, in a dedicated `vlan.md`
|
||||
- Handle unclean daemon exits better, e.g., `dbus-daemon` crashing and leaving
|
||||
a stale pidfile behind, causing it to refuse to be restarted
|
||||
- Fix occasional blank or garbled `[ OK ]` lines at startup
|
||||
- Disallow multicast MAC addresses in custom MAC address configuration
|
||||
- Fix broken Wi-Fi 6 GHz band configuration.
|
||||
- Fix operational read of `/containers` failing and thereby aborting all
|
||||
operational get-data, including RESTCONF/NETCONF reads — for containers
|
||||
whose command contains shell metacharacters, e.g. `sh -c "... && ..."`
|
||||
- WireGuard interfaces are now regenerated when a referenced keystore key
|
||||
changes: the asymmetric `private-key`, and the symmetric `preshared-key` at
|
||||
both peer-group and per-peer level
|
||||
- Fix crash in operational data when a bridge has VLAN ranges configured: the
|
||||
kernel may report ranges (e.g. `vlan 1 vlanEnd 3`) from `bridge vlan global
|
||||
show`, which were not expanded, so `show interface` and other operational
|
||||
reads failed. Ranges are now expanded and listed correctly
|
||||
|
||||
[BPI-R3]: https://docs.banana-pi.org/en/BPI-R3/BananaPi_BPI-R3
|
||||
[ethernet]: ethernet.md#restricting-advertised-link-modes
|
||||
[BPI-R3]: https://docs.banana-pi.org/en/BPI-R3/BananaPi_BPI-R3
|
||||
[AcerConnectVero]: ../board/aarch64/acer-connect-vero-w6m/
|
||||
|
||||
[v26.04.0][] - 2026-04-30
|
||||
@@ -2131,7 +2135,9 @@ Supported YANG models in addition to those used by sysrepo and netopeer:
|
||||
- N/A
|
||||
|
||||
[buildroot]: https://buildroot.org/
|
||||
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v26.03.0...HEAD
|
||||
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v26.05.0...HEAD
|
||||
[v26.05.0]: https://github.com/kernelkit/infix/compare/v26.04.0...v26.05.0
|
||||
[v26.04.0]: https://github.com/kernelkit/infix/compare/v26.03.0...v26.04.0
|
||||
[v26.03.0]: https://github.com/kernelkit/infix/compare/v26.02.0...v26.03.0
|
||||
[v26.02.0]: https://github.com/kernelkit/infix/compare/v26.01.0...v26.02.0
|
||||
[v26.01.0]: https://github.com/kernelkit/infix/compare/v25.11.0...v26.01.0
|
||||
|
||||
@@ -1,3 +1,90 @@
|
||||
/* Chirpy-style typography (must precede all other rules).
|
||||
* Source Sans Pro was renamed "Source Sans 3" on Google Fonts; it is the
|
||||
* same typeface. Lato is used for headings, matching www.kernelkit.org. */
|
||||
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap');
|
||||
|
||||
/* ---- Fonts ---------------------------------------------------------------
|
||||
* theme.font is disabled in mkdocs.yml, so we set Material's font vars here.
|
||||
* Body: Source Sans 3, code: system monospace (same stack Chirpy uses). */
|
||||
:root {
|
||||
--md-text-font: "Source Sans 3";
|
||||
--md-code-font: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New";
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
/* Lato for all headings and the masthead site title. */
|
||||
.md-typeset h1,
|
||||
.md-typeset h2,
|
||||
.md-typeset h3,
|
||||
.md-typeset h4,
|
||||
.md-typeset h5,
|
||||
.md-typeset h6,
|
||||
.md-header__title,
|
||||
.md-nav__title {
|
||||
font-family: "Lato", "Microsoft Yahei", sans-serif;
|
||||
}
|
||||
|
||||
/* ---- Light mode (Chirpy "default" palette) ------------------------------- */
|
||||
[data-md-color-scheme="default"] {
|
||||
--md-typeset-color: #34343c;
|
||||
--md-typeset-a-color: #0056b2; /* Chirpy blue links */
|
||||
--md-accent-fg-color: #0056b2; /* link hover / active TOC */
|
||||
--md-code-bg-color: #f6f8fa;
|
||||
--md-code-fg-color: #3a3a3a;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="default"] .md-typeset h1,
|
||||
[data-md-color-scheme="default"] .md-typeset h2,
|
||||
[data-md-color-scheme="default"] .md-typeset h3,
|
||||
[data-md-color-scheme="default"] .md-typeset h4,
|
||||
[data-md-color-scheme="default"] .md-typeset h5,
|
||||
[data-md-color-scheme="default"] .md-typeset h6 {
|
||||
color: #2a2a2a;
|
||||
}
|
||||
|
||||
/* Subtle tinted sidebars (left nav + right TOC), as on the blog. */
|
||||
[data-md-color-scheme="default"] .md-sidebar {
|
||||
background-color: #f6f8fa;
|
||||
}
|
||||
|
||||
/* ---- Dark mode (Chirpy "dark" palette over Material's slate) ------------- */
|
||||
[data-md-color-scheme="slate"] {
|
||||
--md-default-bg-color: rgb(27 27 30); /* neutral near-black */
|
||||
--md-default-fg-color: rgb(207 208 209); /* UI text */
|
||||
--md-default-fg-color--light: rgb(175 176 177);
|
||||
--md-default-fg-color--lighter: rgb(175 176 177 / 45%);
|
||||
--md-default-fg-color--lightest: rgb(175 176 177 / 18%);
|
||||
--md-typeset-color: rgb(175 176 177); /* body text */
|
||||
--md-code-bg-color: #151515;
|
||||
--md-code-fg-color: #b0b0b0;
|
||||
--md-typeset-a-color: rgb(138 180 248); /* Chirpy blue links */
|
||||
--md-accent-fg-color: rgb(168 199 250); /* brighter blue on hover */
|
||||
}
|
||||
|
||||
[data-md-color-scheme="slate"] .md-typeset h1,
|
||||
[data-md-color-scheme="slate"] .md-typeset h2,
|
||||
[data-md-color-scheme="slate"] .md-typeset h3,
|
||||
[data-md-color-scheme="slate"] .md-typeset h4,
|
||||
[data-md-color-scheme="slate"] .md-typeset h5,
|
||||
[data-md-color-scheme="slate"] .md-typeset h6 {
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
/* Sidebars slightly lighter than the main background, as on the blog. */
|
||||
[data-md-color-scheme="slate"] .md-sidebar {
|
||||
background-color: #1e1e1e;
|
||||
}
|
||||
|
||||
/* Inline code reads as a faint highlight rather than a dark block. */
|
||||
[data-md-color-scheme="slate"] .md-typeset :not(pre) > code {
|
||||
background-color: rgb(255 255 255 / 6%);
|
||||
}
|
||||
|
||||
/* ---- Existing project styling -------------------------------------------- */
|
||||
.md-header__title {
|
||||
font-size: 1.1rem;
|
||||
line-height: 2.6rem;
|
||||
|
||||
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
+2
-2
@@ -108,7 +108,7 @@ DHCP server, and the other two as DHCP clients - with all three having
|
||||
a management connection to the host PC running the test. In other
|
||||
words, the test requires a _logical_ topology like the one below.
|
||||
|
||||
<img align="right" src="img/testing-log.dot.svg" alt="Example Logical Topology">
|
||||
{ align=right width="360" }
|
||||
|
||||
```dot
|
||||
graph "dhcp-client-server" {
|
||||
@@ -155,7 +155,7 @@ degrees), we can deploy well-known algorithms to find such subgraphs.
|
||||
Continuing our example, let's say we want to run our DHCP test on the
|
||||
_physical_ topology below.
|
||||
|
||||
<img align="right" src="img/testing-phy.dot.svg" alt="Example Physical Topology">
|
||||
{ align=right width="360" }
|
||||
|
||||
```dot
|
||||
graph "quad-ring" {
|
||||
|
||||
+5
-1
@@ -3,7 +3,7 @@ site_description: Infix Documentation
|
||||
site_url: https://kernelkit.github.io/infix/
|
||||
repo_url: https://github.com/kernelkit/infix/
|
||||
repo_name: kernelkit/infix
|
||||
copyright: Copyright © 2022-2025 The KernelKit Team
|
||||
copyright: Copyright © 2022-2026 The KernelKit Team
|
||||
docs_dir: doc/
|
||||
edit_uri: edit/master/doc/
|
||||
extra_css:
|
||||
@@ -79,6 +79,10 @@ nav:
|
||||
theme:
|
||||
logo: logo-plain.png
|
||||
name: material
|
||||
# Fonts are loaded by doc/extra.css (Lato headings + Source Sans body +
|
||||
# system monospace, matching the Chirpy blog) instead of Material's
|
||||
# auto-loaded Roboto. Keep this false so Material does not also fetch Roboto.
|
||||
font: false
|
||||
features:
|
||||
- toc.follow
|
||||
# - toc.integrate
|
||||
|
||||
Reference in New Issue
Block a user