MINOR: quic: prepare support for options on FE/BE side

A major reorganization of QUIC settings is going to be performed. One of
its objective is to clearly define options which can be separately
configured on frontend and backend proxy sides.

To implement this, quic_tune structure is extended to support fe and be
options. A set of macros/functions is also defined : it allows to
retrieve an option defined on both sides with unified code, based on
proxy side of a quic_conn/connection instance.
This commit is contained in:
Amaury Denoyelle 2025-07-31 17:14:40 +02:00
parent cf3cf7bdda
commit 42e5ec6519
2 changed files with 31 additions and 0 deletions

View File

@ -12,6 +12,14 @@
#define QUIC_TUNE_CC_HYSTART 0x00000008
struct quic_tune {
struct {
uint fb_opts; /* QUIC_TUNE_FB_* options shared by both side */
} fe;
struct {
uint fb_opts; /* QUIC_TUNE_FB_* options shared by both side */
} be;
uint options;
};

View File

@ -8,8 +8,31 @@
#include <haproxy/quic_tune-t.h>
#include <haproxy/api.h>
#include <haproxy/connection.h>
#include <haproxy/obj_type.h>
#include <haproxy/quic_conn-t.h>
extern struct quic_tune quic_tune;
#define QUIC_TUNE_FB_GET(opt, qc) \
(!((qc)->flags & QUIC_FL_CONN_IS_BACK) ? quic_tune.fe. opt : quic_tune.be. opt)
static inline int quic_tune_test(int opt, const struct quic_conn *qc)
{
return !(qc->flags & QUIC_FL_CONN_IS_BACK) ?
quic_tune.fe.fb_opts & opt : quic_tune.be.fb_opts & opt;
}
#define QUIC_TUNE_FB_CONN_GET(opt, conn) \
(!(conn_is_back(conn)) ? quic_tune.fe. opt : quic_tune.be. opt)
static inline int quic_tune_conn_test(int opt, const struct connection *conn)
{
return !(conn_is_back(conn)) ?
quic_tune.fe.fb_opts & opt : quic_tune.be.fb_opts & opt;
}
#endif /* USE_QUIC */
#endif /* _HAPROXY_QUIC_TUNE_H */