MINOR: quic: Wrong traces after rework

TRACE_*() macros must take a quic_conn struct as first argument.
This commit is contained in:
Frédéric Lécaille 2021-12-27 15:12:09 +01:00
parent 7bf46bb9a9
commit fde2a98dd1
4 changed files with 35 additions and 35 deletions

View File

@ -47,9 +47,9 @@ static inline void quic_loss_init(struct quic_loss *ql)
*/ */
static inline void quic_loss_srtt_update(struct quic_loss *ql, static inline void quic_loss_srtt_update(struct quic_loss *ql,
unsigned int rtt, unsigned int ack_delay, unsigned int rtt, unsigned int ack_delay,
struct quic_conn *conn) struct quic_conn *qc)
{ {
TRACE_PROTO("Loss info update", QUIC_EV_CONN_RTTUPDT, conn->conn, &rtt, &ack_delay, ql); TRACE_PROTO("Loss info update", QUIC_EV_CONN_RTTUPDT, qc, &rtt, &ack_delay, ql);
ql->latest_rtt = rtt; ql->latest_rtt = rtt;
if (!ql->rtt_min) { if (!ql->rtt_min) {
/* No previous measurement. */ /* No previous measurement. */
@ -73,7 +73,7 @@ static inline void quic_loss_srtt_update(struct quic_loss *ql,
/* 8*srtt = 7*srtt + rtt */ /* 8*srtt = 7*srtt + rtt */
ql->srtt += rtt - (ql->srtt >> 3); ql->srtt += rtt - (ql->srtt >> 3);
} }
TRACE_PROTO("Loss info update", QUIC_EV_CONN_RTTUPDT, conn->conn,,, ql); TRACE_PROTO("Loss info update", QUIC_EV_CONN_RTTUPDT, qc,,, ql);
} }
/* Return 1 if a persitent congestion is observed for a list of /* Return 1 if a persitent congestion is observed for a list of
@ -108,9 +108,9 @@ static inline struct quic_pktns *quic_loss_pktns(struct quic_conn *qc)
struct quic_pktns *pktns; struct quic_pktns *pktns;
pktns = &qc->pktns[QUIC_TLS_PKTNS_INITIAL]; pktns = &qc->pktns[QUIC_TLS_PKTNS_INITIAL];
TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc->conn, pktns); TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc, pktns);
for (i = QUIC_TLS_PKTNS_HANDSHAKE; i < QUIC_TLS_PKTNS_MAX; i++) { for (i = QUIC_TLS_PKTNS_HANDSHAKE; i < QUIC_TLS_PKTNS_MAX; i++) {
TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc->conn, &qc->pktns[i]); TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc, &qc->pktns[i]);
if (tick_isset(pktns->tx.loss_time) && if (tick_isset(pktns->tx.loss_time) &&
qc->pktns[i].tx.loss_time < pktns->tx.loss_time) qc->pktns[i].tx.loss_time < pktns->tx.loss_time)
pktns = &qc->pktns[i]; pktns = &qc->pktns[i];
@ -132,7 +132,7 @@ static inline struct quic_pktns *quic_pto_pktns(struct quic_conn *qc,
struct quic_loss *ql = &qc->path->loss; struct quic_loss *ql = &qc->path->loss;
struct quic_pktns *pktns; struct quic_pktns *pktns;
TRACE_ENTER(QUIC_EV_CONN_SPTO, qc->conn); TRACE_ENTER(QUIC_EV_CONN_SPTO, qc);
duration = duration =
(ql->srtt >> 3) + (ql->srtt >> 3) +
(QUIC_MAX(ql->rtt_var, QUIC_TIMER_GRANULARITY) << ql->pto_count); (QUIC_MAX(ql->rtt_var, QUIC_TIMER_GRANULARITY) << ql->pto_count);
@ -178,13 +178,13 @@ static inline struct quic_pktns *quic_pto_pktns(struct quic_conn *qc,
lpto = tmp_pto; lpto = tmp_pto;
pktns = p; pktns = p;
} }
TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc->conn, p); TRACE_PROTO("pktns", QUIC_EV_CONN_SPTO, qc, p);
} }
out: out:
if (pto) if (pto)
*pto = lpto; *pto = lpto;
TRACE_LEAVE(QUIC_EV_CONN_SPTO, qc->conn, pktns, &duration); TRACE_LEAVE(QUIC_EV_CONN_SPTO, qc, pktns, &duration);
return pktns; return pktns;
} }

View File

@ -44,7 +44,7 @@ static void quic_cc_nr_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
{ {
struct quic_path *path; struct quic_path *path;
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc->conn, ev); TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc, ev);
path = container_of(cc, struct quic_path, cc); path = container_of(cc, struct quic_path, cc);
switch (ev->type) { switch (ev->type) {
case QUIC_CC_EVT_ACK: case QUIC_CC_EVT_ACK:
@ -72,7 +72,7 @@ static void quic_cc_nr_ss_cb(struct quic_cc *cc, struct quic_cc_event *ev)
/* XXX TO DO XXX */ /* XXX TO DO XXX */
break; break;
} }
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc->conn,, cc); TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc,, cc);
} }
/* Congestion avoidance callback. */ /* Congestion avoidance callback. */
@ -80,7 +80,7 @@ static void quic_cc_nr_ca_cb(struct quic_cc *cc, struct quic_cc_event *ev)
{ {
struct quic_path *path; struct quic_path *path;
TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc->conn, ev); TRACE_ENTER(QUIC_EV_CONN_CC, cc->qc, ev);
path = container_of(cc, struct quic_path, cc); path = container_of(cc, struct quic_path, cc);
switch (ev->type) { switch (ev->type) {
case QUIC_CC_EVT_ACK: case QUIC_CC_EVT_ACK:
@ -121,7 +121,7 @@ static void quic_cc_nr_ca_cb(struct quic_cc *cc, struct quic_cc_event *ev)
} }
out: out:
TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc->conn, NULL, cc); TRACE_LEAVE(QUIC_EV_CONN_CC, cc->qc, NULL, cc);
} }
static void quic_cc_nr_state_trace(struct buffer *buf, const struct quic_cc *cc) static void quic_cc_nr_state_trace(struct buffer *buf, const struct quic_cc *cc)

