mirror of
https://github.com/nginx/nginx.git
synced 2024-11-21 16:28:40 +00:00
QUIC: reset RTT estimator for the new path.
RTT is a property of the path, it must be reset on confirming a peer's ownership of its new address.
This commit is contained in:
parent
c1efb3a725
commit
4ee2a48f3f
@ -260,14 +260,7 @@ ngx_quic_new_connection(ngx_connection_t *c, ngx_quic_conf_t *conf,
|
|||||||
|
|
||||||
ngx_queue_init(&qc->free_frames);
|
ngx_queue_init(&qc->free_frames);
|
||||||
|
|
||||||
qc->avg_rtt = NGX_QUIC_INITIAL_RTT;
|
ngx_quic_init_rtt(qc);
|
||||||
qc->rttvar = NGX_QUIC_INITIAL_RTT / 2;
|
|
||||||
qc->min_rtt = NGX_TIMER_INFINITE;
|
|
||||||
qc->first_rtt = NGX_TIMER_INFINITE;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* qc->latest_rtt = 0
|
|
||||||
*/
|
|
||||||
|
|
||||||
qc->pto.log = c->log;
|
qc->pto.log = c->log;
|
||||||
qc->pto.data = c;
|
qc->pto.data = c;
|
||||||
|
@ -65,6 +65,13 @@ typedef struct ngx_quic_keys_s ngx_quic_keys_t;
|
|||||||
|
|
||||||
#define ngx_quic_get_socket(c) ((ngx_quic_socket_t *)((c)->udp))
|
#define ngx_quic_get_socket(c) ((ngx_quic_socket_t *)((c)->udp))
|
||||||
|
|
||||||
|
#define ngx_quic_init_rtt(qc) \
|
||||||
|
(qc)->avg_rtt = NGX_QUIC_INITIAL_RTT; \
|
||||||
|
(qc)->rttvar = NGX_QUIC_INITIAL_RTT / 2; \
|
||||||
|
(qc)->min_rtt = NGX_TIMER_INFINITE; \
|
||||||
|
(qc)->first_rtt = NGX_TIMER_INFINITE; \
|
||||||
|
(qc)->latest_rtt = 0;
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NGX_QUIC_PATH_IDLE = 0,
|
NGX_QUIC_PATH_IDLE = 0,
|
||||||
|
@ -181,6 +181,8 @@ valid:
|
|||||||
14720));
|
14720));
|
||||||
qc->congestion.ssthresh = (size_t) -1;
|
qc->congestion.ssthresh = (size_t) -1;
|
||||||
qc->congestion.recovery_start = ngx_current_msec;
|
qc->congestion.recovery_start = ngx_current_msec;
|
||||||
|
|
||||||
|
ngx_quic_init_rtt(qc);
|
||||||
}
|
}
|
||||||
|
|
||||||
path->validated = 1;
|
path->validated = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user