Commit Graph
4198 Commits
Author SHA1 Message Date
Mattias Walström 0e2d12e9ff Upgrade kernel to 6.18 2026-01-19 11:02:22 +01:00
Joachim WibergandGitHub 31d17d03c2 Merge pull request #1356 from kernelkit/nanopi
Misc. fixes for NanoPi R2S
2026-01-19 07:47:17 +01:00
Joachim Wiberg f23b14d15e statd: backport finit patch to fix 'show services'
Service descriptions or command arguments may contain special characters
that need to be escaped in JSON strings.

Example:

{
  ...
  "command": "udhcpc -f -p /run/dhcp-client-wan.pid -t 3 -T 5 -A 30 -a1000 -S -R -o -O 1 -O 3 -O 6 -O 12 -O 15 -O 28 -O 42 -i wan -V "NanoPi R2S"",
  ...
}

Also, wrap add_services() in a try/except instead of testing for keys.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 23:31:45 +01:00
Joachim Wiberg d105178992 statd: resize 'show hardware' tables to match 'show system' width
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 23:30:20 +01:00
Joachim Wiberg c23009d7a2 statd: fix 'show system' regression, broken in b826bcb
The table_width() class method was lost in b826bcb9d, so we take the
opportunit to refactor to SimpleTable.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 21:39:38 +01:00
Joachim Wiberg 95eb04645b board/aarch64: enable input-event-daemon and rk805 pwr key
Fixes #1293

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 20:50:21 +01:00
Joachim Wiberg a8ae9519ae board/aarch64: designware watchdog broken on NanoPi R2S
Verified with latest Finit 4.15 that reboot after resize works.
Added a comment to the board-specific .mk file about the broken
WDT on the RK3328 SoC, or rather the NanoPi R2S board.

