gfe-relnote: Let GFE be able to use HTTP2(tree-style) priority write scheduler in QUIC and enable it via a connection option H2PR. Protected by gfe2_reloadable_flag_quic_use_http2_priority_write_scheduler.
PiperOrigin-RevId: 260938733
Change-Id: I6d3f6c325a07b17bdfd8c416add8327b8d54be8a
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 964ddc1..1dbaf44 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -88,7 +88,8 @@
control_frame_manager_(this),
last_message_id_(0),
closed_streams_clean_up_alarm_(nullptr),
- supported_versions_(supported_versions) {
+ supported_versions_(supported_versions),
+ use_http2_priority_write_scheduler_(false) {
closed_streams_clean_up_alarm_ =
QuicWrapUnique<QuicAlarm>(connection_->alarm_factory()->CreateAlarm(
new ClosedStreamsCleanUpDelegate(this)));
@@ -993,6 +994,13 @@
if (ContainsQuicTag(config_.ReceivedConnectionOptions(), kIFWA)) {
AdjustInitialFlowControlWindows(1024 * 1024);
}
+ // Enable HTTP2 (tree-style) priority write scheduler.
+ if (GetQuicReloadableFlag(quic_use_http2_priority_write_scheduler) &&
+ ContainsQuicTag(config_.ReceivedConnectionOptions(), kH2PR) &&
+ !VersionHasIetfQuicFrames(connection_->transport_version())) {
+ use_http2_priority_write_scheduler_ =
+ write_blocked_streams_.UseHttp2PriorityScheduler();
+ }
}
config_.SetStatelessResetTokenToSend(GetStatelessResetToken());