comparison src/event/quic/ngx_event_quic.h @ 8924:d6ef13c5fd8e quic

QUIC: simplified configuration. Directives that set transport parameters are removed from the configuration. Corresponding values are derived from the quic configuration or initialized to default. Whenever possible, quic configuration parameters are taken from higher-level protocol settings, i.e. HTTP/3.
author Vladimir Homutov <vl@nginx.com>
date Mon, 06 Dec 2021 15:19:54 +0300
parents 41caf5410110
children 56dec0d4e5b1
comparison
equal deleted inserted replaced
8923:651cc905b7c2 8924:d6ef13c5fd8e
25 #define NGX_QUIC_MIN_INITIAL_SIZE 1200 25 #define NGX_QUIC_MIN_INITIAL_SIZE 1200
26 26
27 #define NGX_QUIC_STREAM_SERVER_INITIATED 0x01 27 #define NGX_QUIC_STREAM_SERVER_INITIATED 0x01
28 #define NGX_QUIC_STREAM_UNIDIRECTIONAL 0x02 28 #define NGX_QUIC_STREAM_UNIDIRECTIONAL 0x02
29 29
30 #define NGX_QUIC_STREAM_BUFSIZE 65536
31
32
33 typedef struct {
34 /* configurable */
35 ngx_msec_t max_idle_timeout;
36 ngx_msec_t max_ack_delay;
37
38 size_t max_udp_payload_size;
39 size_t initial_max_data;
40 size_t initial_max_stream_data_bidi_local;
41 size_t initial_max_stream_data_bidi_remote;
42 size_t initial_max_stream_data_uni;
43 ngx_uint_t initial_max_streams_bidi;
44 ngx_uint_t initial_max_streams_uni;
45 ngx_uint_t ack_delay_exponent;
46 ngx_uint_t active_connection_id_limit;
47 ngx_flag_t disable_active_migration;
48 ngx_str_t original_dcid;
49 ngx_str_t initial_scid;
50 ngx_str_t retry_scid;
51 u_char sr_token[NGX_QUIC_SR_TOKEN_LEN];
52
53 /* TODO */
54 void *preferred_address;
55 } ngx_quic_tp_t;
56
57 30
58 typedef struct { 31 typedef struct {
59 ngx_ssl_t *ssl; 32 ngx_ssl_t *ssl;
60 ngx_quic_tp_t tp; 33
61 ngx_flag_t retry; 34 ngx_flag_t retry;
62 ngx_flag_t gso_enabled; 35 ngx_flag_t gso_enabled;
36 ngx_flag_t disable_active_migration;
37 ngx_msec_t timeout;
63 ngx_str_t host_key; 38 ngx_str_t host_key;
39 size_t mtu;
40 size_t stream_buffer_size;
41 ngx_uint_t max_concurrent_streams_bidi;
42 ngx_uint_t max_concurrent_streams_uni;
64 ngx_int_t stream_close_code; 43 ngx_int_t stream_close_code;
65 ngx_int_t stream_reject_code_uni; 44 ngx_int_t stream_reject_code_uni;
66 ngx_int_t stream_reject_code_bidi; 45 ngx_int_t stream_reject_code_bidi;
46
67 u_char av_token_key[NGX_QUIC_AV_KEY_LEN]; 47 u_char av_token_key[NGX_QUIC_AV_KEY_LEN];
68 u_char sr_token_key[NGX_QUIC_SR_KEY_LEN]; 48 u_char sr_token_key[NGX_QUIC_SR_KEY_LEN];
69 } ngx_quic_conf_t; 49 } ngx_quic_conf_t;
70 50
71 51