From 46cd9fc970e6a17457be497db71c681d3eaa3087 Mon Sep 17 00:00:00 2001 From: Aloys Augustin Date: Mon, 20 May 2019 17:39:17 +0200 Subject: [PATCH] QUIC: Add initial documentation Change-Id: Ic00f8827f572e13b07d55c6c2f10fb6cdebf7e72 Signed-off-by: Aloys Augustin --- src/plugins/quic/quic_doc.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/plugins/quic/quic_doc.md 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 + -- 2.16.6