Add a new module quic_pacing. A new structure quic_pacer is defined.
This will be used as a pacing engine to implement smooth emission of
QUIC data.
src/cfgparse-quic.o src/qmux_trace.o src/qpack-enc.o \
src/qpack-tbl.o src/h3_stats.o src/quic_stats.o \
src/quic_fctl.o src/cbuf.o src/quic_rules.o \
- src/quic_token.o
+ src/quic_token.o src/quic_pacing.o
endif
ifneq ($(USE_QUIC_OPENSSL_COMPAT:0=),)
#include <haproxy/quic_enc.h>
#include <haproxy/quic_frame.h>
#include <haproxy/quic_loss.h>
+#include <haproxy/quic_pacing.h>
#include <haproxy/quic_rx.h>
#include <haproxy/mux_quic.h>
--- /dev/null
+#ifndef _HAPROXY_QUIC_PACING_T_H
+#define _HAPROXY_QUIC_PACING_T_H
+
+#include <haproxy/api-t.h>
+#include <haproxy/quic_cc-t.h>
+
+struct quic_pacer {
+ const struct quic_cc *cc; /* Congestion controler algo used for this connection */
+};
+
+#endif /* _HAPROXY_QUIC_PACING_T_H */
--- /dev/null
+#ifndef _HAPROXY_QUIC_PACING_H
+#define _HAPROXY_QUIC_PACING_H
+
+#include <haproxy/quic_pacing-t.h>
+
+#include <haproxy/list.h>
+#include <haproxy/quic_frame.h>
+
+static inline void quic_pacing_init(struct quic_pacer *pacer,
+ const struct quic_cc *cc)
+{
+ pacer->cc = cc;
+}
+
+#endif /* _HAPROXY_QUIC_PACING_H */
--- /dev/null
+#include <haproxy/quic_pacing.h>