Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
Limited free support is only available using the online resources of the
project on GitHub, and Discord, see <https://github.com/kernelkit>:
project on GitHub, and Discord, see <https://github.com/kernelkit/infix>:

&nbsp;&nbsp; :house: <https://www.kernelkit.org> — home page, blog, news, howto's and tutorials
&nbsp;&nbsp; :package: <https://github.com/kernelkit/infix/releases/latest> — latest release
&nbsp;&nbsp; :speech_balloon: <https://github.com/orgs/kernelkit/discussions>
&nbsp;&nbsp; :bug: <https://github.com/kernelkit/infix/issues>
&nbsp;&nbsp; :bug: <https://github.com/kernelkit/infix/issues>

Support contracts, development of new features, fast-tracking of reviews
and contributions, customer branding of Infix, and even customer specific
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,11 @@ APIs.
[2]: https://www.sysrepo.org/ "Sysrepo Homepage"
[3]: https://www.kernelkit.org/infix/latest/cli/introduction/
[4]: https://www.kernelkit.org/infix/
[5]: https://github.com/kernelkit/infix/releases
[5]: https://github.com/kernelkit/infix/releases/latest
[Latest Build]: https://github.com/kernelkit/infix/releases/tag/latest "Latest build"
[License]: https://en.wikipedia.org/wiki/GPL_license
[License Badge]: https://img.shields.io/badge/License-GPL%20v2-blue.svg
[Release]: https://github.com/kernelkit/infix/releases
[Release]: https://github.com/kernelkit/infix/releases/latest
[Release Badge]: https://img.shields.io/github/v/release/kernelkit/infix
[GitHub]: https://github.com/kernelkit/infix/actions/workflows/build.yml/
[GitHub Status]: https://github.com/kernelkit/infix/actions/workflows/build.yml/badge.svg
Expand Down
42 changes: 30 additions & 12 deletions doc/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Change Log

All notable changes to the project are documented in this file.

[v26.03.0][UNRELEASED]
[v26.03.0][] - 2026-03-30
-------------------------

### Changes
Expand All @@ -13,6 +13,11 @@ All notable changes to the project are documented in this file.
- Upgrade FRR to 10.5.3
- Add support for [Banana Pi R64 Mini][BPI-R64], 5 port router with WiFi 5
- Add support for [Raspberry Pi 400][RPI-400], an RPi 4B built into a keyboard
- Significant boot time improvements, issue #1284. The [InitViz][] boot
profiling tool is now included for users who want to visualize and measure
the boot process on their own hardware
- Add OSPF point-to-multipoint (P2MP) and hybrid interface type support. This
also includes support for setting static neighbors, issue #1426
- **Revamped <http://network.local> device browser**. Device cards now
show the IP address, product name, and firmware version from mDNS TXT
records. the mDNS browser is now also available over plain HTTP
Expand All @@ -25,30 +30,42 @@ All notable changes to the project are documented in this file.
- cli: new `show mdns` command to list mDNS-discovered devices on the LAN,
with addresses and product model
- Add SSH client commands to the CLI:
- `ssh [user <name>] [port <num>] <host>` — connect to a remote device
- `set ssh known-hosts <host> <keytype> <pubkey>` — pre-enroll a host key
received out-of-band, e.g. after a factory reset changes the device host key
- `no ssh known-hosts <host>` — remove a stale or changed host key entry
- Add OSPF point-to-multipoint (P2MP) and hybrid interface type support. This
also includes support for setting static neighbors, issue #1426
- `ssh [user <name>] [port <num>] <host>` — connect to a remote device
- `set ssh known-hosts <host> <keytype> <pubkey>` — pre-enroll a host key
received out-of-band, e.g. after a factory reset
- `no ssh known-hosts <host>` — remove a stale or changed host key entry
- Add support for user-configurable HTTPS certificate: select any certificate
stored in the keystore via `services web certificate <name>`. The default
auto-generated self-signed certificate is now stored in the keystore rather
than in `/cfg/ssl` and existing certificates are auto-migrated on upgrade
- Add NTP `stratum-weight` setting to fine-tune server selection when multiple
NTP sources are available with different stratum levels
- Enable HDMI console output on Raspberry Pi 4 and Pi 400. Previously the
display was suppressed; a login prompt now appears on the HDMI monitor

### Fixes

