mirror of
https://github.com/nginx/nginx.git
synced 2024-11-27 15:39:01 +08: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);
|
||||
|
||||
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
|
||||
*/
|
||||
ngx_quic_init_rtt(qc);
|
||||
|
||||
qc->pto.log = c->log;
|
||||
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_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 {
|
||||
NGX_QUIC_PATH_IDLE = 0,
|
||||
|
@ -181,6 +181,8 @@ valid:
|
||||
14720));
|
||||
qc->congestion.ssthresh = (size_t) -1;
|
||||
qc->congestion.recovery_start = ngx_current_msec;
|
||||
|
||||
ngx_quic_init_rtt(qc);
|
||||
}
|
||||
|
||||
path->validated = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user