diff options
| author | Vladimir Homutov <vl@nginx.com> | 2021-12-06 15:19:54 +0300 |
|---|---|---|
| committer | Vladimir Homutov <vl@nginx.com> | 2021-12-06 15:19:54 +0300 |
| commit | 0791b508807eac65681c9c33d27acece67a9a421 (patch) | |
| tree | 291c7bae689b2ec757c09a6764790de122cbd66a /src/event/quic/ngx_event_quic_transport.c | |
| parent | 835854520a07adf6e3bedfad486a92cecdcd33ac (diff) | |
| download | nginx-0791b508807eac65681c9c33d27acece67a9a421.tar.gz nginx-0791b508807eac65681c9c33d27acece67a9a421.tar.bz2 | |
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.
Diffstat (limited to 'src/event/quic/ngx_event_quic_transport.c')
| -rw-r--r-- | src/event/quic/ngx_event_quic_transport.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/event/quic/ngx_event_quic_transport.c b/src/event/quic/ngx_event_quic_transport.c index c39d1094c..0ff42de2d 100644 --- a/src/event/quic/ngx_event_quic_transport.c +++ b/src/event/quic/ngx_event_quic_transport.c @@ -1937,6 +1937,50 @@ ngx_quic_create_retire_connection_id(u_char *p, } +ngx_int_t +ngx_quic_init_transport_params(ngx_quic_tp_t *tp, ngx_quic_conf_t *qcf) +{ + ngx_uint_t nstreams; + + ngx_memzero(tp, sizeof(ngx_quic_tp_t)); + + /* + * set by ngx_memzero(): + * + * tp->disable_active_migration = 0; + * tp->original_dcid = { 0, NULL }; + * tp->initial_scid = { 0, NULL }; + * tp->retry_scid = { 0, NULL }; + * tp->sr_token = { 0 } + * tp->sr_enabled = 0 + * tp->preferred_address = NULL + */ + + tp->max_idle_timeout = qcf->timeout; + + tp->max_udp_payload_size = qcf->mtu; + + nstreams = qcf->max_concurrent_streams_bidi + + qcf->max_concurrent_streams_uni; + + tp->initial_max_data = nstreams * qcf->stream_buffer_size; + tp->initial_max_stream_data_bidi_local = qcf->stream_buffer_size; + tp->initial_max_stream_data_bidi_remote = qcf->stream_buffer_size; + tp->initial_max_stream_data_uni = qcf->stream_buffer_size; + + tp->initial_max_streams_bidi = qcf->max_concurrent_streams_bidi; + tp->initial_max_streams_uni = qcf->max_concurrent_streams_uni; + + tp->max_ack_delay = NGX_QUIC_DEFAULT_MAX_ACK_DELAY; + tp->ack_delay_exponent = NGX_QUIC_DEFAULT_ACK_DELAY_EXPONENT; + + tp->active_connection_id_limit = 2; + tp->disable_active_migration = qcf->disable_active_migration; + + return NGX_OK; +} + + ssize_t ngx_quic_create_transport_params(u_char *pos, u_char *end, ngx_quic_tp_t *tp, size_t *clen) |
