diff --git a/include/haproxy/quic_conn-t.h b/include/haproxy/quic_conn-t.h index 5e6b5d6c0..d366a0b48 100644 --- a/include/haproxy/quic_conn-t.h +++ b/include/haproxy/quic_conn-t.h @@ -646,8 +646,6 @@ struct quic_conn { int fd; /* QUIC transport parameters TLS extension */ int tps_tls_ext; - /* Thread ID this connection is attached to */ - int tid; int state; enum qc_mux_state mux_state; /* status of the connection/mux layer */ struct quic_err err; diff --git a/src/quic_conn.c b/src/quic_conn.c index 710f236b6..e1725e5c9 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -5573,11 +5573,6 @@ static struct quic_conn *qc_new_conn(const struct quic_version *qv, int ipv4, qc->wait_event.tasklet->process = quic_conn_io_cb; qc->wait_event.tasklet->context = qc; qc->wait_event.events = 0; - /* Set tasklet tid based on the SCID selected by us for this - * connection. The upper layer will also be binded on the same thread. - */ - qc->tid = quic_get_cid_tid(qc->scid.data, &l->rx); - qc->wait_event.tasklet->tid = qc->tid; qc->subs = NULL; if (qc_conn_alloc_ssl_ctx(qc) || @@ -5715,7 +5710,7 @@ static int quic_conn_init_timer(struct quic_conn *qc) /* Attach this task to the same thread ID used for the connection */ TRACE_ENTER(QUIC_EV_CONN_NEW, qc); - qc->timer_task = task_new_on(qc->tid); + qc->timer_task = task_new_here(); if (!qc->timer_task) { TRACE_ERROR("timer task allocation failed", QUIC_EV_CONN_NEW, qc); goto leave; @@ -8419,7 +8414,7 @@ static int cli_io_handler_dump_quic(struct appctx *appctx) } /* CIDs */ - chunk_appendf(&trash, "* %p[%02u]: scid=", qc, qc->tid); + chunk_appendf(&trash, "* %p[%02u]: scid=", qc, ctx->thr); for (cid_len = 0; cid_len < qc->scid.len; ++cid_len) chunk_appendf(&trash, "%02x", qc->scid.data[cid_len]); while (cid_len++ < 20) diff --git a/src/quic_sock.c b/src/quic_sock.c index 6dde545e9..905ecab85 100644 --- a/src/quic_sock.c +++ b/src/quic_sock.c @@ -879,8 +879,8 @@ struct quic_accept_queue *quic_accept_queues; */ void quic_accept_push_qc(struct quic_conn *qc) { - struct quic_accept_queue *queue = &quic_accept_queues[qc->tid]; - struct li_per_thread *lthr = &qc->li->per_thr[qc->tid]; + struct quic_accept_queue *queue = &quic_accept_queues[tid]; + struct li_per_thread *lthr = &qc->li->per_thr[tid]; /* early return if accept is already in progress/done for this * connection @@ -904,7 +904,7 @@ void quic_accept_push_qc(struct quic_conn *qc) MT_LIST_APPEND(<hr->quic_accept.conns, &qc->accept_list); /* 3. wake up the queue tasklet */ - tasklet_wakeup(quic_accept_queues[qc->tid].tasklet); + tasklet_wakeup(quic_accept_queues[tid].tasklet); } /* Tasklet handler to accept QUIC connections. Call listener_accept on every