diff options
author | Aloys Augustin <aloaugus@cisco.com> | 2019-05-20 17:39:17 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-05-21 10:05:12 +0000 |
commit | 46cd9fc970e6a17457be497db71c681d3eaa3087 (patch) | |
tree | 5685c556a63b16968a68966a697e15cfa4dc4c52 /src/plugins | |
parent | f48050785f254afb7515383e8595425fa652e056 (diff) |
QUIC: Add initial documentation
Change-Id: Ic00f8827f572e13b07d55c6c2f10fb6cdebf7e72
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/quic/quic_doc.md | 38 |
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 + |