OpenCyphal / libudpard

A compact implementation of the Cyphal/UDP protocol in C for high-integrity real-time embedded systems
MIT License
10 stars 8 forks source link

The implemented transfer deduplication algorithm is suboptimal for monotonic transfer-ID #10

Closed pavel-kirienko closed 1 year ago

pavel-kirienko commented 1 year ago

Please see this for background: https://pycyphal.readthedocs.io/en/stable/api/pycyphal.transport.redundant.html#reception

Currently, libudpard implements the cyclic transfer-ID deduplication policy, which works but introduces an unnecessary fail-over delay shall one transport fail.

The monotonic transfer-ID deduplication policy always picks the first transfer to arrive regardless of which interface it arrived from. This approach eliminates the fail-over delay and guarantees that the redundant transport operates with the latency of the fastest underlying transport.

image