- Fix #892: suppress rousette RESTCONF server warnings from syslog
- Fix #1122: add missing migration script for the YANG validation introduced
in v25.10.0 that disallows IP addresses on bridge member ports. Without
this script, upgrading with such a `startup-config` would prevent the device
from booting. The migration removes all IP addresses from bridge member
ports; any addresses that should be kept must be re-added to the bridge
interface itself after upgrade
- Fix #1387: `infix.local` now resolves to exactly one device per LAN. Previously
all Infix devices claimed both `hostname.local` and `infix.local`, causing avahi
to append `#2`, `#3` suffixes to the shared alias on busy networks. Assignment
is now first-come-first-served using standard mDNS conflict resolution
- Fix #1389: firewall policies with names longer than 17 characters were
silently rejected
- Fix #1416: `show firewall` command show an error when the firewall is disabled
- Fix #1438: default route from DHCP client not set at boot, regression in v26.02.0
- Fix #1446: suppress netopeer2-server NETCONF server warnings from syslog
- Fix #1456: update project links in SUPPORT.md and README.md to point to
the home page and blog at <https://www.kernelkit.org>, and update the
release link to always resolve to the latest stable release
- Fix regression in MVEBU SafeXcel Crypto Engine for Marvell Armada SOCs (37xx,
7k, 8k, and CN913x series). Firmware package lost in v26.01.0
- Fix #1438: default route from DHCP client not set at boot, regression
introduced in v26.02.0
- Fix #1446: suppress netopeer2-server NETCONF server warnings from syslog
- Fix DHCP client not sending hostname to server (e.g. for `dnsmasq` lease
registration). All board factory configs had the hostname option without
`value: auto`, so `udhcpc` only requested the option instead of sending it.
Expand All @@ -60,8 +77,9 @@ All notable changes to the project are documented in this file.
`dhcp-authoritative` so clients with unexpired leases are not NAKed after
a router crash or factory reset that clears the lease database

[BPI-R64]: https://docs.banana-pi.org/en/BPI-R64/BananaPi_BPI-R64
[RPI-400]: https://www.raspberrypi.com/products/raspberry-pi-400/
[BPI-R64]: https://docs.banana-pi.org/en/BPI-R64/BananaPi_BPI-R64
[RPI-400]: https://www.raspberrypi.com/products/raspberry-pi-400/
[InitViz]: https://github.com/finit-project/InitViz

[v26.02.0][] - 2026-03-01
-------------------------
Expand Down
22 changes: 22 additions & 0 deletions doc/developers-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,28 @@ making any changes, **always discuss them with the Infix core team**.
This helps avoid issues later in development and makes pull request
reviews smoother.

### Configuration Migration

> [!IMPORTANT]
> Whenever a YANG model change makes existing `startup-config` files
> incompatible — removing a node, renaming a key, restructuring a
> container — you **must** include a migration script so that devices
> upgrading in the field are not left unbootable.

Migration scripts live in `src/confd/share/migrate/<version>/` where
`<version>` is the confd version (defined in `src/confd/configure.ac`)
that introduces the breaking change. Each script receives the path to
the startup configuration file as its first argument and must edit it
in-place. Scripts are run in lexicographic order, so prefix them with
a number (e.g. `40-my-change.sh`).

See `src/confd/share/migrate/1.6/40-bridge-port-remove-ip.sh` for a
worked example, and the [Configuration Migration][upgrade-migration]
section of the Upgrade documentation for the user-facing side of this
mechanism.

[upgrade-migration]: upgrade.md#configuration-migration

### `confd`

The Infix `src/confd/` is the engine of the system. Currently it is a
Expand Down
8 changes: 8 additions & 0 deletions doc/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ This document provides an introduction of key concepts, details how
the system boots, including failure modes, and provides links to
other documents for further study.

## Project Links

| **Topic** | **URL** |
|---------------------------------------------|------------------------------------------------------|
| :fontawesome-solid-house: Home page & blog | <https://www.kernelkit.org> |
| :fontawesome-brands-github: GitHub | <https://github.com/kernelkit/infix> |
| :fontawesome-solid-box-open: Latest release | <https://github.com/kernelkit/infix/releases/latest> |

## Command Line Interface

The command line interface (CLI, see-ell-i) is the traditional way of
Expand Down
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ markdown_extensions:
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.snippets
- pymdownx.tabbed:
alternate_style: true
Expand Down