MINOR: quic: define quic_pacing module

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.
This commit is contained in:
Amaury Denoyelle 2024-10-24 15:53:17 +02:00
parent 7fd48a5723
commit 3e11492c99
5 changed files with 29 additions and 1 deletions

View File

@ -653,7 +653,7 @@ OPTIONS_OBJS += src/quic_rx.o src/mux_quic.o src/h3.o src/quic_tx.o \
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=),)

View File

@ -45,6 +45,7 @@
#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>

View File

@ -0,0 +1,11 @@
#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 */

View File

@ -0,0 +1,15 @@
#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 */

1
src/quic_pacing.c Normal file
View File

@ -0,0 +1 @@
#include <haproxy/quic_pacing.h>