envoyproxy / envoyproxy/envoy

Kernel TLS Offload (kTLS) support in Envoy

Open
#23,968 7 comments 9 reactions 0 assignees View on GitHub
area/tls help wanted
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.