Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Use Catch as Unit Test Framework. The header file is under tests/include.

How to build

You have two ways to enable QUIC on ATS:

  • Use Quiche library
    • This uses Quiche's QUIC implementation
  • Use an SSL library that supports QUIC (i.e. BoringSSL or OpenSSL from quictls)
    • This uses ATS's QUIC implementation

We keep ATS's native QUIC implementation for future improvement in case we need more flexibility, but our focus is currently on using Quiche.

Build Quiche (if you want to use Quiche's QUIC implementation)

Currently ATS is compatible with Quiche 0.14.0.

Please refer to the official documents for the build step. You need to enable ffi feature at minimum. qlog is also available.

https://github.com/cloudflare/quiche

Build an SSL library (if you want to use ATS's QUIC implementation)

ATS now supports 4 variation of SSL libraries. Pick one from below and build it. 

...

https://github.com/akamai/openssl/tree/master-quic-support

Build ATS (

...

quiche branch)

Quiche support is only available on quiche branch at the moment.

Code Block
$ git clone --depth 1 --branch quiche https://github.com/apache/trafficserver
$ cd trafficserver
$ ./configure --prefix=/PATH/TO/ATS --with-quiche=/PATH/TO/QUICHE --enable-debug
$ make
$ make install

Build ATS (master branch)

The requirements are the same as master branch master branch only supports ATS's native implementation at the moment. There is no additional requirement except that you need the SSL library you just built Installing From Source Code

...

The detail is documented here, but below is the essential settings and only these 4 settings are available if you use Quiche.

  • records.config
Code Block
# run 1 UDP thread at least
CONFIG proxy.config.udp.threads INT 1
 
# open server port for quic
CONFIG proxy.config.http.server_ports STRING 4433:quic
  
# enable debug log if you want
CONFIG proxy.config.diags.debug.enabled INT 1
CONFIG proxy.config.diags.debug.tags STRING quic

...