mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-10 13:31:30 +01:00
We want to be able to resend frames from list of frames during handshakes to resend datagrams with the same frames as during the first transmissions. This leads to decrease drasctically the chances of frame fragmentation due to variable lengths of the packet fields. Furthermore the frames were not duplicated when retransmitted from a packet to another one. This must be the case only during packet loss dectection. qc_dup_pkt_frms() is there to duplicate the frames from an input list to an output list. A distinction is made between STREAM frames and the other ones because we can rely on the "acknowledged offset" the aim of which is to track the number of bytes which were acknowledged from TX STREAM frames. qc_release_frm() in addition to release the frame passed as parameter, also mark the duplicate STREAM frames as acknowledeged. qc_send_hdshk_pkts() is the qc_send_app_pkts() counterpart to send datagrams from at most two list of frames to be able to coalesced packets from two different packet number spaces qc_dgrams_retransmit() is there to probe the peer with datagrams depending on the need of the packet number spaces which must be flag with QUIC_FL_PKTNS_PROBE_NEEDED by the PTO timer task (qc_process_timer()).