Commit Graph
3681 Commits
Author SHA1 Message Date
Joachim Wiberg e12920bd67 doc: update scripting with restconf and add similar for netconf
Fixes #1156

[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-10-03 08:59:16 +02:00
Joachim WibergandGitHub 701dcda535 Merge pull request #1181 from kernelkit/upgrade-kernel
Upgrade Linux kernel to 6.12.50 (LTS)
2025-10-02 18:15:14 +02:00
Tobias WaldekranzandGitHub ebb37732f4 Merge pull request #1177 from kernelkit/multi-dsa-tree-fixes
Multi DSA tree fixes
2025-10-02 16:09:19 +02:00
Mattias Walström 3cc7923058 Upgrade Linux kernel to 6.12.50 (LTS) 2025-10-02 15:58:03 +02:00
Tobias Waldekranz 94f8d1a700 common: nameif: Handle nested dsa ports
In setups like this...

    CPU
    eth0
     |
.----0----.
| dst0sw0 |
'-1-2-3-4-'
        |
   .----0----.
   | dst1sw0 |
   '-1-2-3-4-'

...both eth0 and dst0sw0p4 are DSA ports. But the latter is _also_ a
physical port as far as devlink is concerned. As a result, it would
first be marked as "internal" and is then instantly reclassified as a
"port".

Catch this condition and stick with the initial "internal"
classification.
2025-10-02 14:51:34 +02:00
Tobias Waldekranz 39b4101d19 common: has-quirk: Add support for matching based on "ethtool -i"
In addition to matching on interface names, add support for matching
on ethtool information.

Example:

    {
        "@ethtool:driver=st_gmac": {
	    "broken-mqprio": true
	}
    }

This would mark any interface using the "st_gmac" driver as having a
broken mqprio implementation. Whereas this:

    {
        "@ethtool:driver=st_gmac;bus-info:30bf0000.ethernet": {
	    "broken-mqprio": true
	}
    }

Only matches an st_gmac-backed interface at the specified location.

As matching becomes more complicated, use the shell implementation
from confd as well, to make sure that they are always in agreement.
2025-10-02 14:51:29 +02:00
Joachim WibergandGitHub a096a56428 Merge pull request #1170 from kernelkit/ospf-show-neighbor-fix
OSPF: skip interfaces without OSPF enabled
v25.09.0 v25.09.0-rc1
2025-09-30 09:33:20 +02:00
Richard Alpe 0b81e46306 OSPF: skip interfaces without OSPF enabled
Fix a bug where systems with OSPF enabled on some, but not all,
interfaces would cause the OSPF iterator to fail when accessing
iface['area'], which was missing. This caused the ospf_status.py
tool to return {}, resulting in empty OSPF data in sysrepo.

Fixes #1169 Expected neighbors not shown in sysrepocfg

Signed-off-by: Richard Alpe <richard@bit42.se>
2025-09-29 14:38:25 +02:00
Joachim WibergandGitHub 3720e09779 Merge pull request #1167 from kernelkit/kernel-update
Upgrade Linux kernel to 6.12.49 (LTS)
2025-09-29 14:34:28 +02:00
Mattias Walström 91fdf6144c Upgrade Linux kernel to 6.12.49 (LTS) 2025-09-29 12:33:26 +02:00
Mattias WalströmandGitHub c23c2245f2 Merge pull request #1168 from kernelkit/doc-updates
Doc updates
2025-09-29 11:28:17 +02:00
Joachim Wiberg cb85b6fc43 doc: update changelog, error in log message, and prep for release
[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-29 11:07:20 +02:00
Joachim Wiberg 9ca0dd6cdc Minor update, mention new Banana Pi-R3 support
Also, split out the i.MX8MP EVK to a separate item.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-29 11:07:07 +02:00
Joachim WibergandGitHub c59f53eeed Merge pull request #1163 from kernelkit/finit-warning
Fix log error at boot about unsupported command
2025-09-29 09:40:11 +02:00
Joachim Wiberg 040bd5b10c doc: update changelog, error in log message, and prep for release
[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-29 09:39:45 +02:00
Joachim Wiberg bb07f87f9c confd: simplify dnsmasq management during DHCP server reconf
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-29 09:37:12 +02:00
Joachim Wiberg 40755424ee Fix error in log during boot about unsupported command
Sep 27 04:10:06 infix finit[1]: api_cb():Unsupported command
	(cmd: 13, data: dnsmasq) in runlevel S and 6/0.

Fixes #1161

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-29 09:37:06 +02:00
Joachim WibergandGitHub fe8610b30d Merge pull request #1166 from kernelkit/infamy
Mix of test framework fixes and improvements
2025-09-29 08:49:31 +02:00
Joachim Wiberg a0a4051c8a test/infamy: fix xpath_to_uri() to handle multiple predicates
The xpath_to_uri() method only processed the first predicate in XPath
expressions with multiple [key='value'] patterns.  Each re.sub() call
was performed on the original xpath instead of the result the previous
substitutions, causing subsequent predicates to be ignored.

Example XPath that would fail:

    /infix-firewall:firewall/zone[name='untrusted']/interface[.='e2']

Would incorrectly convert to:

    /infix-firewall:firewall/zone[name='untrusted']/interface=e2

Instead of the correct RESTCONF URL:

    /infix-firewall:firewall/zone=untrusted/interface=e2

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 22:02:58 +02:00
Joachim WibergandGitHub d38c3f3406 Merge pull request #1164 from kernelkit/rauc-fixes
Rauc integration fixes
2025-09-28 21:44:29 +02:00
Joachim Wiberg 9d9e099cdb test/infamy: slight improvement to tap.py::Test.__exit__()
Before this change:

  ok 2 - Configure basic end-device firewall
  not ok 3 - Verify unused interface assigned to default zone
  # Exiting (2025-09-25 11:33:00)
  # Traceback (most recent call last):
  #   File "/home/jocke/src/x-misc/test/./case/infix_firewall/basic/test.py", line 127, in <module>
  #     assert unused_if not in public_zone["interface"], \
  #            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  # AssertionError: Unused interface e4 should be in default zone 'public', got interfaces: ['e2', 'e3', 'e5', 'e7', 'e8']

After this change:

  ok 2 - Configure basic end-device firewall
  not ok 3 - Verify unused interface assigned to default zone
  # Exiting (2025-09-25 11:35:00)
  #   File "/home/jocke/src/x-misc/test/./case/infix_firewall/basic/test.py", line 127, in <module>
  #     assert unused_if not in public_zone["interface"], \
  #            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  # Unused interface e4 should be in default zone 'public', got interfaces: ['e2', 'e3', 'e5', 'e7', 'e8']

Slightly shorter and arguably easier to read for a non-pythonic human.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:35:32 +02:00
Joachim Wiberg a9430070d2 test/infamy: add optional msg support to tap.py::Test.fail()
A very common pattern in our tests is:

  if (condition):
    print(f"the condition failed with {output}")
    test.fail()

This change allows us to write:

  if (condition):
    test.fail(f"the condition failed with {output}")

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:35:32 +02:00
Joachim Wiberg a3d30eb32f test/infamy: minor, whitespace only
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:35:31 +02:00
Joachim Wiberg 6bd00d8403 doc: update changelog
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:34:08 +02:00
Joachim Wiberg d715f02da0 board: enable rauc upgrade history and event logging (json)
The rauc event logger is a separate glib logger that by default logs to
the system console, with annoying ANSI escape sequences.  This commit
drops the default stdout/stderr redirect of these log messages and adds
a more exhaustive bundle install and event log, in json format, instead.

For more information about event logging, see the rauc documentation:
https://rauc.readthedocs.io/en/latest/advanced.html

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:32:59 +02:00
Joachim Wiberg 81a56fe304 confd: replace depracated rauc install d-bus method
Fixes #1080

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 21:32:57 +02:00
Joachim WibergandGitHub 99c87d0f1d Merge pull request #1165 from kernelkit/misc
Misc fixes
2025-09-28 21:18:44 +02:00
Joachim Wiberg 3a164e294d doc: update changelog
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:45 +02:00
Joachim Wiberg c42b0b536d test: minor, cleanup of specifications
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:45 +02:00
Joachim Wiberg c61b4361ab test: simplify and skip UNIX backup files
- Drop 'local', not available in POSIX shell scripts
 - Check for an assortment of backup file combos
 - Simplify nested if-statements, skip whitelist first

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:45 +02:00
Joachim Wiberg 065f86a74c confd: minor, replace hard-coded string with define
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:44 +02:00
Joachim Wiberg 0f6c7608ec package/confd: simplify, relocate netconf service
Follow the good example set by the restconf service.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:44 +02:00
Joachim Wiberg 93d59b024a package/rousette: add '--log-level LEVEL' command line option
The default 'trace' log level is quite verbose for our production systems.
This commit changes the default to 'info' and adds a command line option
to control the log level if needed.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:43 +02:00
Joachim Wiberg 096a8ab2e2 package/rousette: use v2-kkit branch for reduced patch set
To be able to maintain our own set of patches on top rousette, a kkit
branch have been set up with a reduced set of backported fixes.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:43 +02:00
Joachim Wiberg 1a3e1dcabc package/nghttp2-asio: bump to CESNET fork
This is the CESNET fork of nghttp2-asio, introduced here:
https://github.com/CESNET/rousette/commit/fff3429

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 07:26:42 +02:00
Joachim Wiberg 69056bfb2c board/common: fixes for unicode translation in log/pager commands
- cli: add '-r' to log/pager/follow for "raw" control chars, including unicode
 - sysklogd: backport unicode fix for em-dash character (—) in slogan
 - sysklogd: drop old patches
 - sysklogd: run in 8-bit safe mode

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 03:50:23 +02:00
Joachim Wiberg dd4221802f utils: silence srload (debug messages)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 03:50:22 +02:00
Joachim Wiberg e1783f3c23 cli: minor, xml optimization
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 03:50:22 +02:00
Joachim Wiberg 0957774208 cli: add terminal reset|resize commands
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 03:50:22 +02:00
Joachim Wiberg 77963d5267 patches/libyang: follow-up to e7f68be
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-28 03:50:14 +02:00
Mattias WalströmandGitHub 2f13fc7843 Merge pull request #1160 from kernelkit/upgrade-sysrepo
Bump sysrepo, netopeer,libyang and libnetconf2, libyang-cpp, rousette
2025-09-17 10:41:04 +02:00
Mattias Walström e7f68be143 Bump sysrepo, netopeer,libyang and libnetconf2, libyang-cpp, sysrepo-cpp, rousette 2025-09-17 08:51:31 +02:00
Mattias WalströmandGitHub 197bb1507e Merge pull request #1159 from kernelkit/misc
Misc fixes
2025-09-16 09:27:42 +02:00
Joachim Wiberg b18a719cee Add repobeats analytics
[skip ci]

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-16 07:55:05 +02:00
Joachim Wiberg b330c6c70d .github: prevent duplicate builds when ci:main label is added to PRs
Add concurrency control to trigger workflow to cancel in-progress builds
when new events (like adding ci:main label) occur on the same PR.  This
prevents resource waste from duplicate builds and handles the common
workflow where developers add the ci:main label after PR creation.

Fixes #1154
2025-09-15 19:12:51 +02:00
Joachim Wiberg 64a3770a76 doc: update changelog with latest changes
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-15 18:58:16 +02:00
Joachim Wiberg 6a745f50f8 board/common: adjust log level of udhcpc script, fix missing iface
Issue #1100

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-15 18:08:40 +02:00
Joachim Wiberg f41ff6d3e7 confd: reduce dhcp client logging overhead by 70%
Adjust DHCP client retry behavior:

 -t 3  (was -t 10) : Maximum discovery attempts per cycle
 -T 5  (was -T 3)  : Seconds to wait between attempts
 -A 30 (was -A 10) : Seconds to wait after all attempts fail

Before: 10 attempts × 3 seconds = 30 seconds of rapid trying, then 10
        second pause = 40 second total cycle

After: 3 attempts × 5 seconds = 15 seconds of trying, then 30 second
       pause = 45 second total cycle

=> 70% fewer log messages during active attempts, with longer quiet
       periods between cycles.

Fixes #1100

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-15 18:07:50 +02:00
Joachim Wiberg 400691af85 package/klish-plugin-sysrepo: improve CLI UX for no enabled command
Fixes #1119

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2025-09-15 17:25:23 +02:00
Joachim Wiberg 0bada691fc Add neofetch
Fixes #1143
2025-09-15 17:08:08 +02:00