]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: quic: implement poller subscribe on sendto error
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 28 Feb 2023 14:11:09 +0000 (15:11 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 1 Mar 2023 13:32:37 +0000 (14:32 +0100)
commite1a0ee3cf6bd1487b17cfd134b6731c18452a832
tree18249ab9266961045e35f543cb77c679276eea0c
parent147862de6199542fa95f2203ec7617e61de9e181
MEDIUM: quic: implement poller subscribe on sendto error

On sendto() transient error, prior to this patch sending was simulated
and we relied on retransmission to retry sending. This could hurt
significantly the performance.

Thanks to quic-conn owned socket support, it is now possible to improve
this. On transient error, sending is interrupted and quic-conn socket FD
is subscribed on the poller for sending. When send is possible,
quic_conn_sock_fd_iocb() will be in charge of restart sending.

A consequence of this change is on the return value of qc_send_ppkts().
This function will now return 0 on transient error if quic-conn has its
owned socket. This is used to interrupt sending in the calling function.
The flag QUIC_FL_CONN_TO_KILL must be checked to differentiate a fatal
error from a transient one.

This should be backported up to 2.7.
doc/configuration.txt
src/quic_conn.c
src/quic_sock.c