summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2022-11-28 13:18:53 +0000
committerHugo Landau <hlandau@openssl.org>2023-04-26 15:59:37 +0100
commitdda864793e2de00159f268d910b95e98f21525ae (patch)
treebcb60a4124b81bb685de20cd7ba924654d8e88f2 /doc
parentaed7082419465d1c74a0b96cbdc9ae938deaff06 (diff)
downloadopenssl-new-dda864793e2de00159f268d910b95e98f21525ae.tar.gz
QUIC I/O Architecture Design: Add block diagram, tweak wording
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19770)
Diffstat (limited to 'doc')
-rw-r--r--doc/designs/quic-design/images/quic-io-arch-1.pngbin0 -> 11113 bytes
-rw-r--r--doc/designs/quic-design/quic-io-arch.md10
2 files changed, 6 insertions, 4 deletions
diff --git a/doc/designs/quic-design/images/quic-io-arch-1.png b/doc/designs/quic-design/images/quic-io-arch-1.png
new file mode 100644
index 0000000000..3c6ccba27f
--- /dev/null
+++ b/doc/designs/quic-design/images/quic-io-arch-1.png
Binary files differ
diff --git a/doc/designs/quic-design/quic-io-arch.md b/doc/designs/quic-design/quic-io-arch.md
index 09115e65a2..403e3a11e0 100644
--- a/doc/designs/quic-design/quic-io-arch.md
+++ b/doc/designs/quic-design/quic-io-arch.md
@@ -104,10 +104,10 @@ parallel threads. Under this model, there would be three threads:
This has a large number of disadvantages:
- There is a hard requirement for threading functionality in order to be
- able to support blocking semantics at the application level. Use of blocking
- semantics at the application level will have a hard requirement on use of the
- thread assisted mode. In environments where threading support is not available
- or desired, our APIs will only be usable in a non-blocking fashion.
+ able to support blocking semantics at the application level. Applications
+ which require blocking semantics would only be able to function in thread
+ assisted mode. In environments where threading support is not available or
+ desired, our APIs would only be usable in a non-blocking fashion.
- Several threads are spawned which the application is not in control of.
This undermines our general approach of providing the application with control
@@ -282,6 +282,8 @@ non-blocking I/O internally. Applications can use blocking or non-blocking I/O
at the libssl API level. Network-level BIOs must operate in a non-blocking mode
or be configurable by QUIC to this end.
+![Block Diagram](images/quic-io-arch-1.png "Block Diagram")
+
### Support of arbitrary BIOs
We need to support not just socket FDs but arbitrary BIOs as the basis for the