Mercurial > hg > nginx
comparison src/event/quic/ngx_event_quic_migration.h @ 9147:58afcd72446f
QUIC: path MTU discovery.
MTU selection starts by doubling the initial MTU until the first failure.
Then binary search is used to find the path MTU.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Mon, 14 Aug 2023 09:21:27 +0400 |
parents | bba136612fe4 |
children | cc16989c6d61 |
comparison
equal
deleted
inserted
replaced
9146:f3412ec3b6d1 | 9147:58afcd72446f |
---|---|
16 #define NGX_QUIC_PATH_PROBE 0 | 16 #define NGX_QUIC_PATH_PROBE 0 |
17 #define NGX_QUIC_PATH_ACTIVE 1 | 17 #define NGX_QUIC_PATH_ACTIVE 1 |
18 #define NGX_QUIC_PATH_BACKUP 2 | 18 #define NGX_QUIC_PATH_BACKUP 2 |
19 | 19 |
20 #define ngx_quic_path_dbg(c, msg, path) \ | 20 #define ngx_quic_path_dbg(c, msg, path) \ |
21 ngx_log_debug6(NGX_LOG_DEBUG_EVENT, c->log, 0, \ | 21 ngx_log_debug7(NGX_LOG_DEBUG_EVENT, c->log, 0, \ |
22 "quic path seq:%uL %s sent:%O recvd:%O state:%s%s", \ | 22 "quic path seq:%uL %s tx:%O rx:%O valid:%ui st:%d mtu:%uz",\ |
23 path->seqnum, msg, path->sent, path->received, \ | 23 path->seqnum, msg, path->sent, path->received, \ |
24 path->validated ? "V": "N", path->validating ? "R": ""); | 24 path->validated, path->state, path->mtu); |
25 | 25 |
26 ngx_int_t ngx_quic_handle_path_challenge_frame(ngx_connection_t *c, | 26 ngx_int_t ngx_quic_handle_path_challenge_frame(ngx_connection_t *c, |
27 ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f); | 27 ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f); |
28 ngx_int_t ngx_quic_handle_path_response_frame(ngx_connection_t *c, | 28 ngx_int_t ngx_quic_handle_path_response_frame(ngx_connection_t *c, |
29 ngx_quic_path_challenge_frame_t *f); | 29 ngx_quic_path_challenge_frame_t *f); |
34 | 34 |
35 ngx_int_t ngx_quic_set_path(ngx_connection_t *c, ngx_quic_header_t *pkt); | 35 ngx_int_t ngx_quic_set_path(ngx_connection_t *c, ngx_quic_header_t *pkt); |
36 ngx_int_t ngx_quic_handle_migration(ngx_connection_t *c, | 36 ngx_int_t ngx_quic_handle_migration(ngx_connection_t *c, |
37 ngx_quic_header_t *pkt); | 37 ngx_quic_header_t *pkt); |
38 | 38 |
39 void ngx_quic_path_validation_handler(ngx_event_t *ev); | 39 void ngx_quic_path_handler(ngx_event_t *ev); |
40 | |
41 void ngx_quic_discover_path_mtu(ngx_connection_t *c, ngx_quic_path_t *path); | |
42 ngx_int_t ngx_quic_handle_path_mtu(ngx_connection_t *c, | |
43 ngx_quic_path_t *path, uint64_t min, uint64_t max); | |
40 | 44 |
41 #endif /* _NGX_EVENT_QUIC_MIGRATION_H_INCLUDED_ */ | 45 #endif /* _NGX_EVENT_QUIC_MIGRATION_H_INCLUDED_ */ |