Use Quic protocol flags to control QuicStreamIdManager's max_streams_window. This adds tunability. gfe-relnote: no behavior change. not protected. PiperOrigin-RevId: 305244897 Change-Id: I30e290d1acbd63919096ac577b5b13595ec63ca6
diff --git a/quic/core/quic_stream_id_manager.cc b/quic/core/quic_stream_id_manager.cc index 533c89e..5cb8077 100644 --- a/quic/core/quic_stream_id_manager.cc +++ b/quic/core/quic_stream_id_manager.cc
@@ -101,7 +101,8 @@ void QuicStreamIdManager::MaybeSendMaxStreamsFrame() { if ((incoming_advertised_max_streams_ - incoming_stream_count_) > - (incoming_initial_max_open_streams_ / kMaxStreamsWindowDivisor)) { + (incoming_initial_max_open_streams_ / + GetQuicFlag(FLAGS_quic_max_streams_window_divisor))) { // window too large, no advertisement return; }
diff --git a/quic/core/quic_stream_id_manager.h b/quic/core/quic_stream_id_manager.h index e66bc22..4edc363 100644 --- a/quic/core/quic_stream_id_manager.h +++ b/quic/core/quic_stream_id_manager.h
@@ -17,12 +17,7 @@ class QuicStreamIdManagerPeer; } // namespace test -// This constant controls the size of the window when deciding whether -// to generate a MAX_STREAMS frame or not. See the discussion of the -// window, below, for more details. -const int kMaxStreamsWindowDivisor = 2; - -// This class manages the stream ids for Version 99/IETF QUIC. +// This class manages the stream ids for IETF QUIC. class QUIC_EXPORT_PRIVATE QuicStreamIdManager { public: class QUIC_EXPORT_PRIVATE DelegateInterface {
diff --git a/quic/core/quic_stream_id_manager_test.cc b/quic/core/quic_stream_id_manager_test.cc index 1062412..aedec33 100644 --- a/quic/core/quic_stream_id_manager_test.cc +++ b/quic/core/quic_stream_id_manager_test.cc
@@ -323,7 +323,7 @@ // Open and then close a number of streams to get close to the threshold of // sending a MAX_STREAM_FRAME. int stream_count = stream_id_manager_.incoming_initial_max_open_streams() / - kMaxStreamsWindowDivisor - + GetQuicFlag(FLAGS_quic_max_streams_window_divisor) - 1; // Should not get a control-frame transmission since the peer should have @@ -415,7 +415,7 @@ // cause a MAX STREAMS frame to be generated. int i = static_cast<int>(stream_id_manager_.incoming_initial_max_open_streams() / - kMaxStreamsWindowDivisor); + GetQuicFlag(FLAGS_quic_max_streams_window_divisor)); QuicStreamId id = QuicStreamIdManagerPeer::GetFirstIncomingStreamId(&stream_id_manager_); EXPECT_CALL(delegate_, SendMaxStreams(first_advert + i, IsUnidirectional()));