Skip to content

Commit

Permalink
MINOR: quic: add counters of sent bytes with and without GSO
Browse files Browse the repository at this point in the history
Add a sent bytes counter for each quic_conn instance. A secondary field
which only account bytes sent via GSO which is useful to ensure if this
is activated.

For the moment, these counters are reported on "show quic" but not
aggregated on proxy quic module stats.
  • Loading branch information
a-denoyelle committed Jul 8, 2024
1 parent ed09399 commit d9fefc3
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 3 deletions.
2 changes: 2 additions & 0 deletions include/haproxy/quic_conn-t.h
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,8 @@ struct quic_conn_cntrs {
long long socket_full; /* total number of EAGAIN errors on sendto() calls */
long long sendto_err; /* total number of errors on sendto() calls, EAGAIN excepted */
long long sendto_err_unknown; /* total number of errors on sendto() calls which are currently not supported */
long long sent_bytes; /* total number of sent bytes, with or without GSO */
long long sent_bytes_gso; /* total number of sent bytes using GSO */
long long sent_pkt; /* total number of sent packets */
long long lost_pkt; /* total number of lost packets */
long long conn_migration_done; /* total number of connection migration handled */
Expand Down
9 changes: 6 additions & 3 deletions src/quic_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,11 +300,14 @@ static void dump_quic_full(struct show_quic_ctx *ctx, struct quic_conn *qc)
}

if (ctx->fields & QUIC_DUMP_FLD_CC) {
chunk_appendf(&trash, " srtt=%-4u rttvar=%-4u rttmin=%-4u ptoc=%-4u cwnd=%-6llu"
" mcwnd=%-6llu sentpkts=%-6llu lostpkts=%-6llu reorderedpkts=%-6llu\n",
chunk_appendf(&trash, " srtt=%-4u rttvar=%-4u rttmin=%-4u ptoc=%-4u\n"
" cwnd=%-6llu mcwnd=%-6llu\n"
" sentbytes=%-12llu sentbytesgso=%-12llu sentpkts=%-6llu\n"
" lostpkts=%-6llu reorderedpkts=%-6llu\n",
qc->path->loss.srtt, qc->path->loss.rtt_var,
qc->path->loss.rtt_min, qc->path->loss.pto_count, (ullong)qc->path->cwnd,
(ullong)qc->path->mcwnd, (ullong)qc->cntrs.sent_pkt, (ullong)qc->path->loss.nb_lost_pkt, (ullong)qc->path->loss.nb_reordered_pkt);
(ullong)qc->path->mcwnd, (ullong)qc->cntrs.sent_bytes, (ullong)qc->cntrs.sent_bytes_gso,
(ullong)qc->cntrs.sent_pkt, (ullong)qc->path->loss.nb_lost_pkt, (ullong)qc->path->loss.nb_reordered_pkt);
}

if (qc->cntrs.dropped_pkt) {
Expand Down
5 changes: 5 additions & 0 deletions src/quic_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,11 @@ static int qc_send_ppkts(struct buffer *buf, struct ssl_sock_ctx *ctx)
skip_sendto = 1;
TRACE_ERROR("sendto error, simulate sending for the rest of data", QUIC_EV_CONN_SPPKTS, qc);
}
else {
qc->cntrs.sent_bytes += ret;
if (gso && ret > gso)
qc->cntrs.sent_bytes_gso += ret;
}
}

b_del(buf, dglen + QUIC_DGRAM_HEADLEN);
Expand Down

0 comments on commit d9fefc3

Please sign in to comment.