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

txAVLPredicate causes an inner priority inversion in the tx queue #32

Closed pavel-kirienko closed 10 months ago

pavel-kirienko commented 1 year ago

Frames are prioritized based on the transfer ID here with no respect for their session ID. This condition is not actually needed because AVL ordering is stable -- items that compare equal retain FIFO ordering

https://github.com/OpenCyphal-Garage/libudpard/blob/32ff7e94b6f8a5f57c6c5722f80043e4be8ccd87/libudpard/udpard.c#L395C23-L410

thirtytwobits commented 1 year ago

Does this affect libcanard too?

pavel-kirienko commented 1 year ago

no