MINOR: quic: Attach the QUIC connection to a thread.

Compute a thread ID from a QUIC CID and attach the I/O handler to this
thread.
This commit is contained in:
Frédéric Lécaille 2021-09-03 15:56:18 +02:00 committed by Amaury Denoyelle
parent 2fc76cffaf
commit d4d6aa7b5c
2 changed files with 7 additions and 0 deletions

View File

@ -117,6 +117,12 @@ static inline void quic_cid_dump(struct buffer *buf, struct quic_cid *cid)
chunk_appendf(buf, ")");
}
/* Simply compute a thread ID from a CID */
static inline unsigned long quic_get_cid_tid(const struct quic_cid *cid)
{
return cid->data[0] % global.nbthread;
}
/* Free the CIDs attached to <conn> QUIC connection.
* Always succeeds.
*/

View File

@ -4406,6 +4406,7 @@ static int qc_conn_init(struct connection *conn, void **xprt_ctx)
struct bind_conf *bc = __objt_listener(conn->target)->bind_conf;
struct quic_conn *qc = ctx->conn->qc;
ctx->wait_event.tasklet->tid = quic_get_cid_tid(&qc->scid);
if (ssl_bio_and_sess_init(conn, bc->initial_ctx,
&ctx->ssl, &ctx->bio, ha_quic_meth, ctx) == -1)
goto err;