MINOR: trace: add quic_conn argument definition
Prepare trace support for quic_conn instances as argument. This will be used by the xprt-quic layer in replacement of the connection. This commit is part of the rearchitecture of xprt-quic layers and the separation between xprt and connection instances.
This commit is contained in:
parent
4fd53d772f
commit
baea96400f
|
@ -43,36 +43,54 @@
|
|||
#define TRC_ARG_SESS (1 << 1)
|
||||
#define TRC_ARG_STRM (1 << 2)
|
||||
#define TRC_ARG_CHK (1 << 3)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARG_QCON (1 << 4)
|
||||
#endif
|
||||
|
||||
#define TRC_ARG1_PRIV (TRC_ARG_PRIV << 0)
|
||||
#define TRC_ARG1_CONN (TRC_ARG_CONN << 0)
|
||||
#define TRC_ARG1_SESS (TRC_ARG_SESS << 0)
|
||||
#define TRC_ARG1_STRM (TRC_ARG_STRM << 0)
|
||||
#define TRC_ARG1_CHK (TRC_ARG_CHK << 0)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARG1_QCON (TRC_ARG_QCON << 0)
|
||||
#endif
|
||||
|
||||
#define TRC_ARG2_PRIV (TRC_ARG_PRIV << 8)
|
||||
#define TRC_ARG2_CONN (TRC_ARG_CONN << 8)
|
||||
#define TRC_ARG2_SESS (TRC_ARG_SESS << 8)
|
||||
#define TRC_ARG2_STRM (TRC_ARG_STRM << 8)
|
||||
#define TRC_ARG2_CHK (TRC_ARG_CHK << 8)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARG2_QCON (TRC_ARG_QCON << 8)
|
||||
#endif
|
||||
|
||||
#define TRC_ARG3_PRIV (TRC_ARG_PRIV << 16)
|
||||
#define TRC_ARG3_CONN (TRC_ARG_CONN << 16)
|
||||
#define TRC_ARG3_SESS (TRC_ARG_SESS << 16)
|
||||
#define TRC_ARG3_STRM (TRC_ARG_STRM << 16)
|
||||
#define TRC_ARG3_CHK (TRC_ARG_CHK << 16)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARG3_QCON (TRC_ARG_QCON << 16)
|
||||
#endif
|
||||
|
||||
#define TRC_ARG4_PRIV (TRC_ARG_PRIV << 24)
|
||||
#define TRC_ARG4_CONN (TRC_ARG_CONN << 24)
|
||||
#define TRC_ARG4_SESS (TRC_ARG_SESS << 24)
|
||||
#define TRC_ARG4_STRM (TRC_ARG_STRM << 24)
|
||||
#define TRC_ARG4_CHK (TRC_ARG_CHK << 24)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARG4_QCON (TRC_ARG_QCON << 24)
|
||||
#endif
|
||||
|
||||
/* usable to detect the presence of any arg of the desired type */
|
||||
#define TRC_ARGS_CONN (TRC_ARG_CONN * 0x01010101U)
|
||||
#define TRC_ARGS_SESS (TRC_ARG_SESS * 0x01010101U)
|
||||
#define TRC_ARGS_STRM (TRC_ARG_STRM * 0x01010101U)
|
||||
#define TRC_ARGS_CHK (TRC_ARG_CHK * 0x01010101U)
|
||||
#ifdef USE_QUIC
|
||||
#define TRC_ARGS_QCON (TRC_ARG_QCON * 0x01010101U)
|
||||
#endif
|
||||
|
||||
|
||||
enum trace_state {
|
||||
|
@ -104,6 +122,9 @@ enum trace_lockon {
|
|||
TRACE_LOCKON_SESSION, // lock on the session that started the trace
|
||||
TRACE_LOCKON_STREAM, // lock on the stream that started the trace
|
||||
TRACE_LOCKON_CHECK, // lock on the check that started the trace
|
||||
#ifdef USE_QUIC
|
||||
TRACE_LOCKON_QCON, // lock on the QUIC connection that started the trace
|
||||
#endif
|
||||
TRACE_LOCKON_ARG1, // lock on arg1, totally source-dependent
|
||||
TRACE_LOCKON_ARG2, // lock on arg2, totally source-dependent
|
||||
TRACE_LOCKON_ARG3, // lock on arg3, totally source-dependent
|
||||
|
|
11
src/trace.c
11
src/trace.c
|
@ -86,6 +86,9 @@ void __trace(enum trace_level level, uint64_t mask, struct trace_source *src,
|
|||
const struct stream *strm = NULL;
|
||||
const struct connection *conn = NULL;
|
||||
const struct check *check = NULL;
|
||||
#ifdef USE_QUIC
|
||||
const struct quic_conn *qc = NULL;
|
||||
#endif
|
||||
const void *lockon_ptr = NULL;
|
||||
struct ist ist_func = ist(func);
|
||||
char tnum[4];
|
||||
|
@ -112,6 +115,11 @@ void __trace(enum trace_level level, uint64_t mask, struct trace_source *src,
|
|||
if (src->arg_def & TRC_ARGS_CHK)
|
||||
check = trace_pick_arg(src->arg_def & TRC_ARGS_CHK, a1, a2, a3, a4);
|
||||
|
||||
#ifdef USE_QUIC
|
||||
if (src->arg_def & TRC_ARGS_QCON)
|
||||
qc = trace_pick_arg(src->arg_def & TRC_ARGS_QCON, a1, a2, a3, a4);
|
||||
#endif
|
||||
|
||||
if (!sess && strm)
|
||||
sess = strm->sess;
|
||||
else if (!sess && conn)
|
||||
|
@ -171,6 +179,9 @@ void __trace(enum trace_level level, uint64_t mask, struct trace_source *src,
|
|||
case TRACE_LOCKON_STREAM: lockon_ptr = strm; break;
|
||||
case TRACE_LOCKON_CHECK: lockon_ptr = check; break;
|
||||
case TRACE_LOCKON_THREAD: lockon_ptr = ti; break;
|
||||
#ifdef USE_QUIC
|
||||
case TRACE_LOCKON_QCON: lockon_ptr = qc; break;
|
||||
#endif
|
||||
case TRACE_LOCKON_ARG1: lockon_ptr = a1; break;
|
||||
case TRACE_LOCKON_ARG2: lockon_ptr = a2; break;
|
||||
case TRACE_LOCKON_ARG3: lockon_ptr = a3; break;
|
||||
|
|
Loading…
Reference in New Issue