MINOR: quic: add counters of sent bytes with and without GSO

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.
This commit is contained in:
Amaury Denoyelle 2024-07-08 10:51:42 +02:00
parent d0ea173e35
commit b0990b38f8
3 changed files with 13 additions and 3 deletions

View File

@ -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 */

View File

@ -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) {

View File

@ -347,6 +347,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);