Mercurial > hg > nginx
comparison src/event/ngx_event_quic_transport.h @ 8596:38c7dd720774 quic
QUIC: added ACK frame range support.
The history of acknowledged packet is kept in send context as ranges.
Up to NGX_QUIC_MAX_RANGES ranges is stored.
As a result, instead of separate ack frames, single frame with ranges
is sent.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Tue, 20 Oct 2020 18:53:00 +0300 |
parents | 93be5658a250 |
children | c5ea341f705a |
comparison
equal
deleted
inserted
replaced
8595:96798101c3aa | 8596:38c7dd720774 |
---|---|
118 #define NGX_QUIC_TP_RETRY_SCID 0x10 | 118 #define NGX_QUIC_TP_RETRY_SCID 0x10 |
119 | 119 |
120 #define NGX_QUIC_CID_LEN_MIN 8 | 120 #define NGX_QUIC_CID_LEN_MIN 8 |
121 #define NGX_QUIC_CID_LEN_MAX 20 | 121 #define NGX_QUIC_CID_LEN_MAX 20 |
122 | 122 |
123 #define NGX_QUIC_MAX_RANGES 10 | |
124 | |
125 | |
126 typedef struct { | |
127 uint64_t gap; | |
128 uint64_t range; | |
129 } ngx_quic_ack_range_t; | |
130 | |
131 | |
123 typedef struct { | 132 typedef struct { |
124 uint64_t largest; | 133 uint64_t largest; |
125 uint64_t delay; | 134 uint64_t delay; |
126 uint64_t range_count; | 135 uint64_t range_count; |
127 uint64_t first_range; | 136 uint64_t first_range; |
128 uint64_t ect0; | 137 uint64_t ect0; |
129 uint64_t ect1; | 138 uint64_t ect1; |
130 uint64_t ce; | 139 uint64_t ce; |
131 u_char *ranges_start; | 140 u_char *ranges_start; |
132 u_char *ranges_end; | 141 u_char *ranges_end; |
133 } ngx_quic_ack_frame_t; | 142 } ngx_quic_ack_frame_t; |
134 | 143 |
135 | 144 |
136 typedef struct { | 145 typedef struct { |
137 uint64_t seqnum; | 146 uint64_t seqnum; |