# HG changeset patch # User Roman Arutyunyan # Date 1603876504 0 # Node ID 3d79c08bb0f1ea30d6b9ef805599b205774529d5 # Parent 867c189f875d0938bad557e8498120e8d61cd43d QUIC: changed ACK frame debugging. Previously ACK ranges were logged as a gap/range sequence. Now these values are expanded to packet number ranges for easier reading. diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c --- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -373,7 +373,7 @@ ngx_quic_log_frame(ngx_log_t *log, ngx_q { u_char *p, *last, *pos, *end; ssize_t n; - uint64_t gap, range; + uint64_t gap, range, largest, smallest; ngx_uint_t i; u_char buf[NGX_MAX_ERROR_STR]; @@ -394,14 +394,22 @@ ngx_quic_log_frame(ngx_log_t *log, ngx_q case NGX_QUIC_FT_ACK: case NGX_QUIC_FT_ACK_ECN: - p = ngx_slprintf(p, last, - "ACK largest:%uL fr:%uL nranges:%ui delay:%uL", - f->u.ack.largest, f->u.ack.first_range, + p = ngx_slprintf(p, last, "ACK n:%ui delay:%uL ", f->u.ack.range_count, f->u.ack.delay); pos = f->u.ack.ranges_start; end = f->u.ack.ranges_end; + largest = f->u.ack.largest; + smallest = f->u.ack.largest - f->u.ack.first_range; + + if (largest == smallest) { + p = ngx_slprintf(p, last, "%uL", largest); + + } else { + p = ngx_slprintf(p, last, "%uL-%uL", largest, smallest); + } + for (i = 0; i < f->u.ack.range_count; i++) { n = ngx_quic_parse_ack_range(log, pos, end, &gap, &range); if (n == NGX_ERROR) { @@ -410,7 +418,15 @@ ngx_quic_log_frame(ngx_log_t *log, ngx_q pos += n; - p = ngx_slprintf(p, last, " %uL,%uL", gap, range); + largest = smallest - gap - 2; + smallest = largest - range; + + if (largest == smallest) { + p = ngx_slprintf(p, last, " %uL", largest); + + } else { + p = ngx_slprintf(p, last, " %uL-%uL", largest, smallest); + } } if (f->type == NGX_QUIC_FT_ACK_ECN) { @@ -3107,9 +3123,6 @@ ngx_quic_handle_ack_frame_range(ngx_conn ngx_quic_frame_t *f; ngx_quic_connection_t *qc; - ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0, - "quic handle ack range min:%uL max:%uL", min, max); - qc = c->quic; *send_time = NGX_TIMER_INFINITE;