mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-16 14:21:03 +01:00
Add accounting at qc_stream_desc level to be able to report the number of allocated Tx buffers and the sum of their data. This represents data ready for emission or already emitted and waiting on ACK. To simplify this accounting, a new counter type bdata_ctr is defined in quic_utils.h. This regroups both buffers and data counter, plus a maximum on the buffer value. These values are now displayed on QCS info used both on logline and traces, and also on "show quic" output.
50 lines
999 B
C
50 lines
999 B
C
#ifndef _HAPROXY_QUIC_UTILS_H
|
|
#define _HAPROXY_QUIC_UTILS_H
|
|
|
|
#ifdef USE_QUIC
|
|
|
|
#include <haproxy/quic_utils-t.h>
|
|
|
|
#include <haproxy/buf-t.h>
|
|
#include <haproxy/chunk.h>
|
|
|
|
static inline void bdata_ctr_init(struct bdata_ctr *ctr)
|
|
{
|
|
ctr->tot = 0;
|
|
ctr->bcnt = 0;
|
|
ctr->bmax = 0;
|
|
}
|
|
|
|
static inline void bdata_ctr_binc(struct bdata_ctr *ctr)
|
|
{
|
|
++ctr->bcnt;
|
|
ctr->bmax = MAX(ctr->bcnt, ctr->bmax);
|
|
}
|
|
|
|
static inline void bdata_ctr_bdec(struct bdata_ctr *ctr)
|
|
{
|
|
--ctr->bcnt;
|
|
}
|
|
|
|
static inline void bdata_ctr_add(struct bdata_ctr *ctr, size_t data)
|
|
{
|
|
ctr->tot += data;
|
|
}
|
|
|
|
static inline void bdata_ctr_del(struct bdata_ctr *ctr, size_t data)
|
|
{
|
|
ctr->tot -= data;
|
|
}
|
|
|
|
static inline void bdata_ctr_print(struct buffer *chunk,
|
|
const struct bdata_ctr *ctr,
|
|
const char *prefix)
|
|
{
|
|
chunk_appendf(chunk, " %s%d(%d)/%llu",
|
|
prefix, ctr->bcnt, ctr->bmax, (ullong)ctr->tot);
|
|
}
|
|
|
|
#endif /* USE_QUIC */
|
|
|
|
#endif /* _HAPROXY_QUIC_UTILS_H */
|