View File

@ -271,7 +271,7 @@ static int quic_parse_ping_frame(struct quic_frame *frm, struct quic_conn *qc,
* Returns 1 if succeeded (enough room in <buf> to encode the frame), 0 if not. * Returns 1 if succeeded (enough room in <buf> to encode the frame), 0 if not.
*/ */
static int quic_build_ack_frame(unsigned char **buf, const unsigned char *end, static int quic_build_ack_frame(unsigned char **buf, const unsigned char *end,
struct quic_frame *frm, struct quic_conn *conn) struct quic_frame *frm, struct quic_conn *qc)
{ {
struct quic_tx_ack *tx_ack = &frm->tx_ack; struct quic_tx_ack *tx_ack = &frm->tx_ack;
struct eb64_node *ar, *prev_ar; struct eb64_node *ar, *prev_ar;
@ -280,7 +280,7 @@ static int quic_build_ack_frame(unsigned char **buf, const unsigned char *end,
ar = eb64_last(&tx_ack->arngs->root); ar = eb64_last(&tx_ack->arngs->root);
ar_node = eb64_entry(&ar->node, struct quic_arng_node, first); ar_node = eb64_entry(&ar->node, struct quic_arng_node, first);
TRACE_PROTO("ack range", QUIC_EV_CONN_PRSAFRM, TRACE_PROTO("ack range", QUIC_EV_CONN_PRSAFRM,
conn->conn,, &ar_node->last, &ar_node->first.key); qc,, &ar_node->last, &ar_node->first.key);
if (!quic_enc_int(buf, end, ar_node->last) || if (!quic_enc_int(buf, end, ar_node->last) ||
!quic_enc_int(buf, end, tx_ack->ack_delay) || !quic_enc_int(buf, end, tx_ack->ack_delay) ||
!quic_enc_int(buf, end, tx_ack->arngs->sz - 1) || !quic_enc_int(buf, end, tx_ack->arngs->sz - 1) ||
@ -289,7 +289,7 @@ static int quic_build_ack_frame(unsigned char **buf, const unsigned char *end,
while ((prev_ar = eb64_prev(ar))) { while ((prev_ar = eb64_prev(ar))) {
prev_ar_node = eb64_entry(&prev_ar->node, struct quic_arng_node, first); prev_ar_node = eb64_entry(&prev_ar->node, struct quic_arng_node, first);
TRACE_PROTO("ack range", QUIC_EV_CONN_PRSAFRM, conn->conn,, TRACE_PROTO("ack range", QUIC_EV_CONN_PRSAFRM, qc,,
&prev_ar_node->last, &prev_ar_node->first.key); &prev_ar_node->last, &prev_ar_node->first.key);
if (!quic_enc_int(buf, end, ar_node->first.key - prev_ar_node->last - 2) || if (!quic_enc_int(buf, end, ar_node->first.key - prev_ar_node->last - 2) ||
!quic_enc_int(buf, end, prev_ar_node->last - prev_ar_node->first.key)) !quic_enc_int(buf, end, prev_ar_node->last - prev_ar_node->first.key))
@ -1084,30 +1084,30 @@ const struct quic_frame_parser quic_frame_parsers[] = {
*/ */
int qc_parse_frm(struct quic_frame *frm, struct quic_rx_packet *pkt, int qc_parse_frm(struct quic_frame *frm, struct quic_rx_packet *pkt,
const unsigned char **buf, const unsigned char *end, const unsigned char **buf, const unsigned char *end,
struct quic_conn *conn) struct quic_conn *qc)
{ {
const struct quic_frame_parser *parser; const struct quic_frame_parser *parser;
if (end <= *buf) { if (end <= *buf) {
TRACE_DEVEL("wrong frame", QUIC_EV_CONN_PRSFRM, conn->conn); TRACE_DEVEL("wrong frame", QUIC_EV_CONN_PRSFRM, qc);
return 0; return 0;
} }
frm->type = *(*buf)++; frm->type = *(*buf)++;
if (frm->type > QUIC_FT_MAX) { if (frm->type > QUIC_FT_MAX) {
TRACE_DEVEL("wrong frame type", QUIC_EV_CONN_PRSFRM, conn->conn, frm); TRACE_DEVEL("wrong frame type", QUIC_EV_CONN_PRSFRM, qc, frm);
return 0; return 0;
} }
parser = &quic_frame_parsers[frm->type]; parser = &quic_frame_parsers[frm->type];
if (!(parser->mask & (1 << pkt->type))) { if (!(parser->mask & (1 << pkt->type))) {
TRACE_DEVEL("unauthorized frame", QUIC_EV_CONN_PRSFRM, conn->conn, frm); TRACE_DEVEL("unauthorized frame", QUIC_EV_CONN_PRSFRM, qc, frm);
return 0; return 0;
} }
TRACE_PROTO("frame", QUIC_EV_CONN_PRSFRM, conn->conn, frm); TRACE_PROTO("frame", QUIC_EV_CONN_PRSFRM, qc, frm);
if (!parser->func(frm, conn, buf, end)) { if (!parser->func(frm, qc, buf, end)) {
TRACE_DEVEL("parsing error", QUIC_EV_CONN_PRSFRM, conn->conn, frm); TRACE_DEVEL("parsing error", QUIC_EV_CONN_PRSFRM, qc, frm);
return 0; return 0;
} }
@ -1121,26 +1121,26 @@ int qc_parse_frm(struct quic_frame *frm, struct quic_rx_packet *pkt,
*/ */
int qc_build_frm(unsigned char **buf, const unsigned char *end, int qc_build_frm(unsigned char **buf, const unsigned char *end,
struct quic_frame *frm, struct quic_tx_packet *pkt, struct quic_frame *frm, struct quic_tx_packet *pkt,
struct quic_conn *conn) struct quic_conn *qc)
{ {
const struct quic_frame_builder *builder; const struct quic_frame_builder *builder;
builder = &quic_frame_builders[frm->type]; builder = &quic_frame_builders[frm->type];
if (!(builder->mask & (1 << pkt->type))) { if (!(builder->mask & (1 << pkt->type))) {
/* XXX This it a bug to send an unauthorized frame with such a packet type XXX */ /* XXX This it a bug to send an unauthorized frame with such a packet type XXX */
TRACE_DEVEL("frame skipped", QUIC_EV_CONN_BFRM, conn->conn, frm); TRACE_DEVEL("frame skipped", QUIC_EV_CONN_BFRM, qc, frm);
BUG_ON(!(builder->mask & (1 << pkt->type))); BUG_ON(!(builder->mask & (1 << pkt->type)));
} }
if (end <= *buf) { if (end <= *buf) {
TRACE_DEVEL("not enough room", QUIC_EV_CONN_BFRM, conn->conn, frm); TRACE_DEVEL("not enough room", QUIC_EV_CONN_BFRM, qc, frm);
return 0; return 0;
} }
TRACE_PROTO("frame", QUIC_EV_CONN_BFRM, conn->conn, frm); TRACE_PROTO("frame", QUIC_EV_CONN_BFRM, qc, frm);
*(*buf)++ = frm->type; *(*buf)++ = frm->type;
if (!quic_frame_builders[frm->type].func(buf, end, frm, conn)) { if (!quic_frame_builders[frm->type].func(buf, end, frm, qc)) {
TRACE_DEVEL("frame building error", QUIC_EV_CONN_BFRM, conn->conn, frm); TRACE_DEVEL("frame building error", QUIC_EV_CONN_BFRM, qc, frm);
return 0; return 0;
} }

View File

@ -1827,7 +1827,7 @@ static inline int qc_provide_cdata(struct quic_enc_level *el,
if (SSL_provide_quic_data(ctx->ssl, el->level, data, len) != 1) { if (SSL_provide_quic_data(ctx->ssl, el->level, data, len) != 1) {
TRACE_PROTO("SSL_provide_quic_data() error", TRACE_PROTO("SSL_provide_quic_data() error",
QUIC_EV_CONN_SSLDATA, ctx->conn, pkt, cf, ctx->ssl); QUIC_EV_CONN_SSLDATA, qc, pkt, cf, ctx->ssl);
goto err; goto err;
} }
@ -2050,7 +2050,7 @@ static int qc_handle_bidi_strm_frm(struct quic_rx_packet *pkt,
total += qc_treat_rx_strm_frms(strm); total += qc_treat_rx_strm_frms(strm);
if (total && qc->qcc->app_ops->decode_qcs(strm, strm_frm->fin, qc->qcc->ctx) < 0) { if (total && qc->qcc->app_ops->decode_qcs(strm, strm_frm->fin, qc->qcc->ctx) < 0) {
TRACE_PROTO("Decoding error", QUIC_EV_CONN_PSTRM); TRACE_PROTO("Decoding error", QUIC_EV_CONN_PSTRM, qc);
return 0; return 0;
} }
@ -2323,7 +2323,7 @@ static int qc_parse_pkt_frms(struct quic_rx_packet *pkt, struct ssl_sock_ctx *ct
if (state >= QUIC_HS_ST_SERVER_INITIAL) { if (state >= QUIC_HS_ST_SERVER_INITIAL) {
quic_tls_discard_keys(&qc->els[QUIC_TLS_ENC_LEVEL_INITIAL]); quic_tls_discard_keys(&qc->els[QUIC_TLS_ENC_LEVEL_INITIAL]);
TRACE_PROTO("discarding Initial pktns", QUIC_EV_CONN_PRSHPKT, ctx->conn); TRACE_PROTO("discarding Initial pktns", QUIC_EV_CONN_PRSHPKT, qc);
quic_pktns_discard(qc->els[QUIC_TLS_ENC_LEVEL_INITIAL].pktns, qc); quic_pktns_discard(qc->els[QUIC_TLS_ENC_LEVEL_INITIAL].pktns, qc);
qc_set_timer(ctx->qc); qc_set_timer(ctx->qc);
if (state < QUIC_HS_ST_SERVER_HANDSHAKE) if (state < QUIC_HS_ST_SERVER_HANDSHAKE)
@ -5103,10 +5103,10 @@ static int qc_conn_init(struct connection *conn, void **xprt_ctx)
st = HA_ATOMIC_LOAD(&qc->state); st = HA_ATOMIC_LOAD(&qc->state);
ssl_err = SSL_get_error(ctx->ssl, ssl_err); ssl_err = SSL_get_error(ctx->ssl, ssl_err);
if (ssl_err == SSL_ERROR_WANT_READ || ssl_err == SSL_ERROR_WANT_WRITE) { if (ssl_err == SSL_ERROR_WANT_READ || ssl_err == SSL_ERROR_WANT_WRITE) {
TRACE_PROTO("SSL handshake", QUIC_EV_CONN_HDSHK, ctx->conn, &st, &ssl_err); TRACE_PROTO("SSL handshake", QUIC_EV_CONN_HDSHK, qc, &st, &ssl_err);
} }
else { else {
TRACE_DEVEL("SSL handshake error", QUIC_EV_CONN_HDSHK, ctx->conn, &st, &ssl_err); TRACE_DEVEL("SSL handshake error", QUIC_EV_CONN_HDSHK, qc, &st, &ssl_err);
goto err; goto err;
} }
} }
@ -5137,7 +5137,7 @@ static int qc_conn_init(struct connection *conn, void **xprt_ctx)
out: out:
HA_ATOMIC_STORE(&qc->xprt_ctx, ctx); HA_ATOMIC_STORE(&qc->xprt_ctx, ctx);
TRACE_LEAVE(QUIC_EV_CONN_NEW, conn); TRACE_LEAVE(QUIC_EV_CONN_NEW, qc);
return 0; return 0;
@ -5157,7 +5157,7 @@ static int qc_xprt_start(struct connection *conn, void *ctx)
qc = conn->qc; qc = conn->qc;
if (!quic_conn_init_timer(qc)) { if (!quic_conn_init_timer(qc)) {
TRACE_PROTO("Non initialized timer", QUIC_EV_CONN_LPKT, conn); TRACE_PROTO("Non initialized timer", QUIC_EV_CONN_LPKT, qc);
return 0; return 0;
} }