# HG changeset patch # User Vladimir Homutov # Date 1618400857 -10800 # Node ID c8bda5e1e662776735874aa2b29c832e92e7c5a2 # Parent 0c628de2e2b71709069f9c600d76f77821d55a06 QUIC: headers cleanup. The "ngx_event_quic.h" header file now contains only public definitions, used by modules. All internal definitions are moved into the "ngx_event_quic_connection.h" header file. diff --git a/README b/README --- a/README +++ b/README @@ -229,7 +229,7 @@ 5. Troubleshooting be easily filtered out. + If you want to investigate deeper, you may want to enable - additional debugging in src/event/ngx_event_quic.h: + additional debugging in src/event/ngx_event_quic_connection.h: #define NGX_QUIC_DEBUG_PACKETS #define NGX_QUIC_DEBUG_FRAMES diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c --- a/src/event/quic/ngx_event_quic.c +++ b/src/event/quic/ngx_event_quic.c @@ -7,11 +7,8 @@ #include #include #include -#include -#include +#include #include -#include -#include #define ngx_quic_lost_threshold(qc) \ diff --git a/src/event/quic/ngx_event_quic.h b/src/event/quic/ngx_event_quic.h --- a/src/event/quic/ngx_event_quic.h +++ b/src/event/quic/ngx_event_quic.h @@ -16,13 +16,7 @@ #define NGX_QUIC_DRAFT_VERSION 29 #endif -#define NGX_QUIC_MAX_SHORT_HEADER 25 /* 1 flags + 20 dcid + 4 pn */ -#define NGX_QUIC_MAX_LONG_HEADER 56 - /* 1 flags + 4 version + 2 x (1 + 20) s/dcid + 4 pn + 4 len + token len */ - #define NGX_QUIC_MAX_UDP_PAYLOAD_SIZE 65527 -#define NGX_QUIC_MAX_UDP_PAYLOAD_OUT 1252 -#define NGX_QUIC_MAX_UDP_PAYLOAD_OUT6 1232 #define NGX_QUIC_DEFAULT_ACK_DELAY_EXPONENT 3 #define NGX_QUIC_DEFAULT_MAX_ACK_DELAY 25 @@ -30,23 +24,7 @@ #define NGX_QUIC_SR_KEY_LEN 32 #define NGX_QUIC_AV_KEY_LEN 32 -#define NGX_QUIC_RETRY_TOKEN_LIFETIME 3 /* seconds */ -#define NGX_QUIC_NEW_TOKEN_LIFETIME 600 /* seconds */ -#define NGX_QUIC_RETRY_BUFFER_SIZE 256 - /* 1 flags + 4 version + 3 x (1 + 20) s/o/dcid + itag + token(64) */ -#define NGX_QUIC_MAX_TOKEN_SIZE 64 - /* SHA-1(addr)=20 + sizeof(time_t) + retry(1) + odcid.len(1) + odcid */ - -/* quic-recovery, section 6.2.2, kInitialRtt */ -#define NGX_QUIC_INITIAL_RTT 333 /* ms */ - -/* quic-recovery, section 6.1.1, Packet Threshold */ -#define NGX_QUIC_PKT_THR 3 /* packets */ -/* quic-recovery, section 6.1.2, Time Threshold */ -#define NGX_QUIC_TIME_THR 1.125 -#define NGX_QUIC_TIME_GRANULARITY 1 /* ms */ - -#define NGX_QUIC_CC_MIN_INTERVAL 1000 /* 1s */ +#define NGX_QUIC_SR_TOKEN_LEN 16 #define NGX_QUIC_MIN_INITIAL_SIZE 1200 @@ -55,18 +33,6 @@ #define NGX_QUIC_STREAM_BUFSIZE 65536 -#define NGX_QUIC_MAX_CID_LEN 20 -#define NGX_QUIC_SERVER_CID_LEN NGX_QUIC_MAX_CID_LEN - -#define NGX_QUIC_SR_TOKEN_LEN 16 - -#define NGX_QUIC_MAX_SERVER_IDS 8 - -#define NGX_QUIC_BUFFER_SIZE 4096 - -#define ngx_quic_get_connection(c) \ - (((c)->udp) ? (((ngx_quic_server_id_t *)((c)->udp))->quic) : NULL) - typedef struct { /* configurable */ @@ -139,12 +105,4 @@ uint32_t ngx_quic_version(ngx_connection ngx_int_t ngx_quic_get_packet_dcid(ngx_log_t *log, u_char *data, size_t len, ngx_str_t *dcid); - -/********************************* DEBUG *************************************/ - -/* #define NGX_QUIC_DEBUG_PACKETS */ /* dump packet contents */ -/* #define NGX_QUIC_DEBUG_FRAMES */ /* dump frames contents */ -/* #define NGX_QUIC_DEBUG_ALLOC */ /* log frames and bufs alloc */ -/* #define NGX_QUIC_DEBUG_CRYPTO */ - #endif /* _NGX_EVENT_QUIC_H_INCLUDED_ */ diff --git a/src/event/quic/ngx_event_quic_connection.h b/src/event/quic/ngx_event_quic_connection.h --- a/src/event/quic/ngx_event_quic_connection.h +++ b/src/event/quic/ngx_event_quic_connection.h @@ -10,14 +10,45 @@ #include #include #include + #include #include +typedef struct ngx_quic_connection_s ngx_quic_connection_t; -#define NGX_QUIC_SEND_CTX_LAST (NGX_QUIC_ENCRYPTION_LAST - 1) +#include -typedef struct ngx_quic_connection_s ngx_quic_connection_t; +#define NGX_QUIC_MAX_SHORT_HEADER 25 /* 1 flags + 20 dcid + 4 pn */ +#define NGX_QUIC_MAX_LONG_HEADER 56 + /* 1 flags + 4 version + 2 x (1 + 20) s/dcid + 4 pn + 4 len + token len */ + +#define NGX_QUIC_MAX_UDP_PAYLOAD_OUT 1252 +#define NGX_QUIC_MAX_UDP_PAYLOAD_OUT6 1232 + +#define NGX_QUIC_RETRY_TOKEN_LIFETIME 3 /* seconds */ +#define NGX_QUIC_NEW_TOKEN_LIFETIME 600 /* seconds */ +#define NGX_QUIC_RETRY_BUFFER_SIZE 256 + /* 1 flags + 4 version + 3 x (1 + 20) s/o/dcid + itag + token(64) */ +#define NGX_QUIC_MAX_TOKEN_SIZE 64 + /* SHA-1(addr)=20 + sizeof(time_t) + retry(1) + odcid.len(1) + odcid */ + +/* quic-recovery, section 6.2.2, kInitialRtt */ +#define NGX_QUIC_INITIAL_RTT 333 /* ms */ + +/* quic-recovery, section 6.1.1, Packet Threshold */ +#define NGX_QUIC_PKT_THR 3 /* packets */ +/* quic-recovery, section 6.1.2, Time Threshold */ +#define NGX_QUIC_TIME_THR 1.125 +#define NGX_QUIC_TIME_GRANULARITY 1 /* ms */ + +#define NGX_QUIC_CC_MIN_INTERVAL 1000 /* 1s */ + +#define NGX_QUIC_MAX_SERVER_IDS 8 + +#define NGX_QUIC_BUFFER_SIZE 4096 + +#define NGX_QUIC_SEND_CTX_LAST (NGX_QUIC_ENCRYPTION_LAST - 1) /* 0-RTT and 1-RTT data exist in the same packet number space, * so we have 3 packet number spaces: @@ -31,6 +62,9 @@ typedef struct ngx_quic_connection_s ng : (((level) == ssl_encryption_handshake) ? &((qc)->send_ctx[1]) \ : &((qc)->send_ctx[2])) +#define ngx_quic_get_connection(c) \ + (((c)->udp) ? (((ngx_quic_server_id_t *)((c)->udp))->quic) : NULL) + typedef struct { ngx_queue_t queue; @@ -189,4 +223,11 @@ void ngx_quic_queue_frame(ngx_quic_conne void ngx_quic_close_connection(ngx_connection_t *c, ngx_int_t rc); ngx_msec_t ngx_quic_pto(ngx_connection_t *c, ngx_quic_send_ctx_t *ctx); -#endif +/********************************* DEBUG *************************************/ + +/* #define NGX_QUIC_DEBUG_PACKETS */ /* dump packet contents */ +/* #define NGX_QUIC_DEBUG_FRAMES */ /* dump frames contents */ +/* #define NGX_QUIC_DEBUG_ALLOC */ /* log frames and bufs alloc */ +/* #define NGX_QUIC_DEBUG_CRYPTO */ + +#endif /* _NGX_EVENT_QUIC_CONNECTION_H_INCLUDED_ */ diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c --- a/src/event/quic/ngx_event_quic_migration.c +++ b/src/event/quic/ngx_event_quic_migration.c @@ -7,9 +7,7 @@ #include #include #include -#include #include -#include ngx_int_t diff --git a/src/event/quic/ngx_event_quic_migration.h b/src/event/quic/ngx_event_quic_migration.h --- a/src/event/quic/ngx_event_quic_migration.h +++ b/src/event/quic/ngx_event_quic_migration.h @@ -17,4 +17,4 @@ ngx_int_t ngx_quic_handle_path_challenge ngx_int_t ngx_quic_handle_path_response_frame(ngx_connection_t *c, ngx_quic_header_t *pkt, ngx_quic_path_challenge_frame_t *f); -#endif +#endif /* _NGX_EVENT_QUIC_MIGRATION_H_INCLUDED_ */ diff --git a/src/event/quic/ngx_event_quic_transport.h b/src/event/quic/ngx_event_quic_transport.h --- a/src/event/quic/ngx_event_quic_transport.h +++ b/src/event/quic/ngx_event_quic_transport.h @@ -47,6 +47,8 @@ : (lvl == ssl_encryption_initial) ? "init" \ : (lvl == ssl_encryption_handshake) ? "hs" : "early" +#define NGX_QUIC_MAX_CID_LEN 20 +#define NGX_QUIC_SERVER_CID_LEN NGX_QUIC_MAX_CID_LEN /* 12.4. Frames and Frame Types */ #define NGX_QUIC_FT_PADDING 0x00