This release significantly improves the core Transport handling of RNS, with a priority-based ingress queue backend, substantially improved efficiency of both data and management traffic handling, more efficient ingress/egress limiting, and a long list of other improvements and bugfixes.
Changes
- Added ability to include operator LXMF address in interface discovery information
- Added prioritized inbound traffic processing to the transport core
- Added configurable inbound queue lengths for data, announce, path request and ingress limited traffic
- Added early filtering for inbound traffic and improved filtering performance
- Added per-interface protocol violation tracking
- Added in-flight path requests tracking
- Added request and response batching for in-flight path requests
- Added ability to signal blackholed status in announce validation return to the API
- Added full link MDU utilization for
ChannelandBuffer - Added inbound queue pressure and queue drop statistics to
rnstatus - Added detailed announce and path request traffic flow statistics per interface to
rnstatus - Added total announce and PR count/frequency stats per interface to
rnstatus - Added data flow speed and composition stats to
rnstatus - Added protocol violation stats to
rnstatus - Added active link statistics to
rnstatus - Added blocked IP listings to
rnstatus - Added medium bitrate based timeout calculation helpers and RPC functions, by Zenith
- Added extra timeout for discovery path requests when slow interfaces are online, by Zenith
- Added adaptive timeouts to
rncp,rnpath,rnprobeandrnx, by Zenith - Added adaptive timeout calculation to
rngit, by Zenith - Improved overall Transport inbound processing speed
- Improved path request handling significantly
- Improved path request ingress limiting and accounting
- Improved egress limiting responsiveness under high incoming path request load
- Improved transport background job processing
- Improved early rejection of packets with excessive hop counts
- Fixed
BackboneInterfaceEPOLL receive starvation and ingress control timestamp handling, by JRG - Fixed potential transport deadlock on receipts lock when callbacks sends packets, by JRG
- Fixed transport state handling edge cases in path request, announce queue and pending link processing, by JRG
- Fixed link watchdog not resetting on receive exceptions, by JRG
- Fixed
Resourcecancellation on multi-segment resources, by JRG - Fixed
Resourcetransfer part index alignment and rebinding, by JRG - Fixed stale BLE device reference in
RNodeInterface, by JRG - Fixed ratchet cleaning retained preservation, by JRG
- Fixed invalid
rnstatusstatistics handling, by JRG - Fixed various bugs in packet, link and interface handling, by JRG
- Fixed per-interface burst count inconsistencies in
rnstatusoutput - Fixed
rngitfile resource operations failing on Windows - Fixed
rnodeconfconfig summary incorrectly displaying WiFi mode - Fixed speedtest example aborting transfers on stale link status
- Updated documentation, including manual sections on queue tuning and interface discovery options
Verified Retrieval
You can retrieve and verify this release over Reticulum using the built-in rngit release utility. To retrieve only the installation .whl package, and the release manifest for future updates, you can use:
rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum fetch "latest:rns-*.whl" --signer bc7291552be7a58f361522990465165cTo download all artifacts, including the documentation and source archive, you can use the following command:
rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum fetch latest:all --signer bc7291552be7a58f361522990465165cRelease Signatures
Release artifacts include a signed rsm release manifest and rsg signature files that can be validated against the RNS release signing identity <bc7291552be7a58f361522990465165c> using rngit or rnid. To perform an offline verification of all release artifacts using a manifest:
rngit release rns_*.rsm verify --signer bc7291552be7a58f361522990465165cTo verify release artifacts using individual rsg files, while also verifying the manifest itself, download the rsm and rsg signatures, make sure they are in the same folder as the release artifact, and run rnid signature verification with the release identity as the required signer:
rnid -i bc7291552be7a58f361522990465165c -V rns_*.rsm *.rsgThe rnid utility will then verify the signatures, and display whether they are valid. If the signature cannot be verified, the release has been tampered with and should be discarded.