commit | 2ea28b21c71b7b1069dbff77252c9abf36f00c95 | [log] [tgz] |
---|---|---|
author | QUICHE team <quiche-dev@google.com> | Wed Oct 27 10:10:08 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Oct 27 10:11:08 2021 -0700 |
tree | 8207243511fd5b08ee8b98d940e198e239faca13 | |
parent | 6f580e900d2531ff57acd8f4bc214f7e54df5815 [diff] |
Automatically send PING acks by default in OgHttp2Session. This CL allows OgHttp2Session to automatically enqueue PING ack frames in response to receiving non-ack PINGs from its peer. Note that OgHttp2Session already automatically enqueues SETTINGS ack frames: http://google3/third_party/http2/adapter/oghttp2_session.cc;l=843-845;rcl=403185538. This PING ack addition aligns OgHttp2Session with default nghttp2 behavior. This CL also adds an option to OgHttp2Session::Options to disable automatic PING acks, analogous to nghttp2_option_set_no_auto_ping_ack(). The default automatic PING acks are helpful in Envoy's frame flood detection tests. With this CL, the following four tests now pass with oghttp2 migration cl/392724171, as hypothesized/hoped for in http://b/201799377#comment2: - Http2FloodMitigationTest.UpstreamFloodDetectionIsOnByDefault http://sponge2/c75a3080-9839-4d4c-8ed6-4ad33a1d4aa5 - Http2FloodMitigationTest.UpstreamPingFlood http://sponge2/64cb3358-31f5-4b6e-b94c-bd7082c49fd4 - Http2FloodMitigationTest.UpstreamRstStreamOnStreamIdleTimeout http://sponge2/bb3585d3-ed50-4b2b-8d87-9123b6baa9ba - Http2FloodMitigationTest.UpstreamRstStreamOnDownstreamRemoteClose http://sponge2/34466067-2445-45ae-8cf8-61924a0f8d85 PiperOrigin-RevId: 405915725
QUICHE stands for QUIC, Http/2, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.
There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:
To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:
To contribute to QUICHE, follow instructions at CONTRIBUTING.md.
QUICHE is only supported on little-endian platforms.