You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm currently working on congestion control & loss dection. I'm basing my work on draft-ietf-quic-recovery-06 [1].
Progress can be somewhat followed in [2].
@ekr, what do you think of the idea to split up the outputClearQ and the outputProtectedQ in to two queues each: outputClearQ and outstandingClearQ. When frames are handed off by the stream to the connection, they are placed in outputClearQ. When they are transmitted, they are moved to outstandingClearQ. When the loss detector considers them lost, they are moved back to outputClearQ, and when they are acked they are removed from both queues. That way sendQueuedFrames() (which I splitted of from queueStreamFrames) does not have to iterate through the output queue to find packets that it can transmit. It can just take the top ones from outputClearQ.
To make things more efficient we could maybe also add a map[pn][]*frame kind of structure tracking which frames a packet contains. That way the loss detector & ack handler don't have to do lengthy linear searches to find the frames corresponding to a packet. We could then also remove that info from the frame struct.
I'm currently working on congestion control & loss dection. I'm basing my work on draft-ietf-quic-recovery-06 [1].
Progress can be somewhat followed in [2].
[1] https://tools.ietf.org/html/draft-ietf-quic-recovery-06
[2] https://github.com/pietdevaere/minq/tree/congestion_control
The text was updated successfully, but these errors were encountered: