Commit Graph
4461 Commits
Author SHA1 Message Date
Joachim Wiberg 386ca9618e confd: ensure DHCP client is not started before netd
This is a follow-up to c559b8f2 (new-frr) where netd now is responsible
for funneling static routes, as well as routes from DHCP clients, into
the kernel via Frr.

For this to work, in particular at boot, any DHCP client must wait for
netd to have started or any default routes learned will be lost.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 08:29:06 +01:00
Joachim Wiberg abe571d32c confd: silence Coverity false positive resource leak
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 07:00:06 +01:00
Joachim Wiberg 131177f3c9 confd: check return value and drop redundant assignment
Found by Coverity Scan:
 - check rename() return value
 - drop redundant ripd_enabled assignment

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 07:00:06 +01:00
Joachim Wiberg c3d396b5fe copy: fix null dst dereference and uninit uri_i in curl()
Found by Coverity Scan

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 07:00:05 +01:00
Joachim Wiberg b341d37267 Update URL from kernelkit.org to www.kernelkit.org
DNS does not allow CNAME records at an apex domain (e.g. kernelkit.org),
so GitHub Pages cannot reliably redirect kernelkit.github.io to it.  A
www subdomain can carry a CNAME pointing directly to kernelkit.github.io,
giving GitHub full control over the mapping and making the redirect work.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 06:59:48 +01:00
Joachim Wiberg cbe8315508 cli: simplify 'show bfd [peer_addr]' -> 'show bfd [peer]'
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 06:59:48 +01:00
Joachim Wiberg a5687bda7f cli: add support for --reset-volumes on container upgrade
The weird `if env | grep -q 'reset-volumes'` construct is due to Klish
not sanitizing names before constructing variables, which leads to env
variables with '-' in them, not allowed in POSIX sh.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 06:58:21 +01:00
Joachim Wiberg 8fac3720fb board/common: fix container force option for upgrade
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 06:57:36 +01:00
Joachim Wiberg a4715debe8 cli: fix 'container upgrade <tab>' command completion
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-01 06:57:36 +01:00
ael-bot 9946357285 Upgrade Linux kernel to 6.18.15 2026-02-28 04:28:07 +00:00
Mattias WalströmandGitHub f5ad6bc9ea Merge pull request #1415 from kernelkit/add-yang-check
Add yang check
2026-02-27 13:58:27 +01:00
Joachim WibergandGitHub 1698ad6197 Merge pull request #1420 from kernelkit/fix-hash 2026-02-27 12:30:22 +01:00
Joachim Wiberg b3e158fce5 copy: use scp(1) for scp:// and sftp:// transfers
curl's SCP/SFTP backend (libssh2) does not support interactive password
prompting — it fails with an authentication error unless credentials are
supplied non-interactively.

Replace the curl path for SSH URIs with native scp(1), which inherits
the TTY and prompts the user for a password as expected.  Both scp://
and sftp:// URIs are handled by parsing the URI into a [user@]host:path
argument.  Port is extracted if present and passed via -P.  If no user
is embedded in the URI, the -u flag value (remote_user) is used instead.
Host-key verification is skipped with -o StrictHostKeyChecking=no, the
same trade-off already made by the test framework.

When the destination URI ends with '/', a meaningful remote filename is
derived from the source: the datastore's on-disk filename (e.g.,
startup-config.cfg), the datastore short-name for in-memory stores, or
the source file's own basename for plain file copies.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-27 11:14:00 +01:00
Mattias Walström 5762c75727 test: Upgrade docker for GPS tests 2026-02-27 11:06:31 +01:00
Mattias Walström bb5240e48b test: usb: remove unused import 2026-02-27 11:06:31 +01:00
Mattias Walström 002c7791ec CI: Run unit test once, not once per platform 2026-02-27 11:06:30 +01:00
Mattias Walström 147ffe602f Change hash for license file in 6.18 kernel 2026-02-27 11:06:30 +01:00
Joachim Wiberg d08c3416ec package/finit: bump to v4.16 GA
One change since -rc1 which was to drop shutdown debugging. For a full
ChangeLog see https://github.com/finit-project/finit/releases/tag/4.16

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-27 11:04:45 +01:00
Mattias WalströmandJoachim Wiberg c4f24caa94 yanger: Adapt to new stricter pattern for publish 2026-02-27 08:35:21 +01:00
Mattias WalströmandJoachim Wiberg 19a0151f68 confd: ntp: Minor cleanup 2026-02-27 08:35:20 +01:00
Mattias WalströmandJoachim Wiberg bbbb84fba7 sysrepo: Do not report old errors
This is a bug introduced in sysrepo 4.x
2026-02-27 08:35:20 +01:00
Mattias WalströmandJoachim Wiberg ed4fe58fda confd: Add YANG pattern constraints for string leaves
Add input validation patterns to string-type leaves in container,
firewall, DHCP, and interface YANG models.  Also use mkdtemp() for
temporary key files in keystore.

Signed-off-by: Mattias Walström <lazzer@gmail.com>
2026-02-27 08:35:17 +01:00
Tobias WaldekranzandGitHub d7812c2ea5 Merge pull request #1418 from kernelkit/simplify-build
Simplify build
2026-02-27 08:33:46 +01:00
Tobias WaldekranzandGitHub ffa23fb9be Merge pull request #1419 from kernelkit/kernel-upgrade-890bedee-6ca0-4d50-8353-0185cdf0222e
Upgrade to kernel 6.18.14
2026-02-27 08:15:50 +01:00
ael-bot 4cf9fd02db Upgrade Linux kernel to 6.18.14 2026-02-27 04:52:28 +00:00
Joachim Wiberg a5c807abe0 test/infamy: make until() exception-safe
Any exception raised by fn() propagated immediately out of the retry
loop, effectively making until() a single-shot call the moment any
transient error occurred.

