Branch: refs/heads/fix-thread-pmtud-race
Home: https://github.com/kronosnet/kronosnet
Commit: 30865b9921cab7657fd74df65d22d96add7b3e26
https://github.com/kronosnet/kronosnet/commit/30865b9921cab7657fd74df65d22d…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-16 (Sat, 16 May 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: 1a92d58e85668e6ffc5c9a4b5c9c4a087429a0b0
https://github.com/kronosnet/kronosnet/commit/1a92d58e85668e6ffc5c9a4b5c9c4…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-16 (Sat, 16 May 2026)
Changed paths:
M libknet/tests/fun_onwire_upgrade.c
Log Message:
-----------
tests: fix race condition in fun_onwire_upgrade test
Add proper locking in upgrade_onwire_max_ver() to prevent race between
test modifications of onwire_min_ver/onwire_max_ver and RX threads reading
these values. RX threads hold global_rwlock during packet processing and
check version fields without explicit synchronization, causing flaky test
failures on FreeBSD when RX threads see stale values.
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/4a3f496cd675...1a92d58e8566
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications
Branch: refs/heads/main
Home: https://github.com/kronosnet/kronosnet
Commit: 89aab75491482b7caa0c01f559aae1ac385db6a0
https://github.com/kronosnet/kronosnet/commit/89aab75491482b7caa0c01f559aae…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-15 (Fri, 15 May 2026)
Changed paths:
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: aa05e170b71ec5b9c7a0925a788ce95b83d62818
https://github.com/kronosnet/kronosnet/commit/aa05e170b71ec5b9c7a0925a788ce…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-15 (Fri, 15 May 2026)
Changed paths:
M libknet/bindings/rust/src/knet_bindings.rs
M libknet/bindings/rust/tests/src/bin/knet-test.rs
Log Message:
-----------
libknet: add Rust bindings for crypto cipher and hash enumeration API
Add wrapper functions for knet_get_crypto_cipher_list() and
knet_get_crypto_hash_list() to expose the new C API to Rust applications.
Include tests in knet-test binary to verify the bindings work correctly.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)kronosnet.org>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: cf49f5874d33bdfef0d073d802a61c7cf1fc73d6
https://github.com/kronosnet/kronosnet/commit/cf49f5874d33bdfef0d073d802a61…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-15 (Fri, 15 May 2026)
Changed paths:
M libknet/bindings/rust/src/knet_bindings.rs
Log Message:
-----------
libknet: fix Rust bindings error handling to propagate errors properly
Change Info::new() methods to return Result<T> instead of converting
errors to strings. Fix applies to CryptoInfo, CompressInfo,
CryptoCipherInfo, CryptoHashInfo, and TransportInfo.
Signed-off-by: Fabio M. Di Nitto <fabbione(a)fabbione.net>
Co-Authored-By: Claude Sonnet 4.5 <noreply(a)anthropic.com>
Commit: 1216e98fa4aada18b2561bf299efc819c23730a5
https://github.com/kronosnet/kronosnet/commit/1216e98fa4aada18b2561bf299efc…
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2026-05-16 (Sat, 16 May 2026)
Changed paths:
M libknet/bindings/rust/src/knet_bindings.rs
M libknet/bindings/rust/tests/src/bin/knet-test.rs
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:
-----------
Merge pull request #479 from kronosnet/add-crypto-enumeration-api
Add API to enumerate supported cipher modes and hash algorithms
Compare: https://github.com/kronosnet/kronosnet/compare/bc798586b21a...1216e98fa4aa
To unsubscribe from these emails, change your notification settings at https://github.com/kronosnet/kronosnet/settings/notifications