MINOR: quic: remove TID ref from quic_conn
Remove <tid> member in quic_conn. This is moved to quic_connection_id
instance.
For the moment, this change has no impact. Indeed, qc.tid reference
could easily be replaced by tid as all of this work was already done on
the connection thread. However, it is planified to support quic_conn
thread migration in the future, so removal of qc.tid will simplify this.
This should be backported up to 2.7.
diff --git a/include/haproxy/quic_conn-t.h b/include/haproxy/quic_conn-t.h
index 5e6b5d6..d366a0b 100644
--- a/include/haproxy/quic_conn-t.h
+++ b/include/haproxy/quic_conn-t.h
@@ -646,8 +646,6 @@
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 710f236..e1725e5 100644
--- a/src/quic_conn.c
+++ b/src/quic_conn.c
@@ -5573,11 +5573,6 @@
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 @@
/* 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 @@
}
/* 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 6dde545..905ecab 100644
--- a/src/quic_sock.c
+++ b/src/quic_sock.c
@@ -879,8 +879,8 @@
*/
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 @@
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