diff options
author | Sergey Kandaurov <pluknet@nginx.com> | 2020-08-19 13:24:54 +0300 |
---|---|---|
committer | Sergey Kandaurov <pluknet@nginx.com> | 2020-08-19 13:24:54 +0300 |
commit | f760147d9de72bf162d354807dc8b16522d9433c (patch) | |
tree | 84b0a31abd71f625eb4610f3dd6f0971060ed994 /src | |
parent | 3b83a140ff2710911f6f3251e0d3a7f1ec3f1ac0 (diff) | |
download | nginx-f760147d9de72bf162d354807dc8b16522d9433c.tar.gz nginx-f760147d9de72bf162d354807dc8b16522d9433c.zip |
QUIC: do not artificially delay sending queued frames.
This interacts badly with retransmissions of lost packets
and can provoke spurious client retransmits.
Diffstat (limited to 'src')
-rw-r--r-- | src/event/ngx_event_quic.c | 16 | ||||
-rw-r--r-- | src/event/ngx_event_quic.h | 4 |
2 files changed, 1 insertions, 19 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c index ef57f6cad..5a049ed3f 100644 --- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -84,8 +84,6 @@ typedef struct { ngx_queue_t frames; ngx_queue_t sent; - - size_t frames_len; } ngx_quic_send_ctx_t; @@ -3351,22 +3349,11 @@ ngx_quic_queue_frame(ngx_quic_connection_t *qc, ngx_quic_frame_t *frame) frame->len = ngx_quic_create_frame(NULL, frame); /* always succeeds */ - ctx->frames_len += frame->len; - if (qc->closing) { return; } - /* TODO: TCP_NODELAY analogue ? TCP_CORK and others... */ - - if (ctx->frames_len < NGX_QUIC_MIN_DATA_NODELAY) { - if (!qc->push.timer_set) { - ngx_add_timer(&qc->push, qc->tp.max_ack_delay); - } - - } else { - ngx_post_event(&qc->push, &ngx_posted_events); - } + ngx_post_event(&qc->push, &ngx_posted_events); } @@ -3463,7 +3450,6 @@ ngx_quic_output_frames(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx) ngx_queue_remove(&f->queue); ngx_queue_insert_tail(&range, &f->queue); - ctx->frames_len -= f->len; len += f->len; diff --git a/src/event/ngx_event_quic.h b/src/event/ngx_event_quic.h index 2d43defef..9646b03ac 100644 --- a/src/event/ngx_event_quic.h +++ b/src/event/ngx_event_quic.h @@ -49,10 +49,6 @@ #define NGX_QUIC_MIN_INITIAL_SIZE 1200 -/* if we have so much data, send immediately */ -/* TODO: configurable ? */ -#define NGX_QUIC_MIN_DATA_NODELAY 512 /* bytes */ - #define NGX_QUIC_STREAM_SERVER_INITIATED 0x01 #define NGX_QUIC_STREAM_UNIDIRECTIONAL 0x02 |