aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2020-08-19 13:24:54 +0300
committerSergey Kandaurov <pluknet@nginx.com>2020-08-19 13:24:54 +0300
commitf760147d9de72bf162d354807dc8b16522d9433c (patch)
tree84b0a31abd71f625eb4610f3dd6f0971060ed994 /src
parent3b83a140ff2710911f6f3251e0d3a7f1ec3f1ac0 (diff)
downloadnginx-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.c16
-rw-r--r--src/event/ngx_event_quic.h4
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