comparison src/event/ngx_event_quic_transport.h @ 8587:61f1c6ac8967 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 Wed, 14 Oct 2020 23:21:36 +0300
parents 07971f870879
children 93be5658a250
comparison
equal deleted inserted replaced
8586:7621ffaa79b3 8587:61f1c6ac8967
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;