p-quic/pquic

What are the differences between plugins with & without "cond"

Closed this issue · 2 comments

For provided plugins, there are some with "cond", maybe for "conditional"? but no docs indicated this. What are the differences?
E.g.
plugins/multipath/multipath_rtt_cond.plugin
plugins/multipath/multipath_rtt.plugin

Till now, I just have the experience that these two can't be used -P simultaneously at one client.
rtt_cond.plugin will continue transmitting data until manually shut the progress; while rtt.plugin automatically shuts after some bytes(about 1.25s).

The conditional version (cond) negotiates the extension through transport parameters while the non-conditional one uses the extension without negotiating it. This means that if a PQUIC host with the conditional plugin interacts with another host not supporting multipath, it will fallback to single path QUIC but the connection can continue. With the other version, the PQUIC host will trigger connection errors at the other end (unknown frame types,...). Apart from that, there should not have any difference between them.