quic: fix memset 0 picotls depends on
[vpp.git] / src / plugins / quic / quic_doc.md
1 # QUIC implementation {#quic_doc}
2
3 The quic plugin provides an IETF QUIC protocol implementation. It is based on
4 the [quicly](https://github.com/h2o/quicly) library.
5
6 This plugin adds the QUIC protocol to VPP's Host Stack. As a result QUIC is
7 usable both in internal VPP applications and in external apps.
8
9
10 ## Maturity level
11 Under development: it should mostly work, but has not been thoroughly tested and
12 should not be used in production.
13
14
15 ## Features
16  - only bidirectional streams are supported currently.
17
18
19 ## Getting started
20
21 QUIC constructs are exposed as follows:
22
23 - QUIC connections and streams are both regular host stack sessions.
24 - QUIC connections can be created and destroyed with regular `connect` and
25   `close` calls with `TRANSPORT_PROTO_QUIC`.
26 - Streams can be opened in a connection by calling `connect`again and passing
27   the ID of the connection to which the new stream should belong.
28 - Streams can be closed with a regular `close`call.
29 - Streams opened by peers can be accepted from the sessions corresponding to
30   QUIC connections.
31 - Data can ba exchanged by using the regular `send` and `recv` calls on the
32   stream sessions.
33
34 Example code can be found in:
35 `src/vnet/session-apps/echo_client.c`: Test client using the internal API
36 `src/vnet/session-apps/echoo_server.c`: Test server using the internal API
37 `src/tests/vnet/session/quic_echo.c`: Client and server, using the external API
38