summaryrefslogtreecommitdiffstats
path: root/src/plugins/quic
diff options
context:
space:
mode:
authorAloys Augustin <aloaugus@cisco.com>2019-05-20 17:39:17 +0200
committerDamjan Marion <dmarion@me.com>2019-05-21 10:05:12 +0000
commit46cd9fc970e6a17457be497db71c681d3eaa3087 (patch)
tree5685c556a63b16968a68966a697e15cfa4dc4c52 /src/plugins/quic
parentf48050785f254afb7515383e8595425fa652e056 (diff)
QUIC: Add initial documentation
Change-Id: Ic00f8827f572e13b07d55c6c2f10fb6cdebf7e72 Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Diffstat (limited to 'src/plugins/quic')
-rw-r--r--src/plugins/quic/quic_doc.md38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/plugins/quic/quic_doc.md b/src/plugins/quic/quic_doc.md
new file mode 100644
index 00000000000..372c2fd9514
--- /dev/null
+++ b/src/plugins/quic/quic_doc.md
@@ -0,0 +1,38 @@
+# QUIC implementation {#rdma_doc}
+
+The quic plugin provides an IETF QUIC protocol implementation. It is based on
+the [quicly](https://github.com/h2o/quicly) library.
+
+This plugin adds the QUIC protocol to VPP's Host Stack. As a result QUIC is
+usable both in internal VPP applications and in external apps.
+
+
+## Maturity level
+Under development: it should mostly work, but has not been thoroughly tested and
+should not be used in production.
+
+
+## Features
+ - only bidirectional streams are supported currently.
+
+
+## Getting started
+
+QUIC constructs are exposed as follows:
+
+- QUIC connections and streams are both regular host stack sessions.
+- QUIC connections can be created and destroyed with regular `connect` and
+ `close` calls with `TRANSPORT_PROTO_QUIC`.
+- Streams can be opened in a connection by calling `connect`again and passing
+ the ID of the connection to which the new stream should belong.
+- Streams can be closed with a regular `close`call.
+- Streams opened by peers can be accepted from the sessions corresponding to
+ QUIC connections.
+- Data can ba exchanged by using the regular `send` and `recv` calls on the
+ stream sessions.
+
+Example code can be found in:
+`src/vnet/session-apps/echo_client.c`: Test client using the internal API
+`src/vnet/session-apps/echoo_server.c`: Test server using the internal API
+`src/tests/vnet/session/quic_echo.c`: Client and server, using the external API
+