Fix by wrapping fn() in a try/except inside the loop and treating any
exception as a "not yet" result.  The last exception is preserved and
re-raised if all attempts are exhausted, so failure output is still
meaningful.  Also fix a missing newline at end of file.

Fixes #1403

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-26 19:05:43 +01:00
Joachim Wiberg b5a292d7dd test/infamy: catch TimeoutError in curl() to allow retries
Python's urllib.request wraps OSError in URLError during the connection
phase, but NOT during response reading (getresponse()).  This means a
timeout that fires after the TCP handshake completes, e.g. when a service
accepts the connection but hasn't sent a response yet, propagates as a
bare TimeoutError that bypasses the exception handler, killing the entire
until() retry loop on the first attempt.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-26 13:43:41 +01:00
Joachim Wiberg 4522d9f217 package/netd: rename NETD_FRR to NETD_FRR_GRPC, select FRR_GRPC
Rename BR2_PACKAGE_NETD_FRR to BR2_PACKAGE_NETD_FRR_GRPC to match the
naming convention of the other FRR backends (VTYSH, CONF) and make the
intent self-evident.

Have the gRPC backend select BR2_PACKAGE_FRR_GRPC so FRR is built with
gRPC support when — and only when — this backend is chosen.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-26 13:43:40 +01:00
Mattias WalströmandGitHub c559b8f2e0 Merge pull request #1384 from kernelkit/new-frr 2026-02-25 18:09:01 +01:00
Joachim Wiberg 4a31df1059 netd: add vtysh -b backend
This is a simpler approach than both grpc and watchfrr.  Since we only
really need dynamic handling of static routes (for DHCP), we can track
changes made and maintain a "diff engine" for the resulting frr.conf.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:32 +01:00
Joachim Wiberg 965906e2ff netd: add support for frr.conf backend with waitfrr service
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:31 +01:00
Joachim Wiberg bcc444f0fe patches/frr: zebra: don't resolve nexthop via inactive route
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:31 +01:00
Joachim Wiberg 949f43853d package/finit: bump to 4.16-rc1
Drop backported fixes.

Details at https://github.com/finit-project/finit/releases/tag/4.16-rc1

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:31 +01:00
Joachim Wiberg e63275d3a1 test: wait for multicast filter to bite
Also, update test description a bit.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:30 +01:00
Joachim Wiberg 2abee79c18 test: minor fix, missing format string
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:30 +01:00
Joachim Wiberg a844ba7d8c test: wait for static route before must_reach()
Not all systems are equally quick, let's give it while to set before
bailing out because we test too soon.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:29 +01:00
Joachim Wiberg e8c9c70e37 test: fix flaky tests, retry until()
In the ongoing campaign against load-bearing sleep() and pure luck.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:29 +01:00
Joachim Wiberg 924567f30b board/common: simplify netd reload
With the latest backported fixes to Finit, we no longer need to remove
/run/netd.pid to trigger a reload (restart) of staticd.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:28 +01:00
Joachim Wiberg 0e21dc894b package/finit: backport fixes from upstream
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-02-24 06:59:28 +01:00
Mattias WalströmandJoachim Wiberg f187fee89b package: Add python-spy
You can use it to inspect python applications, to inspect
executiontime.
2026-02-24 06:59:28 +01:00
Mattias WalströmandJoachim Wiberg 845e7c13fe yanger: Wi-Fi: Add missing radio component in operational 2026-02-24 06:59:27 +01:00
Mattias WalströmandJoachim Wiberg 8c9e36ba5d Upgrade FRR to 10.5.1
This includes adding a netd-daemon since FRR has gone towards all
daemons should be configured from mgmtd using YANG, netd uses gRPC to
reconfigure in mgmtd

Signed-off-by: Enable grpc
2026-02-24 06:59:07 +01:00
Mattias WalströmandJoachim Wiberg a1a02f2727 utils: bump-gns3: Fix syntax after qcow image was renamed 2026-02-24 06:42:52 +01:00
Mattias WalströmandGitHub 3ffbef74a8 Merge pull request #1407 from kernelkit/add-support-for-bpi-r3-mini
Add support for bpi r3 mini
2026-02-22 13:11:11 +01:00
Mattias Walström 34805dca65 doc: Update Changelog with BPI-r3-mini 2026-02-22 11:52:05 +01:00
Mattias Walström 8b95c10e39 bananapi-bpi-r3: README: Add information about bpi-r3-mini
The important part is that it needs a special flow to go from
vendor firmware to Infix.
2026-02-22 11:52:05 +01:00
Mattias Walström 16e72e8741 boards: Add new board bpi-r3-mini
This is a simple two port router board, with the same
WiFi chips as BPI-r3.

The bootloader shall be the same as the BPI-r3, the bootloader
now probes which of the two is booting by checking for the PHYS
that only exist on BPI-r3-mini.
2026-02-22 11:52:05 +01:00
Joachim WibergandGitHub cf591c9813 Merge pull request #1411 from kernelkit/probe-dtb-early
init: Move all copy of files to before udev triger is run
2026-02-22 08:09:12 +01:00
Mattias Walström 51b0488e66 test: Return fail if make test fails
$? needs to be $$? inside a make rule to expand the
bash variable.
2026-02-21 12:23:04 +01:00
Mattias Walström 4aa0ab73b3 init: Move all copy of files to before udev triger is run
This since we may copy udev-rules dependeing on platforms,
this fix #1357

Also remove all workaround scripts we have added for this
purpose.
2026-02-21 09:25:25 +01:00