)]}' { "commit": "8c7fb44cab989c3a1772d4f13be4acbd4dc22cb1", "tree": "79fe975b4ee19996d1c385505994ab1672a12317", "parents": [ "139b7443c585e1d8053a17d3397d33d25ae2e26f" ], "author": { "name": "QUICHE team", "email": "quiche-dev@google.com", "time": "Tue Nov 30 18:03:39 2021 -0800" }, "committer": { "name": "Copybara-Service", "email": "copybara-worker@google.com", "time": "Tue Nov 30 18:04:33 2021 -0800" }, "message": "Add OgHttp2Session support for SETTINGS ack callbacks and apply to MAX_CONCURRENT_STREAMS.\n\nThis CL adds support to OgHttp2Session for applying sent SETTINGS parameters on\nreceipt of a SETTINGS ack from the peer. This support is in line with behavior\nin both nghttp2 [1] and Http2Dispatcher [2].\n\nThis CL also uses this newly added support to enforce locally sent\nMAX_CONCURRENT_STREAMS on ack. Note that Envoy behavior currently assumes that\npeer violations of MAX_CONCURRENT_STREAMS are connection-level [3, 4], so\nOgHttp2Session treats violations as a PROTOCOL_ERROR for parity with Envoy.\n\nWith this change, Http2FloodMitigationTest.TooManyStreams now passes with\noghttp2, completing flood frame mitigation integration test parity.\n\nBefore: http://sponge2/6275a2b6-178b-4ea7-b819-dbd0103564da\nAfter: http://sponge2/463d751a-22df-446f-872c-2a6015c52969\n\n[1] http://google3/third_party/nghttp2/src/lib/nghttp2_session.c;l\u003d7065-7088;rcl\u003d409864218\n[2] http://google3/gfe/gfe2/http2/http2_dispatcher.h;l\u003d1185;rcl\u003d410682472\n[3] http://google3/third_party/nghttp2/src/lib/nghttp2_session.c;l\u003d3880-3884;rcl\u003d410682472\n[4] http://google3/third_party/envoy/src/source/common/http/http2/codec_impl.cc;l\u003d1180,1192;rcl\u003d410881808\n\nPiperOrigin-RevId: 413288939\n", "tree_diff": [ { "type": "modify", "old_id": "39b71dc17400a8ad2036d6e474649485fc70c439", "old_mode": 33188, "old_path": "http2/adapter/http2_util.cc", "new_id": "553c0bd6a3995e3666df74a364ce41eb53da7dca", "new_mode": 33188, "new_path": "http2/adapter/http2_util.cc" }, { "type": "modify", "old_id": "08b9ba5c2609b96d020a6dfc76fa72456c3e9633", "old_mode": 33188, "old_path": "http2/adapter/http2_visitor_interface.h", "new_id": "6d843a362532bda1738330e62833619601ff66e4", "new_mode": 33188, "new_path": "http2/adapter/http2_visitor_interface.h" }, { "type": "modify", "old_id": "d40699494a040b6dc2bbae2cb0ebbaef52a2e043", "old_mode": 33188, "old_path": "http2/adapter/nghttp2_adapter_test.cc", "new_id": "3f25f2bd7a185a6a752bafc2be57cb4659d0466a", "new_mode": 33188, "new_path": "http2/adapter/nghttp2_adapter_test.cc" }, { "type": "modify", "old_id": "c3f43567219d5e7e7d86746a071cb6c57dc308c1", "old_mode": 33188, "old_path": "http2/adapter/oghttp2_adapter_test.cc", "new_id": "86d5f729130b5e55da3c771a2140c758d80c35d3", "new_mode": 33188, "new_path": "http2/adapter/oghttp2_adapter_test.cc" }, { "type": "modify", "old_id": "16d302a0d557e3ee7b2b8b19a38c0c1f5f4027e1", "old_mode": 33188, "old_path": "http2/adapter/oghttp2_session.cc", "new_id": "fb37bdd007eac508786efff0ee5076bfb65f1f35", "new_mode": 33188, "new_path": "http2/adapter/oghttp2_session.cc" }, { "type": "modify", "old_id": "3126e00f548b450fef537ae1086c9640429ba3c2", "old_mode": 33188, "old_path": "http2/adapter/oghttp2_session.h", "new_id": "58f34ecf8e93051e22a54d73508bccc01df9a228", "new_mode": 33188, "new_path": "http2/adapter/oghttp2_session.h" } ] }