Skip to content

Robotweax SRT 0.2.6 — Performance Optimization

Latest

Choose a tag to compare

@SRTPioneer SRTPioneer released this 26 Sep 15:51
50cba37

Robotweax SRT 0.2.6 — Performance Optimization

Status: Released — final tag CI and signed Windows SDK qualification passed.

Project version: 0.2.6. Shared-library C ABI line: 0.2.
Compatible SRT API and srt_getversion(): 1.5.7. This is an implementation
release, not a new SRT wire-protocol version. Default OpenSSL/AES-CTR behavior
and the default-off AES-GCM extension remain unchanged.

Runtime and storage changes

  • Track the next original send packet with a cursor instead of repeatedly
    scanning the unacknowledged prefix; compact retired receive-loss prefixes once.
  • Retry transient UDP send backpressure with bounded pending datagrams. Commit
    pacing and send bookkeeping after successful submission, retaining protected
    retransmission bytes and rejecting stale ACKed or expired data retries.
  • Bound per-channel receive, send and connection-poll work. Rotate connection
    visits while preserving absolute deadlines across continuations.
  • Park quiet channels on a shared socket-readiness watcher while preserving
    protocol deadlines and timer fallback. Coalesce application receive-release
    notifications and avoid immediate continuation after drained UDP input.
  • Retire native readiness polls before closing UDP sockets so rapid listener
    restarts can immediately reuse the port.
  • Use targeted readiness notifications and cached epoll state in the normal
    established-socket path; preserve group, edge-trigger and terminal events.
  • Separate payload storage from packet metadata. Reserve the configured capacity
    up front, touch payload pages as used, and recycle payload indices independently
    of the sequence ring. Capacity is not reduced; pages are not decommitted after
    a traffic peak, and full occupancy still needs the full reservation.
  • Reuse idle connect-callback workers. Retire the callback service before joining
    workers outside the runtime-generation lock, allowing reentrant TLS cleanup.
  • Assign channel affinity only when a start actually activates a channel.
    Remove the redundant timer-cancellation notification; new tasks/timers and
    shutdown continue to signal. No CPU gain is claimed for that last cleanup.
  • Honor positive Live MAXBW as an absolute rate; input-rate estimation and
    overhead apply to relative mode. Clarify File-bandwidth and group-error
    measurements and enforce benchmark deadlines during application-window waits.

See performance measurement, payload storage,
UDP backpressure, channel fairness,
idle readiness, epoll readiness and
loss-list compaction for contracts and test scope.

Compatibility and upgrading

The public C export inventory is unchanged from 0.2.5; the intended C ABI line
remains 0.2. Configured packet capacity,
message/stream modes, encryption, recovery and socket-option support are not
intentionally narrowed by these changes. Existing support boundaries remain in
the compatibility matrix.

Rebuild consumers of the source-tree C++ interfaces with matching headers and
library. SendBuffer, ReceiveBuffer and ReliabilitySession layouts/signatures
changed; matching C exports do not establish C++ binary compatibility. These
implementation headers are not the installed public C API.

Qualification and limits

Release tag v0.2.6 points to 50cba37bc89f423ee7c0a292c3c3eae71b5fc7f9.
The final tag CI
passed its required gate, platform builds, sanitizers, selected Haivision SRT
1.5.7 interoperability profiles, installed consumers, ABI checks and application
integrations. The optional Live timing interoperability job was skipped; this
release does not claim a new result for that profile.

The Windows SDK workflow
passed build, installer, coexistence, signing and signed-installer validation.
The final upload job
reverified both signatures and the checksum manifest. All three uploaded assets
were downloaded and compared byte-for-byte with the qualified signed artifact.

The immutable package source is 7ecb60ea8b4faca01ed86237b0cc9dc906350f6e;
subsequent commits contain package metadata and release documentation, with
unchanged runtime code. Package-manager qualification,
Ubuntu/Fedora package qualification
and the Homebrew bottle build
passed for this corrected source. The Homebrew tap
now provides 0.2.6, including the qualified
Apple Silicon macOS 15 bottle.
These checks do not constitute PPA/COPR publication or an upgrade/rollback guarantee.

A functional transfer at a fixed offered rate is not a maximum-capacity result.
Performance depends on role, occupancy, pacing, encryption, loss, operating
system and workload. Fewer threads do not by themselves guarantee less CPU or
memory. No universal throughput, latency, CPU or RSS improvement is promised.
Shared-listener parallelism, receive syscall batching, callback failure fallback
and reordering-tolerance changes are not part of this release's new guarantees.
Independent cryptographic review remains outstanding.

Windows SDK downloads

Both installers are Authenticode-signed by Robotweax GmbH with trusted
timestamps. Third-party application binaries are not included.

5f3bec9aca5b300cd47f027e6673b93ed5c75e9b153742d9bb8fe5b74beee5bf  robotweax-srt-0.2.6-windows-sdk-openssl.exe
c16767db3f56a5f9e3ae31351ee3c65d575cf80e8564cebe697ceb18b263dc3d  robotweax-srt-0.2.6-windows-sdk-bcrypt.exe

Pre-publication corrections

Earlier candidates exposed installed-documentation link errors and a rapid
GStreamer listener restart race. PR #76
and PR #77 corrected those issues;
PR #78 updated and requalified the
immutable package sources. Explicitly approved tag corrections occurred before
publication, with release-tag protection immediately restored. The earlier
affected draft installers were backed up and replaced by the qualified pair.
The upload-name collision was resolved by repeating only the upload job;
no rebuild or repeat signing was required. Original failures remain recorded,
and deliberately cancelled duplicate package runs are not counted as passes.