Mercurial > hg > nginx
diff src/event/ngx_event_quic_transport.h @ 8326:1cdd53532309 quic
ACK ranges processing.
+ since number of ranges in unknown, provide a function to parse them once
again in handler to avoid memory allocation
+ ack handler now processes all ranges, not only the first
+ ECN counters are parsed and saved into frame if present
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Mon, 06 Apr 2020 16:19:26 +0300 |
parents | 29354c6fc5f2 |
children | 167d32476737 |
line wrap: on
line diff
--- a/src/event/ngx_event_quic_transport.h +++ b/src/event/ngx_event_quic_transport.h @@ -102,8 +102,11 @@ typedef struct { uint64_t delay; uint64_t range_count; uint64_t first_range; - uint64_t ranges[20]; - /* TODO: ecn counts */ + uint64_t ect0; + uint64_t ect1; + uint64_t ce; + u_char *ranges_start; + u_char *ranges_end; } ngx_quic_ack_frame_t; @@ -284,6 +287,9 @@ ssize_t ngx_quic_parse_frame(ngx_quic_he ngx_quic_frame_t *frame); ssize_t ngx_quic_create_frame(u_char *p, ngx_quic_frame_t *f); +ssize_t ngx_quic_parse_ack_range(ngx_quic_header_t *pkt, u_char *start, + u_char *end, uint64_t *gap, uint64_t *range); + ngx_int_t ngx_quic_parse_transport_params(u_char *p, u_char *end, ngx_quic_tp_t *tp, ngx_log_t *log); ssize_t ngx_quic_create_transport_params(u_char *p, u_char *end,