diff 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
line wrap: on
line diff
--- a/src/event/ngx_event_quic.h
+++ b/src/event/ngx_event_quic.h
@@ -15,6 +15,29 @@
 //#define quic_version      0xff00001b  /* draft-27 (FFN 76) */
 
 
+typedef struct {
+    /* configurable */
+    ngx_msec_t          max_idle_timeout;
+    ngx_msec_t          max_ack_delay;
+
+    ngx_uint_t          max_packet_size;
+    ngx_uint_t          initial_max_data;
+    ngx_uint_t          initial_max_stream_data_bidi_local;
+    ngx_uint_t          initial_max_stream_data_bidi_remote;
+    ngx_uint_t          initial_max_stream_data_uni;
+    ngx_uint_t          initial_max_streams_bidi;
+    ngx_uint_t          initial_max_streams_uni;
+    ngx_uint_t          ack_delay_exponent;
+    ngx_uint_t          disable_active_migration;
+    ngx_uint_t          active_connection_id_limit;
+
+    /* TODO */
+    ngx_uint_t          original_connection_id;
+    u_char              stateless_reset_token[16];
+    void               *preferred_address;
+} ngx_quic_tp_t;
+
+
 struct ngx_quic_stream_s {
     uint64_t            id;
     ngx_uint_t          unidirectional:1;
@@ -25,8 +48,8 @@ struct ngx_quic_stream_s {
 
 void ngx_quic_init_ssl_methods(SSL_CTX* ctx);
 
-void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_msec_t timeout,
-    ngx_connection_handler_pt handler);
+void ngx_quic_run(ngx_connection_t *c, ngx_ssl_t *ssl, ngx_quic_tp_t *tp,
+    ngx_msec_t timeout, ngx_connection_handler_pt handler);
 ngx_connection_t *ngx_quic_create_uni_stream(ngx_connection_t *c);