comparison src/event/quic/ngx_event_quic_transport.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 50d73bf20e73
children 1e2f4e9c8195
comparison
equal deleted inserted replaced
8923:651cc905b7c2 8924:d6ef13c5fd8e
336 unsigned retried:1; 336 unsigned retried:1;
337 unsigned first:1; 337 unsigned first:1;
338 } ngx_quic_header_t; 338 } ngx_quic_header_t;
339 339
340 340
341 typedef struct {
342 ngx_msec_t max_idle_timeout;
343 ngx_msec_t max_ack_delay;
344
345 size_t max_udp_payload_size;
346 size_t initial_max_data;
347 size_t initial_max_stream_data_bidi_local;
348 size_t initial_max_stream_data_bidi_remote;
349 size_t initial_max_stream_data_uni;
350 ngx_uint_t initial_max_streams_bidi;
351 ngx_uint_t initial_max_streams_uni;
352 ngx_uint_t ack_delay_exponent;
353 ngx_uint_t active_connection_id_limit;
354 ngx_flag_t disable_active_migration;
355
356 ngx_str_t original_dcid;
357 ngx_str_t initial_scid;
358 ngx_str_t retry_scid;
359 u_char sr_token[NGX_QUIC_SR_TOKEN_LEN];
360
361 /* TODO */
362 void *preferred_address;
363 } ngx_quic_tp_t;
364
365
341 ngx_int_t ngx_quic_parse_packet(ngx_quic_header_t *pkt); 366 ngx_int_t ngx_quic_parse_packet(ngx_quic_header_t *pkt);
342 367
343 size_t ngx_quic_create_version_negotiation(ngx_quic_header_t *pkt, u_char *out); 368 size_t ngx_quic_create_version_negotiation(ngx_quic_header_t *pkt, u_char *out);
344 369
345 size_t ngx_quic_payload_size(ngx_quic_header_t *pkt, size_t pkt_len); 370 size_t ngx_quic_payload_size(ngx_quic_header_t *pkt, size_t pkt_len);
356 381
357 ssize_t ngx_quic_parse_ack_range(ngx_log_t *log, u_char *start, 382 ssize_t ngx_quic_parse_ack_range(ngx_log_t *log, u_char *start,
358 u_char *end, uint64_t *gap, uint64_t *range); 383 u_char *end, uint64_t *gap, uint64_t *range);
359 size_t ngx_quic_create_ack_range(u_char *p, uint64_t gap, uint64_t range); 384 size_t ngx_quic_create_ack_range(u_char *p, uint64_t gap, uint64_t range);
360 385
386 ngx_int_t ngx_quic_init_transport_params(ngx_quic_tp_t *tp,
387 ngx_quic_conf_t *qcf);
361 ngx_int_t ngx_quic_parse_transport_params(u_char *p, u_char *end, 388 ngx_int_t ngx_quic_parse_transport_params(u_char *p, u_char *end,
362 ngx_quic_tp_t *tp, ngx_log_t *log); 389 ngx_quic_tp_t *tp, ngx_log_t *log);
363 ssize_t ngx_quic_create_transport_params(u_char *p, u_char *end, 390 ssize_t ngx_quic_create_transport_params(u_char *p, u_char *end,
364 ngx_quic_tp_t *tp, size_t *clen); 391 ngx_quic_tp_t *tp, size_t *clen);
365 392