Fixes #1292

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 20:49:54 +01:00
Joachim Wiberg d2fd2c100e board/aarch64: relocate wan-monitor.sh
Board probing cannot copy board specific files to /usr (read-only), so
let's share this script with all other aarch64 boards.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-18 20:45:57 +01:00
Joachim WibergandGitHub a5a4f2a42b Merge pull request #1355 from kernelkit/fwfixes 2026-01-18 15:21:36 +01:00
Joachim Wiberg 5e180abae4 Fix firewall not updating when interfaces become bridge/LAG ports
When interfaces were moved from firewall zones to become bridge or LAG
ports (e.g., sfp1/sfp2 moved from WAN zone to lan-br), the firewall
configuration was not regenerated. This caused stale entries in
/etc/firewalld/zones/*.xml where interfaces remained listed in their
old zones despite no longer being L3 interfaces.

Root cause: firewall_change() only triggered on firewall model changes,
but interface membership changes (bridge-port/lag-port) occur in the
ietf-interfaces model. When interfaces become member ports, they
transition from L3 to L2, which affects the result of
interfaces_get_all_l3() used for default zone assignment.

Fix: Expand the diff check to also trigger firewall regeneration when
bridge-port or lag-port configuration changes, ensuring firewall zones
stay synchronized with actual L3 interface topology.

Fixes #1345

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-13 07:34:04 +01:00
Joachim Wiberg 125ea47d6e Fix missing firewalld.conf when modifying zone services
When users modified firewall zone services (e.g., enabling SSH on WAN),
firewalld.conf would disappear from /etc/firewalld/, causing firewalld
to fail with "Failed to load '/etc/firewalld/firewalld.conf': [Errno 2]
No such file or directory".

Root cause: After switching to the "roll in" staging directory approach
late in development, firewalld.conf generation was still conditional on
changes to "default" or "logging" settings. When other changes (zones,
services, policies) were made:

1. Code created /etc/firewalld+/ staging directory
2. Skipped generating firewalld.conf (no default/logging in diff)
3. On commit: rm -rf /etc/firewalld (deleted firewalld.conf!)
4. Renamed /etc/firewalld+ → /etc/firewalld (incomplete config)

Fix: Always generate firewalld.conf whenever firewall configuration is
being staged, not just for default/logging changes.

Fixes #1346

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-13 07:25:52 +01:00
Joachim WibergandGitHub 5a651800f3 Merge pull request #1351 from kernelkit/kernel-upgrade-3fd130fa-9571-4248-b04d-d97a01660630 2026-01-13 07:08:19 +01:00
ael-bot 8ce29f23d8 Upgrade Linux kernel to 6.12.65 2026-01-13 04:13:37 +00:00
Joachim WibergandGitHub 26ecf48600 Merge pull request #1350 from kernelkit/change-dhcpv6-client
Migrate to odhcp6c for dhpcv6 client support
2026-01-11 09:26:51 +01:00
Joachim WibergandGitHub f95c938085 Merge pull request #1348 from kernelkit/misc 2026-01-10 15:32:41 +01:00
Joachim Wiberg fa6023c9c4 Migrate to odhcp6c for dhpcv6 client support
Replace BusyBox udhcpc6 with OpenWrt's odhcp6c for improved DHCPv6
functionality and better integration with Router Advertisements (RA).

The primary motivation is support for a common ISP deployment scenario
where IPv6 addresses are assigned via SLAAC (from Router Advertisements)
and DHCPv6 is used in stateless/information-only mode to provide DNS
servers and other configuration options. This hybrid RA+DHCPv6 setup is
standard practice for many ISPs but was not supported by udhcpc6, which
treats RA and DHCPv6 as separate, non-integrated mechanisms.

Additional benefits of odhcp6c:

- Better IPv6 Prefix Delegation (IA-PD) support with proper handling
  of delegated prefix lifetimes and renewal
- Native integration of RA-provided configuration (DNS servers, routes,
  addresses) with DHCPv6-provided options
- Support for stateless DHCPv6 via information-only mode

To verify stateless DHCPv6 integration with SLAAC addresses - the ISP
scenario that motivated this migration, a new test case has been added.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-10 13:15:53 +01:00
Mattias Walström 2ff02d0c48 yang: keystore: Revert changes done when merging WireGuard
Accept the changes done when including Wi-Fi accesspoint,
which renames cleartext-symmetric-key to symmetric-key.
2026-01-10 10:52:53 +01:00
Mattias Walström 9d43b9d7a4 hostapd: Do not recreate bss-interfaces
By default, hostapd always recreate all bss interfaces,
we create them in confd so we do not want this behaviour.
2026-01-10 09:08:30 +01:00
Mattias WalströmandGitHub 1b0570b599 Merge pull request #1317 from kernelkit/add-wireguard
Add wireguard support
2026-01-09 12:19:08 +01:00
Mattias Walström 7e5da21cf6 Add support for WireGuard
Almost full support for WireGuard

admin@server:/> show interface wg0
name                : wg0
type                : wireguard
index               : 10
mtu                 : 1420
operational status  : up
ipv4 addresses      : 10.0.0.1/24 (static)
ipv6 addresses      : fd00::1/64 (static)
peers               : 2

  Peer 1:
    public key        : ROaZyvJc5DzA2XUAAeTj2YlwDsy2w0lr3t+rWj2imAk=
    status            : UP
    endpoint          : 192.168.10.2:51821
    latest handshake  : 2025-12-09T22:51:38+00:00
    transfer tx       : 1412 bytes
    transfer rx       : 1324 bytes

  Peer 2:
    public key        : Om9CPLYdK3l93GauKrq5WXo/gbcD+1CeqFpobRLLkB4=
    status            : UP
    endpoint          : 2001:db8:3c4d:20::2:51822
    latest handshake  : 2025-12-09T22:51:38+00:00
    transfer tx       : 1812 bytes
    transfer rx       : 428 bytes
in-octets           : 1752
out-octets          : 3224

admin@server:/>
2026-01-09 11:11:32 +01:00
Mattias Walström 8e9fd27e24 yanger: hardware: Do not crash if failing to read /run/system.json 2026-01-09 11:08:32 +01:00
Mattias Walström 651a274470 yanger: Do not crash if fails to get ethernet links 2026-01-09 10:23:52 +01:00
Mattias Walström f307dd9779 doc: wifi: Remove duplication 2026-01-09 08:12:48 +01:00
Mattias Walström 801faf0e0f aarch32: Upgrade to linux 6.12.64 2026-01-08 22:35:30 +01:00
Mattias Walström 5c811d7fc7 test: ntp: client_stratum_selection: Update autogenerated test spec 2026-01-08 14:50:17 +01:00
Mattias Walström f482a2bfe9 test: spec: rip_multihop: Add missing autogenerated file 2026-01-08 14:50:16 +01:00
Mattias Walström bd92e603d0 test: spec: ospf_debug: Add missing autogenerated files 2026-01-08 14:50:15 +01:00
Mattias Walström 5a96b64718 infamy: iface.py: Add functions to get interface oper status 2026-01-08 14:50:15 +01:00
Mattias WalströmandGitHub 21e7980d23 Merge pull request #1347 from kernelkit/kernel-upgrade-d1436c66-9f37-4de3-8bfe-e9180deec139
Upgrade to kernel 6.12.64
2026-01-08 14:01:45 +01:00
ael-bot 5b92591a44 Upgrade Linux kernel to 6.12.64 2026-01-08 10:21:02 +00:00
Joachim WibergandGitHub 84688864ef Merge pull request #1343 from kernelkit/misc-wifi-fixes 2026-01-06 23:47:16 +01:00
Mattias Walström f195a0a407 klish: followup 8a638fa26 allow when expression to depend on defaults
Did not work in some cases.
2026-01-06 20:51:32 +01:00
Mattias Walström 1fcfad14a1 bananapi-r3: Wrong config option for the watchdog 2026-01-06 20:51:31 +01:00
Mattias Walström 480e82a645 hostapd: Remove insane logic that some MAC addresses are not allowed
This is described on the internet as:
"If you are unlucky and have a device with wrong MAC address,
too bad"

For us: We set mac addresses static, and do not use hostapds, insane
MAC address allocation (radio MAC + n).
2026-01-06 20:50:55 +01:00
Mattias Walström aefa3a6962 confd: wifi: Set bssid if custom-phys-address has been used
This since hostapd change MAC address from its insane logic
radio + 1, if bssid is not set.
2026-01-06 20:50:42 +01:00
Mattias Walström f86436e739 yanger: Fix wifi status
use sh -c to expand the *
2026-01-06 20:20:22 +01:00
Mattias Walström 6aff287179 confd: wifi: Fix wifi interface type infer
If an interface is name is wifiN-whatever it will be infered
with the wifi type. Natural naming whould be wifi0-ssid.
2026-01-06 20:20:21 +01:00
Mattias Walström 89a3ccd51c confd: Rename get_phys_addr and make it not static
This to be able to use the function in hardware.c, when
setting up bssids.
2026-01-06 20:20:18 +01:00
Joachim WibergandGitHub 89c4d21532 Merge pull request #1302 from kernelkit/ntp-server 2026-01-04 15:50:34 +01:00
Joachim Wiberg a5efb1887f doc: update ChangeLog, NTP support
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-04 12:28:29 +01:00
Joachim Wiberg fca606cc7c doc: add NTP server documentation
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-04 12:28:29 +01:00
Joachim Wiberg 113b43ecae test: minor cleanup, whitespace only
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-04 12:28:28 +01:00
Joachim Wiberg 39b9c7a065 test: add new tests for NTP
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-04 12:28:28 +01:00
Joachim Wiberg 64a04f5a1d test/infamy: allow until() to return the result of the function
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-04 10:40:38 +01:00
Joachim Wiberg 2b08258492 test/infamy: improve feedback on netconf/restconf error a bit
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-03 22:13:25 +01:00
Joachim Wiberg efe4903d9c confd: initial support for NTP server
Fixes #904

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-03 22:13:24 +01:00
Mattias WalströmandGitHub fe86744ca2 Merge pull request #1342 from kernelkit/klish-nacm-fixes
Refactor nacm in klish-plugin-sysrepo after sysrepo change
2026-01-03 15:49:01 +01:00
Joachim Wiberg 84026740eb package/klish-plugin-sysrepo: refactor nacm after sysrepo change
Upstream sysrepo commit 90ce1f7 modified sr_nacm_init() to explicitly switch
the session to SR_DS_RUNNING before initializing NACM.  This broke our klish
workflow which started sessions on SR_DS_CANDIDATE.

This commit drops the sysrepo patch that reverts that behavior in favor of
explicitly starting sessions on SR_DS_RUNNING for NACM initialization, then
switch to SR_DS_CANDIDATE for editing operations.  This works with sysrepo's
behavior: NACM reads rules from running datastore while our editing workflow
operates on candidate datastore.

Also, add prompt path shortening for deep configuration hierarchies.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-01-03 14:17:06 +01:00
Joachim WibergandGitHub 470a4d56eb Merge pull request #1341 from kernelkit/allow-to-run-nsenter 2026-01-03 01:03:15 +01:00
Mattias Walström dd5c4919d6 nsenter: Allow to run outside container
If running outside container find the netns inside the container, then
enter that netns.

lazzer@tollan ~/src/github.com/kernelkit/infix3 (add-wireguard)$ sudo ./test/nsenter d2b
(netns:d2b) #
2026-01-03 01:00:43 +01:00