#define QUIC_STATELESS_RESET_PACKET_HEADER_LEN 5
#define QUIC_STATELESS_RESET_PACKET_MINLEN (22 + QUIC_HAP_CID_LEN)
-#define QUIC_EV_CONN_NEW (1ULL << 0)
-#define QUIC_EV_CONN_INIT (1ULL << 1)
-#define QUIC_EV_CONN_ISEC (1ULL << 2)
-#define QUIC_EV_CONN_RSEC (1ULL << 3)
-#define QUIC_EV_CONN_WSEC (1ULL << 4)
-#define QUIC_EV_CONN_RWSEC (1ULL << 5)
-#define QUIC_EV_CONN_LPKT (1ULL << 6)
-#define QUIC_EV_CONN_SPKT (1ULL << 7)
-#define QUIC_EV_CONN_ENCPKT (1ULL << 8)
-#define QUIC_EV_CONN_TXPKT (1ULL << 9)
-#define QUIC_EV_CONN_PAPKT (1ULL << 10)
-#define QUIC_EV_CONN_PAPKTS (1ULL << 11)
-#define QUIC_EV_CONN_IO_CB (1ULL << 12)
-#define QUIC_EV_CONN_RMHP (1ULL << 13)
-#define QUIC_EV_CONN_PRSHPKT (1ULL << 14)
-#define QUIC_EV_CONN_PRSAPKT (1ULL << 15)
-#define QUIC_EV_CONN_PRSFRM (1ULL << 16)
-#define QUIC_EV_CONN_PRSAFRM (1ULL << 17)
-#define QUIC_EV_CONN_BFRM (1ULL << 18)
-#define QUIC_EV_CONN_PHPKTS (1ULL << 19)
-#define QUIC_EV_CONN_TRMHP (1ULL << 20)
-#define QUIC_EV_CONN_ELRMHP (1ULL << 21)
-#define QUIC_EV_CONN_RXPKT (1ULL << 22)
-#define QUIC_EV_CONN_SSLDATA (1ULL << 23)
-#define QUIC_EV_CONN_RXCDATA (1ULL << 24)
-#define QUIC_EV_CONN_ADDDATA (1ULL << 25)
-#define QUIC_EV_CONN_FFLIGHT (1ULL << 26)
-#define QUIC_EV_CONN_SSLALERT (1ULL << 27)
-#define QUIC_EV_CONN_PSTRM (1ULL << 28)
-#define QUIC_EV_CONN_RTTUPDT (1ULL << 29)
-#define QUIC_EV_CONN_CC (1ULL << 30)
-#define QUIC_EV_CONN_SPPKTS (1ULL << 31)
-#define QUIC_EV_CONN_PKTLOSS (1ULL << 32)
-#define QUIC_EV_CONN_STIMER (1ULL << 33)
-#define QUIC_EV_CONN_PTIMER (1ULL << 34)
-#define QUIC_EV_CONN_SPTO (1ULL << 35)
-#define QUIC_EV_CONN_BCFRMS (1ULL << 36)
-#define QUIC_EV_CONN_XPRTSEND (1ULL << 37)
-#define QUIC_EV_CONN_XPRTRECV (1ULL << 38)
-#define QUIC_EV_CONN_FREED (1ULL << 39)
-#define QUIC_EV_CONN_CLOSE (1ULL << 40)
-#define QUIC_EV_CONN_ACKSTRM (1ULL << 41)
-#define QUIC_EV_CONN_FRMLIST (1ULL << 42)
-#define QUIC_EV_STATELESS_RST (1ULL << 43)
-#define QUIC_EV_TRANSP_PARAMS (1ULL << 44)
-#define QUIC_EV_CONN_IDLE_TIMER (1ULL << 45)
-#define QUIC_EV_CONN_SUB (1ULL << 46)
-#define QUIC_EV_CONN_ELEVELSEL (1ULL << 47)
-#define QUIC_EV_CONN_RCV (1ULL << 48)
-#define QUIC_EV_CONN_KILL (1ULL << 49)
-#define QUIC_EV_CONN_KP (1ULL << 50)
-#define QUIC_EV_CONN_SSL_COMPAT (1ULL << 51)
-#define QUIC_EV_CONN_SET_AFFINITY (1ULL << 52)
-
/* Similar to kernel min()/max() definitions. */
#define QUIC_MIN(a, b) ({ \
typeof(a) _a = (a); \
/* Size of the QUIC RX buffer for the connections */
#define QUIC_CONN_RX_BUFSZ (1UL << 16)
-extern struct trace_source trace_quic;
extern struct pool_head *pool_head_quic_crypto_buf;
struct quic_version {
#error "Must define USE_OPENSSL"
#endif
-#define TRACE_SOURCE &trace_quic
-
#include <stdlib.h>
#include <string.h>
#include <haproxy/quic_frame.h>
#include <haproxy/quic_tls-t.h>
#include <haproxy/quic_tx.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
int quic_tls_finalize(struct quic_conn *qc, int server);
#ifndef _HAPROXY_QUIC_TRACE_T_H
#define _HAPROXY_QUIC_TRACE_T_H
-#include <inttypes.h>
-#include <stdlib.h>
-
#include <haproxy/quic_tls-t.h>
+#include <haproxy/trace-t.h>
+
+extern struct trace_source trace_quic;
/* Used only for QUIC TLS key phase traces */
struct quic_kp_trace {
uint64_t pn;
};
+#define QUIC_EV_CONN_NEW (1ULL << 0)
+#define QUIC_EV_CONN_INIT (1ULL << 1)
+#define QUIC_EV_CONN_ISEC (1ULL << 2)
+#define QUIC_EV_CONN_RSEC (1ULL << 3)
+#define QUIC_EV_CONN_WSEC (1ULL << 4)
+#define QUIC_EV_CONN_RWSEC (1ULL << 5)
+#define QUIC_EV_CONN_LPKT (1ULL << 6)
+#define QUIC_EV_CONN_SPKT (1ULL << 7)
+#define QUIC_EV_CONN_ENCPKT (1ULL << 8)
+#define QUIC_EV_CONN_TXPKT (1ULL << 9)
+#define QUIC_EV_CONN_PAPKT (1ULL << 10)
+#define QUIC_EV_CONN_PAPKTS (1ULL << 11)
+#define QUIC_EV_CONN_IO_CB (1ULL << 12)
+#define QUIC_EV_CONN_RMHP (1ULL << 13)
+#define QUIC_EV_CONN_PRSHPKT (1ULL << 14)
+#define QUIC_EV_CONN_PRSAPKT (1ULL << 15)
+#define QUIC_EV_CONN_PRSFRM (1ULL << 16)
+#define QUIC_EV_CONN_PRSAFRM (1ULL << 17)
+#define QUIC_EV_CONN_BFRM (1ULL << 18)
+#define QUIC_EV_CONN_PHPKTS (1ULL << 19)
+#define QUIC_EV_CONN_TRMHP (1ULL << 20)
+#define QUIC_EV_CONN_ELRMHP (1ULL << 21)
+#define QUIC_EV_CONN_RXPKT (1ULL << 22)
+#define QUIC_EV_CONN_SSLDATA (1ULL << 23)
+#define QUIC_EV_CONN_RXCDATA (1ULL << 24)
+#define QUIC_EV_CONN_ADDDATA (1ULL << 25)
+#define QUIC_EV_CONN_FFLIGHT (1ULL << 26)
+#define QUIC_EV_CONN_SSLALERT (1ULL << 27)
+#define QUIC_EV_CONN_PSTRM (1ULL << 28)
+#define QUIC_EV_CONN_RTTUPDT (1ULL << 29)
+#define QUIC_EV_CONN_CC (1ULL << 30)
+#define QUIC_EV_CONN_SPPKTS (1ULL << 31)
+#define QUIC_EV_CONN_PKTLOSS (1ULL << 32)
+#define QUIC_EV_CONN_STIMER (1ULL << 33)
+#define QUIC_EV_CONN_PTIMER (1ULL << 34)
+#define QUIC_EV_CONN_SPTO (1ULL << 35)
+#define QUIC_EV_CONN_BCFRMS (1ULL << 36)
+#define QUIC_EV_CONN_XPRTSEND (1ULL << 37)
+#define QUIC_EV_CONN_XPRTRECV (1ULL << 38)
+#define QUIC_EV_CONN_FREED (1ULL << 39)
+#define QUIC_EV_CONN_CLOSE (1ULL << 40)
+#define QUIC_EV_CONN_ACKSTRM (1ULL << 41)
+#define QUIC_EV_CONN_FRMLIST (1ULL << 42)
+#define QUIC_EV_STATELESS_RST (1ULL << 43)
+#define QUIC_EV_TRANSP_PARAMS (1ULL << 44)
+#define QUIC_EV_CONN_IDLE_TIMER (1ULL << 45)
+#define QUIC_EV_CONN_SUB (1ULL << 46)
+#define QUIC_EV_CONN_ELEVELSEL (1ULL << 47)
+#define QUIC_EV_CONN_RCV (1ULL << 48)
+#define QUIC_EV_CONN_KILL (1ULL << 49)
+#define QUIC_EV_CONN_KP (1ULL << 50)
+#define QUIC_EV_CONN_SSL_COMPAT (1ULL << 51)
+#define QUIC_EV_CONN_SET_AFFINITY (1ULL << 52)
+
#endif /* _HAPROXY_QUIC_TRACE_T_H */
#include <haproxy/quic_trace-t.h>
+#define TRACE_SOURCE &trace_quic
+
/* Initializes a enc_debug_info struct (only for debug purpose) */
static inline void enc_debug_info_init(struct enc_debug_info *edi,
unsigned char *payload, size_t payload_len,
#include <haproxy/quic_conn-t.h>
#include <haproxy/quic_enc.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
DECLARE_STATIC_POOL(pool_head_quic_arng, "quic_arng", sizeof(struct quic_arng_node));
/* Deallocate <l> list of ACK ranges. */
#include <haproxy/quic_cc.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/ticks.h>
#include <haproxy/trace.h>
* not want to use any floating point operations to be fast!
* (See net/ipv4/tcp_cubic.c)
*/
-#define TRACE_SOURCE &trace_quic
#define CUBIC_BETA_SCALE 1024
#define CUBIC_BETA_SCALE_SHIFT 10
#include <haproxy/chunk.h>
#include <haproxy/quic_cc.h>
#include <haproxy/quic_conn-t.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
/* Newreno state */
struct nr {
uint32_t state;
#include <haproxy/api-t.h>
#include <haproxy/quic_conn-t.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
unsigned int quic_cc_nocc_fixed_cwnd;
static int quic_cc_nocc_init(struct quic_cc *cc)
#include <haproxy/quic_frame.h>
#include <haproxy/quic_rx-t.h>
#include <haproxy/quic_tp-t.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/quic_tx.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
DECLARE_POOL(pool_head_quic_frame, "quic_frame", sizeof(struct quic_frame));
const char *quic_frame_type_string(enum quic_frame_type ft)
#include <haproxy/quic_conn-t.h>
#include <haproxy/quic_loss.h>
#include <haproxy/quic_tls.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/atomic.h>
#include <haproxy/list.h>
#include <haproxy/ticks.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
/* Update <ql> QUIC loss information with new <rtt> measurement and <ack_delay>
* on ACK frame receipt which MUST be min(ack->ack_delay, max_ack_delay)
* before the handshake is confirmed.
#include <haproxy/quic_conn.h>
#include <haproxy/quic_tls.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/ssl_sock.h>
#include <haproxy/trace.h>
#define QUIC_TLS_KEY_LABEL "key"
#define QUIC_TLS_IV_LABEL "iv"
-#define TRACE_SOURCE &trace_quic
-
struct quic_tls_compat_record {
unsigned char type;
const unsigned char *payload;
#include <haproxy/quic_stream.h>
#include <haproxy/quic_ssl.h>
#include <haproxy/quic_tls.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/quic_tx.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
DECLARE_POOL(pool_head_quic_conn_rxbuf, "quic_conn_rxbuf", QUIC_CONN_RX_BUFSZ);
DECLARE_POOL(pool_head_quic_dgram, "quic_dgram", sizeof(struct quic_dgram));
DECLARE_POOL(pool_head_quic_rx_packet, "quic_rx_packet", sizeof(struct quic_rx_packet));
#include <haproxy/quic_rx.h>
#include <haproxy/quic_sock.h>
#include <haproxy/quic_tp-t.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/session.h>
#include <haproxy/stats-t.h>
#include <haproxy/task.h>
#include <haproxy/tools.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
-#define TRACE_SOURCE &trace_quic
-
/* Log only first EACCES bind() error runtime occurence. */
static volatile char quic_bind_eacces_warn = 0;
#include <haproxy/quic_ssl.h>
#include <haproxy/quic_tls.h>
#include <haproxy/quic_tp.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/ssl_sock.h>
-
-#define TRACE_SOURCE &trace_quic
+#include <haproxy/trace.h>
DECLARE_POOL(pool_head_quic_ssl_sock_ctx, "quic_ssl_sock_ctx", sizeof(struct ssl_sock_ctx));
#include <haproxy/pool.h>
#include <haproxy/quic_ack.h>
#include <haproxy/quic_conn.h>
-#include <haproxy/quic_trace-t.h>
DECLARE_POOL(pool_head_quic_enc_level, "quic_enc_level", sizeof(struct quic_enc_level));
#include <haproxy/quic_conn.h>
#include <haproxy/quic_enc.h>
#include <haproxy/quic_tp.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
#define QUIC_MAX_UDP_PAYLOAD_SIZE 2048
-#define TRACE_SOURCE &trace_quic
-
/* This is the values of some QUIC transport parameters when absent.
* Should be used to initialize any transport parameters (local or remote)
* before updating them with customized values.
#include <haproxy/quic_conn.h>
#include <haproxy/quic_tls.h>
-#include <haproxy/quic_trace-t.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/quic_tp.h>
#include <haproxy/trace.h>
.report_events = ~0, /* report everything by default */
};
-#define TRACE_SOURCE &trace_quic
INITCALL1(STG_REGISTER, trace_register_source, TRACE_SOURCE);
/* Trace callback for QUIC.
#include <haproxy/quic_trace.h>
#include <haproxy/ssl_sock-t.h>
-#define TRACE_SOURCE &trace_quic
-
DECLARE_POOL(pool_head_quic_tx_packet, "quic_tx_packet", sizeof(struct quic_tx_packet));
DECLARE_POOL(pool_head_quic_cc_buf, "quic_cc_buf", QUIC_MAX_CC_BUFSIZE);
#include <haproxy/connection.h>
#include <haproxy/quic_conn.h>
#include <haproxy/ssl_sock.h>
+#include <haproxy/quic_trace.h>
#include <haproxy/trace.h>
-#define TRACE_SOURCE &trace_quic
-
static void quic_close(struct connection *conn, void *xprt_ctx)
{
struct ssl_sock_ctx *conn_ctx = xprt_ctx;