neqo icon indicating copy to clipboard operation
neqo copied to clipboard

support RFC9000 max_idle_timeout=0

Open marcblanchet opened this issue 2 years ago • 1 comments

RFC9000 " max_idle_timeout (0x01): The maximum idle timeout is a value in milliseconds that is encoded as an integer; see (Section 10.1). Idle timeout is disabled when both endpoints omit this transport parameter or specify a value of 0."

This is currently unsupported. It may be very useful for high latency or delay networks where, instead of increasing the max_idle_timeout to very large values and having all sorts of side effects, it may be more useful to support this feature.

marcblanchet avatar Jan 17 '23 14:01 marcblanchet

This is really a feature request for an unbounded idle timeout. That's a reasonable request. I'd be happy to review a change where the configuration was changed and we disabled the idle timeout as a result. The server side of this might have some surprises for us, but I don't foresee many problems.

Implementation-wise, the biggest question is whether we recognize Duration::from_xxx(0)/Duration::new(0, 0) as special and disable the timeout, or whether we move to Option<Duration>. The former might be easier.

martinthomson avatar Jan 17 '23 23:01 martinthomson