Branch: refs/heads/stable1-proposed
Home: https://github.com/kronosnet/kronosnet
Commit: 3a3458d9ad0e6b570bb772ecb043e6e9ef1251d1
https://github.com/kronosnet/kronosnet/commit/3a3458d9ad0e6b570bb772ecb043e…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 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: 86dfe50776c1ea81e0836f60c1c91f9c6330cf3e
https://github.com/kronosnet/kronosnet/commit/86dfe50776c1ea81e0836f60c1c91…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 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: d92120bae04afe650ab38037ea24d8e74bbcb0a0
https://github.com/kronosnet/kronosnet/commit/d92120bae04afe650ab38037ea24d…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 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: c3376126f84ac181be7a7b762e44870b1533b86f
https://github.com/kronosnet/kronosnet/commit/c3376126f84ac181be7a7b762e448…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 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: 23b4f48e8f560ed37abcd3d3cf44ab4b7796a5e2
https://github.com/kronosnet/kronosnet/commit/23b4f48e8f560ed37abcd3d3cf44a…
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: 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: 759eb79a782c80c3e155cd472dc8b7de64f86c79
https://github.com/kronosnet/kronosnet/commit/759eb79a782c80c3e155cd472dc8b…
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: 6d2fb417adf5a58ce64b6e106df31efff109454c
https://github.com/kronosnet/kronosnet/commit/6d2fb417adf5a58ce64b6e106df31…
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: 70002eb858664830c67eb543d98447f7275aa30a
https://github.com/kronosnet/kronosnet/commit/70002eb858664830c67eb543d9844…
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: 4b9bdf6a2868103047dcc06191232b67377adf45
https://github.com/kronosnet/kronosnet/commit/4b9bdf6a2868103047dcc06191232…
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>
Commit: 269fb0a55290b4f00cf42a1b7f6c9f163c5ee8cf
https://github.com/kronosnet/kronosnet/commit/269fb0a55290b4f00cf42a1b7f6c9…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/knet_bench.c
Log Message:
-----------
[tests] improve input validation in knet_bench test tool
Replace atoi() with safe_atoi() helper that uses strtol() for proper error
detection. Improves developer experience with better error messages.
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 0432292e6a150a76eb796dd0cdfdee9e916d61a0
https://github.com/kronosnet/kronosnet/commit/0432292e6a150a76eb796dd0cdfde…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-06-06 (Sat, 06 Jun 2026)
Changed paths:
M libknet/tests/Makefile.am
A libknet/tests/int_decompress_bufsize.c
M libknet/tests/test-common.c
M libknet/tests/test-common.h
M libknet/threads_rx.c
Log Message:
-----------
libknet: add decompression buffer size validation
Add validation to reject packets where decompressed size exceeds
KNET_DATABUFSIZE, preventing buffer overflows in decompression.
Add int_decompress_bufsize test that verifies packets with oversized
decompressed payloads are properly rejected with appropriate logging.
Backport notes:
- Adapted for onwire protocol v0 (removed onwire_v1.h include)
- Updated knet_handle_add_datafd call to 3-parameter stable1 API
- Added zlib_LIBS to test LDADD for direct zlib function calls
- Updated inject_packet to use KNET_HEADER_VERSION constant
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/129995bc9648...0432292e6a15
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications
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