microsoft / msquic

Cross-platform, C implementation of the IETF QUIC protocol, exposed to C, C++, C# and Rust.
MIT License
4.07k stars 536 forks source link

Use eBPF to Do CID-based RSS on Linux #2444

Open nibanks opened 2 years ago

nibanks commented 2 years ago

Describe the feature you'd like supported

We already use cBPF very minimally to do RSS on Linux but we don't do it based on the (short header) CID. The rest of the QUIC layers are already optimized to take advantage of it.

Proposed solution

Do RSS based on QUIC CID instead of tuple hash.

Additional context

Interesting blog related from Cloudflare: https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/.

thhous-msft commented 2 years ago

We actually don't use eBPF here. We use cBPF, which basically just does a quick mapping from the kernel structs assigned cpu to the right socket. So we don't actually have any of the eBPF infrastructure set up, and that would be a part of this change.