Branch: refs/heads/stable1-proposed
Home: https://github.com/kronosnet/kronosnet
Commit: 4494509ec3894e006807740b1f577fcd5053859f
https://github.com/kronosnet/kronosnet/commit/4494509ec3894e006807740b1f577…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/logging.c
M libknet/threads_tx.c
Log Message:
-----------
Suppress Coverity false positives for MISSING_LOCK and UNINIT
Fixed two Coverity false positive warnings:
1. MISSING_LOCK in threads_tx.c (_dispatch_to_local):
- Access to knet_h->sockfd[channel].is_created flagged as unguarded
- Lock is actually held by caller (_handle_send_to_links_thread)
- Added local variable to read value once with suppression annotation
2. UNINIT in logging.c (log_msg):
- va_list 'ap' flagged as uninitialized before va_start
- va_start IS the initialization, but Coverity doesn't understand this
- Restructured early returns and added suppression annotation
Both issues are false positives. The code is correct, but Coverity's
dataflow analysis cannot detect the lock acquisition in the call chain
or understand va_start semantics.
Coverity scan now reports 0 defects (down from 2).
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: e64ba14ea9ce3e9212c9522de66f98ca1dbcb668
https://github.com/kronosnet/kronosnet/commit/e64ba14ea9ce3e9212c9522de66f9…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/threads_rx.c
Log Message:
-----------
Suppress Coverity INCONSISTENT_UNION_ACCESS false positive in threads_rx.c
The PMTUD reply handling in stable1-proposed accesses inbuf->khp_pmtud_size
within a switch/case that ensures it's the correct union field (case
KNET_HEADER_TYPE_PMTUD_REPLY). Coverity incorrectly flags this as
inconsistent with an earlier khp_ping access from a different case.
On main branch, this code was refactored into separate process_pmtud_reply()
function (commit c2520f61 from 2020), which breaks the dataflow path that
confuses Coverity. Since stable1-proposed maintains the original inline
structure, we add a suppression here.
This is a stable1-proposed specific false positive.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 96ab3af93a91dfec07d0dd3d59a2d86e2dcf8251
https://github.com/kronosnet/kronosnet/commit/96ab3af93a91dfec07d0dd3d59a2d…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/libnozzle.c
Log Message:
-----------
libnozzle: use IFF_TUN_EXCL for exclusive TAP device creation
Add IFF_TUN_EXCL flag when creating named TAP devices to prevent race
conditions where another process creates the same device name between
check and creation. Available since Linux 3.4 with graceful fallback.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: ee42ef3d2a0c640a445bd0f66fcfc5228b55f033
https://github.com/kronosnet/kronosnet/commit/ee42ef3d2a0c640a445bd0f66fcfc…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/libnozzle.c
Log Message:
-----------
libnozzle: improve libnl error code translation
Replace generic errno values with proper error code translation from
libnl. Add nlerr_to_errno() helper that maps NLE_* codes to standard
errno values for better diagnostics when netlink operations fail.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 27c21b1ff071c066860012343020c383df503e99
https://github.com/kronosnet/kronosnet/commit/27c21b1ff071c066860012343020c…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/internals.h
M libnozzle/libnozzle.c
Log Message:
-----------
libnozzle: implement FreeBSD native ioctl for IP address management
Replace shell command execution with native ioctl calls using struct in_aliasreq (IPv4) and struct in6_aliasreq (IPv6).
Use separate AF_INET and AF_INET6 sockets for proper address family handling.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: a5d4543aa4cdcc5d3b0fc64fc909dcdaf8181a62
https://github.com/kronosnet/kronosnet/commit/a5d4543aa4cdcc5d3b0fc64fc909d…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/libnozzle.c
Log Message:
-----------
libnozzle: implement Solaris native ioctl for IP address management
Replace shell command execution with native ioctl calls using struct lifreq.
Use per-interface AF_INET and AF_INET6 sockets for IPv4/IPv6 operations.
Set secondary=1 for IPv6 address deletion to match Solaris logical interface semantics.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: c098678dd0c425a01ef18b2e1d108fbdbffa909c
https://github.com/kronosnet/kronosnet/commit/c098678dd0c425a01ef18b2e1d108…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/Makefile.am
M libnozzle/internals.h
M libnozzle/libnozzle.c
A libnozzle/libnozzle_bsd.c
A libnozzle/libnozzle_linux.c
A libnozzle/libnozzle_solaris.c
Log Message:
-----------
libnozzle: refactor platform-specific code into dedicated files
Split platform-specific implementation from libnozzle.c into dedicated
files: libnozzle_linux.c, libnozzle_bsd.c, libnozzle_solaris.c.
Introduce platform abstraction layer with typedefs and macros in internals.h:
- nozzle_ifreq: Platform-specific ifreq structure type
- NOZZLE_SOCKET_DOMAIN: Socket domain for ioctl fd (AF_LOCAL on BSD)
- NOZZLE_IOCTL_FD: File descriptor for ioctl operations
- NOZZLE_SET_MTU: Platform-specific MTU ioctl command
- NOZZLE_IPV6_IS_SECONDARY(domain): IPv6 secondary interface check
This eliminates all platform-specific #ifdef blocks from libnozzle.c,
improving code organization and readability. Platform differences are
now documented in a single location (internals.h and platform-specific
files) rather than scattered throughout the main code.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 457c43187316eb8cdebafa2a134103b48504550e
https://github.com/kronosnet/kronosnet/commit/457c43187316eb8cdebafa2a13410…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/internals.c
M libnozzle/internals.h
M libnozzle/libnozzle_bsd.c
M libnozzle/libnozzle_linux.c
M libnozzle/libnozzle_solaris.c
Log Message:
-----------
libnozzle: refactor IP address helpers to reduce code duplication
Extract common IP address calculation logic from platform-specific functions
into shared helpers. Add _determine_family(), _validate_prefix(),
_ipv4_prefix_to_netmask(), and _ipv6_prefix_to_mask() to internals.c/h.
Include netinet/in.h in both files for struct in6_addr definition.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 31d81d36d28e98d01362a05195b1423de60ab670
https://github.com/kronosnet/kronosnet/commit/31d81d36d28e98d01362a05195b14…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/libnozzle_bsd.c
M libnozzle/libnozzle_linux.c
M libnozzle/libnozzle_solaris.c
Log Message:
-----------
libnozzle: consolidate platform-specific add_ip/del_ip implementations
Consolidate duplicate add/delete logic into platform-specific helpers:
Linux uses _netlink_modify_addr() for netlink operations, BSD uses
_bsd_modify_ipv4/6() for ioctl operations, Solaris uses _solaris_modify_ipv4/6()
with secondary interface support. Eliminates ~80 lines of duplication.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: d71073bf934aace1b3b845feccd94077df941d16
https://github.com/kronosnet/kronosnet/commit/d71073bf934aace1b3b845feccd94…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/tests/Makefile.am
Log Message:
-----------
[tests] Disable parallel execution for libnozzle tests
Add .NOTPARALLEL to prevent tap device resource contention on systems
that are slow to open/close tap devices.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 028a7899002c1f2a455dc73d57cc400f2998a7d2
https://github.com/kronosnet/kronosnet/commit/028a7899002c1f2a455dc73d57cc4…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libnozzle/libnozzle.c
M libnozzle/tests/Makefile.am
A libnozzle/tests/api_nozzle_prefix_validation.c
Log Message:
-----------
libnozzle: add input validation for network prefixes
Replace atoi() with strtol() for network prefix validation to properly detect
invalid input, overflow, and out-of-range values.
Add comprehensive test coverage for prefix validation scenarios.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 28ee22805edf3bf19d2f883f878d9cd55679e998
https://github.com/kronosnet/kronosnet/commit/28ee22805edf3bf19d2f883f878d9…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/threads_pmtud.c
Log Message:
-----------
libknet: force PMTUD rerun after reschedule interruption
When PMTUD is interrupted by a reschedule request (returns EDEADLK),
some links may have been checked while others were skipped. The next
iteration uses the interval timer to decide which links to check, which
means recently-checked links are skipped even if they need a new PMTUD
run (e.g., after reconnection following onwire protocol upgrade).
Fix by setting pmtud_forcerun=1 when the PMTUD thread detects it was
interrupted (errno == EDEADLK). This ensures the next iteration force-runs
PMTUD on all links regardless of the interval timer, completing discovery
on interrupted and skipped links.
This approach respects the 2018 commit d2a6344f design by setting forcerun
in the PMTUD thread itself (after the interrupted iteration completes) rather
than in _pmtud_reschedule() or its callers, avoiding the lock fighting and
scheduling issues that commit addressed.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: e3bea63a1d9c4960096587fff99da0b70822d1b2
https://github.com/kronosnet/kronosnet/commit/e3bea63a1d9c4960096587fff99da…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/Makefile.am
M libknet/tests/api-check.mk
M libknet/tests/api_knet_addrtostr.c
M libknet/tests/api_knet_get_compress_list.c
M libknet/tests/api_knet_get_crypto_list.c
M libknet/tests/api_knet_get_transport_id_by_name.c
M libknet/tests/api_knet_get_transport_list.c
M libknet/tests/api_knet_get_transport_name_by_id.c
M libknet/tests/api_knet_handle_add_datafd.c
M libknet/tests/api_knet_handle_clear_stats.c
M libknet/tests/api_knet_handle_compress.c
M libknet/tests/api_knet_handle_crypto.c
M libknet/tests/api_knet_handle_crypto_rx_clear_traffic.c
M libknet/tests/api_knet_handle_crypto_set_config.c
M libknet/tests/api_knet_handle_crypto_use_config.c
M libknet/tests/api_knet_handle_enable_access_lists.c
M libknet/tests/api_knet_handle_enable_filter.c
M libknet/tests/api_knet_handle_enable_pmtud_notify.c
M libknet/tests/api_knet_handle_enable_sock_notify.c
M libknet/tests/api_knet_handle_free.c
M libknet/tests/api_knet_handle_get_channel.c
M libknet/tests/api_knet_handle_get_datafd.c
M libknet/tests/api_knet_handle_get_stats.c
M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_new.c
M libknet/tests/api_knet_handle_new_limit.c
M libknet/tests/api_knet_handle_pmtud_get.c
M libknet/tests/api_knet_handle_pmtud_getfreq.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_handle_pmtud_setfreq.c
M libknet/tests/api_knet_handle_remove_datafd.c
M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_setfwd.c
M libknet/tests/api_knet_handle_setprio_dscp.c
M libknet/tests/api_knet_host_add.c
M libknet/tests/api_knet_host_enable_status_change_notify.c
M libknet/tests/api_knet_host_get_host_list.c
M libknet/tests/api_knet_host_get_id_by_host_name.c
M libknet/tests/api_knet_host_get_name_by_host_id.c
M libknet/tests/api_knet_host_get_policy.c
M libknet/tests/api_knet_host_get_status.c
M libknet/tests/api_knet_host_remove.c
M libknet/tests/api_knet_host_set_name.c
M libknet/tests/api_knet_host_set_policy.c
M libknet/tests/api_knet_link_add_acl.c
M libknet/tests/api_knet_link_clear_acl.c
M libknet/tests/api_knet_link_clear_config.c
M libknet/tests/api_knet_link_get_config.c
M libknet/tests/api_knet_link_get_enable.c
M libknet/tests/api_knet_link_get_link_list.c
M libknet/tests/api_knet_link_get_ping_timers.c
M libknet/tests/api_knet_link_get_pong_count.c
M libknet/tests/api_knet_link_get_priority.c
M libknet/tests/api_knet_link_get_status.c
M libknet/tests/api_knet_link_insert_acl.c
M libknet/tests/api_knet_link_rm_acl.c
M libknet/tests/api_knet_link_set_config.c
M libknet/tests/api_knet_link_set_enable.c
M libknet/tests/api_knet_link_set_ping_timers.c
M libknet/tests/api_knet_link_set_pong_count.c
M libknet/tests/api_knet_link_set_priority.c
M libknet/tests/api_knet_log_get_loglevel.c
M libknet/tests/api_knet_log_get_loglevel_id.c
M libknet/tests/api_knet_log_get_loglevel_name.c
M libknet/tests/api_knet_log_get_subsystem_id.c
M libknet/tests/api_knet_log_get_subsystem_name.c
M libknet/tests/api_knet_log_set_loglevel.c
M libknet/tests/api_knet_recv.c
M libknet/tests/api_knet_send.c
M libknet/tests/api_knet_send_compress.c
M libknet/tests/api_knet_send_crypto.c
M libknet/tests/api_knet_send_loopback.c
M libknet/tests/api_knet_send_sync.c
M libknet/tests/api_knet_strtoaddr.c
M libknet/tests/fun_acl_check.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/int_links_acl_ip.c
M libknet/tests/int_timediff.c
M libknet/tests/knet_bench.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: migrate to unified logging infrastructure
Convert all 86 tests to start_logging/stop_logging pattern with timestamped
[testsuite] markers. Replace printf() in test functions with log_test().
Remove old logging infrastructure and rename macros to standard names.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: fe081432d8ac4bf82e216cc8cae6f5029e381dc6
https://github.com/kronosnet/kronosnet/commit/fe081432d8ac4bf82e216cc8cae6f…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_addrtostr.c
M libknet/tests/api_knet_get_compress_list.c
M libknet/tests/api_knet_get_crypto_list.c
M libknet/tests/api_knet_get_transport_id_by_name.c
M libknet/tests/api_knet_get_transport_list.c
M libknet/tests/api_knet_get_transport_name_by_id.c
M libknet/tests/api_knet_handle_add_datafd.c
M libknet/tests/api_knet_handle_clear_stats.c
M libknet/tests/api_knet_handle_compress.c
M libknet/tests/api_knet_handle_crypto.c
M libknet/tests/api_knet_handle_crypto_rx_clear_traffic.c
M libknet/tests/api_knet_handle_crypto_set_config.c
M libknet/tests/api_knet_handle_crypto_use_config.c
M libknet/tests/api_knet_handle_enable_access_lists.c
M libknet/tests/api_knet_handle_enable_filter.c
M libknet/tests/api_knet_handle_enable_pmtud_notify.c
M libknet/tests/api_knet_handle_enable_sock_notify.c
M libknet/tests/api_knet_handle_free.c
M libknet/tests/api_knet_handle_get_channel.c
M libknet/tests/api_knet_handle_get_datafd.c
M libknet/tests/api_knet_handle_get_stats.c
M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_new.c
M libknet/tests/api_knet_handle_new_limit.c
M libknet/tests/api_knet_handle_pmtud_get.c
M libknet/tests/api_knet_handle_pmtud_getfreq.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_handle_pmtud_setfreq.c
M libknet/tests/api_knet_handle_remove_datafd.c
M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_setfwd.c
M libknet/tests/api_knet_handle_setprio_dscp.c
M libknet/tests/api_knet_host_add.c
M libknet/tests/api_knet_host_enable_status_change_notify.c
M libknet/tests/api_knet_host_get_host_list.c
M libknet/tests/api_knet_host_get_id_by_host_name.c
M libknet/tests/api_knet_host_get_name_by_host_id.c
M libknet/tests/api_knet_host_get_policy.c
M libknet/tests/api_knet_host_get_status.c
M libknet/tests/api_knet_host_remove.c
M libknet/tests/api_knet_host_set_name.c
M libknet/tests/api_knet_host_set_policy.c
M libknet/tests/api_knet_link_add_acl.c
M libknet/tests/api_knet_link_clear_acl.c
M libknet/tests/api_knet_link_clear_config.c
M libknet/tests/api_knet_link_get_config.c
M libknet/tests/api_knet_link_get_enable.c
M libknet/tests/api_knet_link_get_link_list.c
M libknet/tests/api_knet_link_get_ping_timers.c
M libknet/tests/api_knet_link_get_pong_count.c
M libknet/tests/api_knet_link_get_priority.c
M libknet/tests/api_knet_link_get_status.c
M libknet/tests/api_knet_link_insert_acl.c
M libknet/tests/api_knet_link_rm_acl.c
M libknet/tests/api_knet_link_set_config.c
M libknet/tests/api_knet_link_set_enable.c
M libknet/tests/api_knet_link_set_ping_timers.c
M libknet/tests/api_knet_link_set_pong_count.c
M libknet/tests/api_knet_link_set_priority.c
M libknet/tests/api_knet_log_get_loglevel.c
M libknet/tests/api_knet_log_get_loglevel_id.c
M libknet/tests/api_knet_log_get_loglevel_name.c
M libknet/tests/api_knet_log_get_subsystem_id.c
M libknet/tests/api_knet_log_get_subsystem_name.c
M libknet/tests/api_knet_log_set_loglevel.c
M libknet/tests/api_knet_recv.c
M libknet/tests/api_knet_send.c
M libknet/tests/api_knet_send_compress.c
M libknet/tests/api_knet_send_crypto.c
M libknet/tests/api_knet_send_loopback.c
M libknet/tests/api_knet_send_sync.c
M libknet/tests/api_knet_strtoaddr.c
M libknet/tests/fun_acl_check.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/int_links_acl_ip.c
M libknet/tests/int_timediff.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: standardize test result output with TEST_EXIT macro
Add [PASS]/[FAIL]/[SKIP]/[ERROR] markers to all test output.
Rename CLEAN_EXIT to TEST_EXIT_CLEAN for clarity.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 3455121ab5b08af91c75ec3ba8b522c35b16dd4e
https://github.com/kronosnet/kronosnet/commit/3455121ab5b08af91c75ec3ba8b52…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_handle_add_datafd.c
M libknet/tests/api_knet_handle_clear_stats.c
M libknet/tests/api_knet_handle_compress.c
M libknet/tests/api_knet_handle_crypto.c
M libknet/tests/api_knet_handle_crypto_rx_clear_traffic.c
M libknet/tests/api_knet_handle_crypto_set_config.c
M libknet/tests/api_knet_handle_crypto_use_config.c
M libknet/tests/api_knet_handle_enable_access_lists.c
M libknet/tests/api_knet_handle_enable_filter.c
M libknet/tests/api_knet_handle_enable_pmtud_notify.c
M libknet/tests/api_knet_handle_enable_sock_notify.c
M libknet/tests/api_knet_handle_free.c
M libknet/tests/api_knet_handle_get_channel.c
M libknet/tests/api_knet_handle_get_datafd.c
M libknet/tests/api_knet_handle_get_stats.c
M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_new.c
M libknet/tests/api_knet_handle_pmtud_get.c
M libknet/tests/api_knet_handle_pmtud_getfreq.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_handle_pmtud_setfreq.c
M libknet/tests/api_knet_handle_remove_datafd.c
M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_setfwd.c
M libknet/tests/api_knet_handle_setprio_dscp.c
M libknet/tests/api_knet_host_add.c
M libknet/tests/api_knet_host_enable_status_change_notify.c
M libknet/tests/api_knet_host_get_host_list.c
M libknet/tests/api_knet_host_get_id_by_host_name.c
M libknet/tests/api_knet_host_get_name_by_host_id.c
M libknet/tests/api_knet_host_get_policy.c
M libknet/tests/api_knet_host_get_status.c
M libknet/tests/api_knet_host_remove.c
M libknet/tests/api_knet_host_set_name.c
M libknet/tests/api_knet_host_set_policy.c
M libknet/tests/api_knet_link_add_acl.c
M libknet/tests/api_knet_link_clear_acl.c
M libknet/tests/api_knet_link_clear_config.c
M libknet/tests/api_knet_link_get_config.c
M libknet/tests/api_knet_link_get_enable.c
M libknet/tests/api_knet_link_get_link_list.c
M libknet/tests/api_knet_link_get_ping_timers.c
M libknet/tests/api_knet_link_get_pong_count.c
M libknet/tests/api_knet_link_get_priority.c
M libknet/tests/api_knet_link_get_status.c
M libknet/tests/api_knet_link_insert_acl.c
M libknet/tests/api_knet_link_rm_acl.c
M libknet/tests/api_knet_link_set_config.c
M libknet/tests/api_knet_link_set_enable.c
M libknet/tests/api_knet_link_set_ping_timers.c
M libknet/tests/api_knet_link_set_pong_count.c
M libknet/tests/api_knet_link_set_priority.c
M libknet/tests/api_knet_log_get_loglevel.c
M libknet/tests/api_knet_log_set_loglevel.c
M libknet/tests/api_knet_recv.c
M libknet/tests/api_knet_send.c
M libknet/tests/api_knet_send_compress.c
M libknet/tests/api_knet_send_crypto.c
M libknet/tests/api_knet_send_loopback.c
M libknet/tests/api_knet_send_sync.c
M libknet/tests/fun_acl_check.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/knet_bench.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: rename knet_* test helpers to _ts_knet_* to avoid namespace collision
Rename test suite helpers that wrap libknet API to use _ts_ prefix (test suite)
to clearly distinguish them from the public libknet API functions:
- knet_handle_start → _ts_knet_handle_start
- knet_handle_stop_everything → _ts_knet_handle_stop_everything
- knet_handle_start_nodes → _ts_knet_handle_start_nodes
- knet_handle_join_nodes → _ts_knet_handle_join_nodes
- knet_handle_disconnect_links → _ts_knet_handle_disconnect_links
- knet_handle_reconnect_links → _ts_knet_handle_reconnect_links
- _knet_link_set_config → _ts_knet_link_set_config
This prevents confusion between test infrastructure and library API.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 0a8e4fbebee1aea882e0b17fb7f08cd130a2f542
https://github.com/kronosnet/kronosnet/commit/0a8e4fbebee1aea882e0b17fb7f08…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_handle_free.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_link_set_enable.c
M libknet/tests/api_knet_recv.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/knet_bench.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: improve test infrastructure and fix issues
Standardize test_sleep() to take logfd instead of knet_h.
Fix knet_bench infrastructure.
Remove redundant TESTNODES definitions.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 3487c2529cb2c628ce229ed6bf2cf3c86b37ac3e
https://github.com/kronosnet/kronosnet/commit/3487c2529cb2c628ce229ed6bf2cf…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_handle_add_datafd.c
M libknet/tests/api_knet_handle_clear_stats.c
M libknet/tests/api_knet_handle_compress.c
M libknet/tests/api_knet_handle_crypto.c
M libknet/tests/api_knet_handle_crypto_rx_clear_traffic.c
M libknet/tests/api_knet_handle_crypto_set_config.c
M libknet/tests/api_knet_handle_crypto_use_config.c
M libknet/tests/api_knet_handle_enable_access_lists.c
M libknet/tests/api_knet_handle_enable_filter.c
M libknet/tests/api_knet_handle_enable_pmtud_notify.c
M libknet/tests/api_knet_handle_enable_sock_notify.c
M libknet/tests/api_knet_handle_free.c
M libknet/tests/api_knet_handle_get_channel.c
M libknet/tests/api_knet_handle_get_datafd.c
M libknet/tests/api_knet_handle_get_stats.c
M libknet/tests/api_knet_handle_get_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_pmtud_get.c
M libknet/tests/api_knet_handle_pmtud_getfreq.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_handle_pmtud_setfreq.c
M libknet/tests/api_knet_handle_remove_datafd.c
M libknet/tests/api_knet_handle_set_transport_reconnect_interval.c
M libknet/tests/api_knet_handle_setfwd.c
M libknet/tests/api_knet_handle_setprio_dscp.c
M libknet/tests/api_knet_host_add.c
M libknet/tests/api_knet_host_enable_status_change_notify.c
M libknet/tests/api_knet_host_get_host_list.c
M libknet/tests/api_knet_host_get_id_by_host_name.c
M libknet/tests/api_knet_host_get_name_by_host_id.c
M libknet/tests/api_knet_host_get_policy.c
M libknet/tests/api_knet_host_get_status.c
M libknet/tests/api_knet_host_remove.c
M libknet/tests/api_knet_host_set_name.c
M libknet/tests/api_knet_host_set_policy.c
M libknet/tests/api_knet_link_add_acl.c
M libknet/tests/api_knet_link_clear_acl.c
M libknet/tests/api_knet_link_clear_config.c
M libknet/tests/api_knet_link_get_config.c
M libknet/tests/api_knet_link_get_enable.c
M libknet/tests/api_knet_link_get_link_list.c
M libknet/tests/api_knet_link_get_ping_timers.c
M libknet/tests/api_knet_link_get_pong_count.c
M libknet/tests/api_knet_link_get_priority.c
M libknet/tests/api_knet_link_get_status.c
M libknet/tests/api_knet_link_insert_acl.c
M libknet/tests/api_knet_link_rm_acl.c
M libknet/tests/api_knet_link_set_config.c
M libknet/tests/api_knet_link_set_enable.c
M libknet/tests/api_knet_link_set_ping_timers.c
M libknet/tests/api_knet_link_set_pong_count.c
M libknet/tests/api_knet_link_set_priority.c
M libknet/tests/api_knet_log_get_loglevel.c
M libknet/tests/api_knet_log_set_loglevel.c
M libknet/tests/api_knet_recv.c
M libknet/tests/api_knet_send.c
M libknet/tests/api_knet_send_compress.c
M libknet/tests/api_knet_send_crypto.c
M libknet/tests/api_knet_send_loopback.c
M libknet/tests/api_knet_send_sync.c
M libknet/tests/fun_acl_check.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: improve error handling and use named constants
Add FAIL_ON_SUCCESS macro for consistent API error checking.
Consolidate timeout handling with adjust_timeout_for_valgrind().
Replace magic numbers with TEST_TIMEOUT_* and TEST_PORT_* constants.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 4a835310cc3afb341b7ffd1d0fb67107196e536d
https://github.com/kronosnet/kronosnet/commit/4a835310cc3afb341b7ffd1d0fb67…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_addrtostr.c
M libknet/tests/api_knet_get_compress_list.c
M libknet/tests/api_knet_get_crypto_list.c
M libknet/tests/api_knet_get_transport_list.c
M libknet/tests/api_knet_strtoaddr.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: add NOCLEAN macro variants for tests without knet handles
Add FAIL_ON_ERR_NOCLEAN and FAIL_ON_SUCCESS_NOCLEAN macros for tests
that don't create knet handles and don't need cleanup infrastructure.
Convert 5 API tests to use new macros (11 error checks total):
- api_knet_addrtostr.c (4 checks)
- api_knet_strtoaddr.c (4 checks)
- api_knet_get_compress_list.c (1 check)
- api_knet_get_crypto_list.c (1 check)
- api_knet_get_transport_list.c (1 check)
Reduces test code by 37 lines and improves consistency with other tests.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: d5ee2666a17b2f9b28e760b2a36b3b1b985d34eb
https://github.com/kronosnet/kronosnet/commit/d5ee2666a17b2f9b28e760b2a36b3…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/Makefile.am
M libknet/crypto.c
M libknet/crypto_nss.c
M libknet/libknet.h
M libknet/libknet_exported_syms
M libknet/tests/api-check.mk
A libknet/tests/api_knet_get_crypto_cipher_list.c
A libknet/tests/api_knet_get_crypto_hash_list.c
M man/Makefile.am
Log Message:
-----------
Add API to enumerate supported cipher modes and hash algorithms
Implements issue #478 by introducing two new API functions:
- knet_get_crypto_cipher_list(): Returns AES cipher modes (CBC/CTR)
supported across all crypto backends
- knet_get_crypto_hash_list(): Returns hash algorithms supported
across all crypto backends
Both functions return the intersection of capabilities across OpenSSL,
NSS, and libgcrypt backends. Applications can reliably use any returned
cipher/hash combination regardless of which crypto module is loaded.
The cipher list includes both OpenSSL-style hyphenated names (aes-128-cbc)
and NSS/libgcrypt non-hyphenated names (aes128) as separate entries.
New structures:
- knet_crypto_cipher_info: const char *name, const char *mode, int key_bits
- knet_crypto_hash_info: const char *name, int hash_bits
Updated NSS parser to accept hyphenated CBC cipher names (aes-128-cbc,
aes-192-cbc, aes-256-cbc) in addition to non-hyphenated variants.
Includes comprehensive tests verifying all returned ciphers and hashes
work with all three crypto backends.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 509d714665fb103bab1de630cd82aa3609d83106
https://github.com/kronosnet/kronosnet/commit/509d714665fb103bab1de630cd82a…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/api_knet_get_crypto_cipher_list.c
M libknet/tests/api_knet_get_crypto_hash_list.c
M libknet/tests/api_knet_handle_clear_stats.c
M libknet/tests/api_knet_handle_pmtud_set.c
M libknet/tests/api_knet_recv.c
M libknet/tests/api_knet_send.c
M libknet/tests/api_knet_send_compress.c
M libknet/tests/api_knet_send_crypto.c
M libknet/tests/api_knet_send_loopback.c
M libknet/tests/api_knet_send_sync.c
M libknet/tests/fun_acl_check.c
M libknet/tests/fun_config_crypto.c
M libknet/tests/fun_pmtud_crypto.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: cleanup and add comprehensive documentation
Remove flush_logs(), dead code, and unused FILE parameters.
Add detailed documentation to test-common.h for all macros and helpers.
Port crypto enumeration API tests to new infrastructure.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: aadbe0ac467a376c57c6f23f0016fd8fa5cdadd9
https://github.com/kronosnet/kronosnet/commit/aadbe0ac467a376c57c6f23f0016f…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
tests: export find_plugins_path() for rust bindings
The find_plugins_path() function must be non-static because it is used
by the rust test suite (libknet/bindings/rust/tests/src/bin/set_plugin_path.c).
Changes:
- Remove static qualifier from find_plugins_path() in test-common.c
- Add declaration to test-common.h with updated signature (int logfd)
- Update rust test code to pass STDOUT_FILENO as logfd parameter
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 5fb0fa37832071414af48ab9480214db073cb45b
https://github.com/kronosnet/kronosnet/commit/5fb0fa37832071414af48ab948021…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
[tests] Add runtime log filter callback infrastructure
Add thread-safe log filter callback mechanism for runtime pattern matching
in test logs. The log thread invokes registered callbacks for each log line,
allowing tests to detect specific messages without parsing log files.
Features:
- install_log_filter() to register/unregister callbacks
- check_log_pattern_found() to query if pattern was matched
- Thread-safe via mutex protection
- Callback receives logfd for use with log_test() facility
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 7e8c970f6c66a6dab1a262ef80ddc2bb40bd94c0
https://github.com/kronosnet/kronosnet/commit/7e8c970f6c66a6dab1a262ef80ddc…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/test-common.c
M libknet/tests/test-common.h
Log Message:
-----------
[tests] Add packet injection helper for RX validation testing
Add inject_packet() helper to construct and inject packets directly into
link sockets for testing RX thread validation logic without requiring
network-level packet manipulation.
Supports:
- DATA packets with configurable fragmentation fields
- PING packets with configurable link_id
- Controlled sequence numbers to avoid deduplication
- Tests can forge invalid packets to verify rejection logic
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: fbe5d705ca935a0c887a3763342acc5be782b645
https://github.com/kronosnet/kronosnet/commit/fbe5d705ca935a0c887a3763342ac…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/api_knet_send_loopback.c
Log Message:
-----------
[tests] Use FAIL_ON_* macros consistently in send tests
Replace manual if statement error checking with FAIL_ON_SUCCESS and
FAIL_ON_ERR macros for consistency with the rest of the test suite.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 129995bc96485372b97747d70ef2542046a1bd6c
https://github.com/kronosnet/kronosnet/commit/129995bc96485372b97747d70ef25…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/test-common.c
Log Message:
-----------
[tests] Fix parallel port allocation race in _ts_knet_handle_join_nodes
The existing port allocation used predictable node ID-based calculations,
causing EADDRINUSE errors when tests run in parallel and multiple nodes
try to bind the same port simultaneously.
Implement two-phase port allocation:
- Phase 1: Each node allocates ports by configuring links to a temporary
peer, letting _ts_knet_link_set_config find available ports with proper
EADDRINUSE retry logic
- Phase 2: Reconfigure each link to its actual destination peer, reusing
the src_addr already bound in Phase 1
Requires clearing the configured flag between phases (protected by
global_rwlock) to allow reconfiguring to a different host_id while
keeping the socket bound.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Compare: https://github.com/kronosnet/kronosnet/compare/5c486b57dd8e...129995bc9648
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications