]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux-quic: add buf_in_flight to QCC debug infos
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 21 Aug 2024 13:30:17 +0000 (15:30 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 22 Aug 2024 15:48:23 +0000 (17:48 +0200)
Dump <buf_in_flight> QCC field both in QUIC MUX traces and "show quic".
This could help to detect if MUX does not allocate enough buffers
compared to quic_conn current congestion window.

src/mux_quic.c
src/qmux_trace.c

index a89431b89dc92f94a6e81d79ca0699fc130daca9..c1855de076bbfa0832abc5007412a0989a552319 100644 (file)
@@ -3399,9 +3399,12 @@ static const struct mux_ops qmux_ops = {
 
 void qcc_show_quic(struct qcc *qcc)
 {
+       const struct quic_conn *qc = qcc->conn->handle.qc;
        struct eb64_node *node;
-       chunk_appendf(&trash, "  qcc=0x%p flags=0x%x sc=%llu hreq=%llu\n",
-                     qcc, qcc->flags, (ullong)qcc->nb_sc, (ullong)qcc->nb_hreq);
+
+       chunk_appendf(&trash, "  qcc=0x%p flags=0x%x sc=%llu hreq=%llu bwnd=%llu/%llu\n",
+                     qcc, qcc->flags, (ullong)qcc->nb_sc, (ullong)qcc->nb_hreq,
+                     (ullong)qcc->tx.buf_in_flight, (ullong)qc->path->cwnd);
 
        node = eb64_first(&qcc->streams_by_id);
        while (node) {
index e31ff7dd8d387987896c08dd569086af2e6fefcc..f75e702ccba1baa8337c31a976a659b6f8a42266 100644 (file)
@@ -5,6 +5,7 @@
 #include <haproxy/connection.h>
 #include <haproxy/chunk.h>
 #include <haproxy/mux_quic.h>
+#include <haproxy/quic_conn-t.h>
 #include <haproxy/quic_frame-t.h>
 
 /* trace source and events */
@@ -131,14 +132,16 @@ INITCALL1(STG_REGISTER, trace_register_source, TRACE_SOURCE);
 
 void qmux_dump_qcc_info(struct buffer *msg, const struct qcc *qcc)
 {
+       const struct quic_conn *qc = qcc->conn->handle.qc;
+
        chunk_appendf(msg, " qcc=%p(F)", qcc);
        if (qcc->conn->handle.qc)
                chunk_appendf(msg, " qc=%p", qcc->conn->handle.qc);
        chunk_appendf(msg, " .sc=%llu .hreq=%llu .flg=0x%04x", (ullong)qcc->nb_sc, (ullong)qcc->nb_hreq, qcc->flags);
 
-       chunk_appendf(msg, " .tx=%llu %llu/%llu", (ullong)qcc->tx.fc.off_soft,
-                                                 (ullong)qcc->tx.fc.off_real,
-                                                 (ullong)qcc->tx.fc.limit);
+       chunk_appendf(msg, " .tx=%llu %llu/%llu bwnd=%llu/%llu",
+                     (ullong)qcc->tx.fc.off_soft, (ullong)qcc->tx.fc.off_real, (ullong)qcc->tx.fc.limit,
+                     (ullong)qcc->tx.buf_in_flight, (ullong)qc->path->cwnd);
 }
 
 void qmux_dump_qcs_info(struct buffer *msg, const struct qcs *qcs)