From da76459dc21b5af2449af2d36eb95226cb186ce2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 11:35:11 +0200 Subject: Adding upstream version 2.6.12. Signed-off-by: Daniel Baumann --- doc/internals/muxes.svg | 911 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 911 insertions(+) create mode 100644 doc/internals/muxes.svg (limited to 'doc/internals/muxes.svg') diff --git a/doc/internals/muxes.svg b/doc/internals/muxes.svg new file mode 100644 index 0000000..3feaa4d --- /dev/null +++ b/doc/internals/muxes.svg @@ -0,0 +1,911 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Transport + + + + + + + + + + + + + + + + + +I/O tasklet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +application + + +mux->subscribe(SUB_RECV) + +MUX + +Stream ID + +Stream ID + +tasklet_wakeup() + +tasklet_wakeup() + +mux->snd_buf() + +mux->rcv_buf() + +xprt->snd_buf(mbuf) + +xprt->rcv_buf(dbuf) + +HTX contents when mode==HTTP + +tasklet_wakeup() + +tasklet_wakeup() + + +mux->subscribe(SUB_SEND) + + +mux streams + + +mux=conn->mux + +Transport + +encoding/decoding function + +transport layer + +multiplexer (MUX/DEMUX) + +general processing function + +stream buffer (byte-level FIFO) + +xprt->subscribe(SUB_RECV) + +xprt->subscribe(SUB_SEND) + + +stconn + + +(eg: checks, streams) + + +connection = sc->sedesc->conn + +Notes: + +snd_buf() will move the + +buffer (zero-copy) when + +the destination is empty. + +- the application is also + +is sc->app with sc->app_ops + +- transport layers (xprt) are + +stackable. conn->xprt is + +the topmost one. + +called the app layer and + +- mux->rcv_buf() and + + + + + + + + + + + + + + + + + + + + + + + + + + + +encode + +encode + +encode + +encode + +decode + +decode + +decode + +decode + +mux_io_cb + +mux_io_cb + +sc_conn_io_cb + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +channel buf + + +rxbuf + + +dbuf + +mbuf + + + + + +DEMUX + + -- cgit v1.2.3