Kernel TLS Offload (kTLS) support in Envoy
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 428
Description
*Title*: Kernel TLS Offload (kTLS) support in Envoy
*Description*:
kTLS was added into the kernel lately and it enables high performance use cases such as using `sendfile` to send data. It also supports potential hardware/NIC offloads to make things even faster. It would be really nice to have this feature in Envoy also. I looked up previous issues and found ~2 issues briefly mentioning kTLS, but the discussions didn't advance further. I'm wondering whether there are plans to support this?
I thought about it and maybe we can have an IoHandle abstraction that hides away the kTLS offloading, or maybe integrate it into the transport socket... 🤔
[optional *Relevant Links*:]
- kTLS documentation: https://docs.kernel.org/networking/tls-offload.html
- original issue that mentioned kTLS: https://github.com/envoyproxy/envoy/issues/5620
- NGINX kTLS experiment: https://www.nginx.com/blog/improving-nginx-performance-with-kernel-tls/
- Netflix slides: http://nabstreamingsummit.com/wp-content/uploads/2022/05/2022-Streaming-Summit-Netflix.pdf
Contributor guide
Assessment
This issue has not been assessed yet.