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()));