Otherwise, this value defaults to 1. The default value is reported in the
output of "haproxy -vv".
+no-quic
+ Warning: QUIC support in HAProxy is currently experimental. Configuration may
+ change without deprecation in the future.
+
+ Disable QUIC transport protocol. All the QUIC listeners will still be created.
+ But they will not bind their addresses. Hence, no QUIC traffic will be
+ processed by haproxy. See also "quic_enabled" sample fetch.
+
numa-cpu-mapping
If running on a NUMA-aware platform, HAProxy inspects on startup the CPU
topology of the machine. If a multi-socket machine is detected, the affinity
#define GTUNE_DISABLE_ACTIVE_CLOSE (1<<22)
#define GTUNE_QUICK_EXIT (1<<23)
#define GTUNE_QUIC_SOCK_PER_CONN (1<<24)
+#define GTUNE_NO_QUIC (1<<25)
/* SSL server verify mode */
enum {
"log-tag", "spread-checks", "max-spread-checks", "cpu-map", "setenv",
"presetenv", "unsetenv", "resetenv", "strict-limits", "localpeer",
"numa-cpu-mapping", "defaults", "listen", "frontend", "backend",
- "peers", "resolvers", "cluster-secret",
+ "peers", "resolvers", "cluster-secret", "no-quic",
NULL /* must be last */
};
goto out;
global.tune.options &= ~GTUNE_USE_POLL;
}
+ else if (strcmp(args[0], "no-quic") == 0) {
+ if (alertif_too_many_args(0, file, linenum, args, &err_code))
+ goto out;
+
+ global.tune.options |= GTUNE_NO_QUIC;
+ }
else if (strcmp(args[0], "busy-polling") == 0) { /* "no busy-polling" or "busy-polling" */
if (alertif_too_many_args(0, file, linenum, args, &err_code))
goto out;
#include <haproxy/api.h>
#include <haproxy/errors.h>
+#include <haproxy/global.h>
#include <haproxy/list.h>
#include <haproxy/listener.h>
+#include <haproxy/proto_quic.h>
#include <haproxy/protocol.h>
#include <haproxy/proxy.h>
#include <haproxy/tools.h>
HA_SPIN_LOCK(PROTO_LOCK, &proto_lock);
list_for_each_entry(proto, &protocols, list) {
list_for_each_entry(receiver, &proto->receivers, proto_list) {
+#ifdef USE_QUIC
+ if ((global.tune.options & GTUNE_NO_QUIC) &&
+ (proto == &proto_quic4 || proto == &proto_quic6))
+ continue;
+#endif
listener = LIST_ELEM(receiver, struct listener *, rx);
lerr = proto->fam->bind(receiver, &errmsg);