refactor ngx_quic_send_ctx_t?

Yu Zhu pl080516 at
Tue Oct 24 04:15:34 UTC 2023


nginx quic splits 4-tuple into ngx_quic_socket_t for receiving packets and
ngx_quic_path_t for sending packets.

nginx also has struct ngx_quic_send_ctx_t for parsing received packets and
assembling the packet to be sent. So, shall we split ngx_quic_send_ctx_t
based on rx and tx?


enum ssl_encryption_level_t level;

ngx_quic_buffer_t crypto;
uint64_t crypto_sent;
uint64_t largest_ack; /* received from peer */

uint64_t pnum; /* to be sent */
ngx_queue_t frames; /* generated frames */
ngx_queue_t sending; /* frames assigned to pkt */
ngx_queue_t sent; /* frames waiting ACK */


enum ssl_encryption_level_t level;
uint64_t largest_pn; /* received from peer */
uint64_t pending_ack; /* non sent ack-eliciting */
uint64_t largest_range;
uint64_t first_range;
ngx_msec_t largest_received;
ngx_msec_t ack_delay_start;
ngx_uint_t nranges;
ngx_quic_ack_range_t ranges[NGX_QUIC_MAX_RANGES];
ngx_uint_t send_ack;

Best regards
Yu Zhu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx-devel mailing list