comparison src/event/quic/ngx_event_quic.c @ 8696:88c9c868a7c9 quic

QUIC: disabled non-immediate ACKs for Initial and Handshake. As per quic-transport-33: An endpoint MUST acknowledge all ack-eliciting Initial and Handshake packets immediately If a packet carrying Initial or Handshake ACK was lost, a non-immediate ACK should not be sent later. Instead, client is expected to send a new packet to acknowledge. Sending non-immediate ACKs for Initial packets can cause the client to generate an inflated RTT sample.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 04 Feb 2021 20:39:47 +0300
parents 0b3d70fbba99
children faa3201ff351
comparison
equal deleted inserted replaced
8695:0b3d70fbba99 8696:88c9c868a7c9
5525 ngx_queue_remove(&f->queue); 5525 ngx_queue_remove(&f->queue);
5526 5526
5527 switch (f->type) { 5527 switch (f->type) {
5528 case NGX_QUIC_FT_ACK: 5528 case NGX_QUIC_FT_ACK:
5529 case NGX_QUIC_FT_ACK_ECN: 5529 case NGX_QUIC_FT_ACK_ECN:
5530 /* force generation of most recent acknowledgment */ 5530 if (ctx->level == ssl_encryption_application) {
5531 ctx->send_ack = NGX_QUIC_MAX_ACK_GAP; 5531 /* force generation of most recent acknowledgment */
5532 ctx->send_ack = NGX_QUIC_MAX_ACK_GAP;
5533 }
5534
5532 ngx_quic_free_frame(c, f); 5535 ngx_quic_free_frame(c, f);
5533 break; 5536 break;
5534 5537
5535 case NGX_QUIC_FT_PING: 5538 case NGX_QUIC_FT_PING:
5536 case NGX_QUIC_FT_PATH_RESPONSE: 5539 case NGX_QUIC_FT_PATH_RESPONSE: