Mercurial > hg > nginx
comparison src/event/ngx_event_quic.h @ 8247:e9891e8ee975 quic
Configurable transport parameters.
- integer parameters can be configured using the following directives:
quic_max_idle_timeout
quic_max_ack_delay
quic_max_packet_size
quic_initial_max_data
quic_initial_max_stream_data_bidi_local
quic_initial_max_stream_data_bidi_remote
quic_initial_max_stream_data_uni
quic_initial_max_streams_bidi
quic_initial_max_streams_uni
quic_ack_delay_exponent
quic_active_migration
quic_active_connection_id_limit
- only following parameters are actually sent:
active_connection_id_limit
initial_max_streams_uni
initial_max_streams_bidi
initial_max_stream_data_bidi_local
initial_max_stream_data_bidi_remote
initial_max_stream_data_uni
(other parameters are to be added into ngx_quic_create_transport_params()
function as needed, should be easy now)
- draft 24 and draft 27 are now supported
(at compile-time using quic_version macro)
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Fri, 20 Mar 2020 13:47:44 +0300 |
parents | ae35ccba7aa6 |
children | 1295b293d09a |
comparison
equal
deleted
inserted
replaced
8246:0d9bc77ae30d | 8247:e9891e8ee975 |
---|---|
13 | 13 |
14 #define quic_version 0xff000018 /* draft-24 (ngtcp2) */ | 14 #define quic_version 0xff000018 /* draft-24 (ngtcp2) */ |
15 //#define quic_version 0xff00001b /* draft-27 (FFN 76) */ | 15 //#define quic_version 0xff00001b /* draft-27 (FFN 76) */ |
16 | 16 |
17 | 17 |
18 typedef struct { | |
19 /* configurable */ | |
20 ngx_msec_t max_idle_timeout; | |
21 ngx_msec_t max_ack_delay; | |
22 | |
23 ngx_uint_t max_packet_size; | |
24 ngx_uint_t initial_max_data; | |
25 ngx_uint_t initial_max_stream_data_bidi_local; | |
26 ngx_uint_t initial_max_stream_data_bidi_remote; | |
27 ngx_uint_t initial_max_stream_data_uni; | |
28 ngx_uint_t initial_max_streams_bidi; | |
29 ngx_uint_t initial_max_streams_uni; | |
30 ngx_uint_t ack_delay_exponent; | |
31 ngx_uint_t disable_active_migration; | |
32 ngx_uint_t active_connection_id_limit; | |
33 | |
34 /* TODO */ | |
35 ngx_uint_t original_connection_id; | |
36 u_char stateless_reset_token[16]; | |
37 void *preferred_address; | |
38 } ngx_quic_tp_t; | |
39 | |
40 | |
18 struct ngx_quic_stream_s { | 41 struct ngx_quic_stream_s { |
19 uint64_t id; | 42 uint64_t id; |
20 ngx_uint_t unidirectional:1; | 43 ngx_uint_t unidirectional:1; |
21 ngx_connection_t *parent; | 44 ngx_connection_t *parent; |
22 void *data; | 45 void *data; |
23 }; | 46 }; |
24 | 47 |
25 | 48 |
26 void ngx_quic_init_ssl_methods(SSL_CTX* ctx); | 49 void ngx_quic_init_ssl_methods(SSL_CTX* ctx); |
27 | 50 |
28 void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_msec_t timeout, | 51 void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_tp_t *tp, |
29 ngx_connection_handler_pt handler); | 52 ngx_msec_t timeout, ngx_connection_handler_pt handler); |
30 ngx_connection_t *ngx_quic_create_uni_stream(ngx_connection_t *c); | 53 ngx_connection_t *ngx_quic_create_uni_stream(ngx_connection_t *c); |
31 | 54 |
32 | 55 |
33 /********************************* DEBUG *************************************/ | 56 /********************************* DEBUG *************************************/ |
34 | 57 |