envoyproxy/envoy

HTTP/3 hot restart should be supported with eBPF

Open

#34,731 创建于 2024年6月13日

在 GitHub 查看
 (25 评论) (1 反应) (0 负责人)C++ (5,373 fork)batch import
area/hot_restartarea/quicenhancementhelp wanted

仓库指标

Star
 (27,997 star)
PR 合并指标
 (平均合并 8天) (30 天内合并 378 个 PR)

描述

In #19454, software-level support was added for HTTP/3 during hot restart, in which packets are forwarded from parent instance to child instance for the duration of the hot restart handoff.

Ideally this soft support could be bypassed using eBPF filters to deliver packets to the right instance first time.

To achieve this it would be necessary to:

  • have the QUIC eBPF rule direct packets to the newer instance if they don't have an instance ID in the QUIC header.
  • have the QUIC ID generator include encoding an instance ID.
  • have the QUIC eBPF rule direct packets to the specified instance if they do have an instance ID.
  • modify the hot restart behavior that causes the new instance to not listen until the parent is shut down, to listen immediately if there is eBPF support available. (Probably in pause())

贡献者指南