Add test flag --quic_use_lower_server_response_mtu_for_test that cap server side response packet size. PiperOrigin-RevId: 395525045
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index 9e0c95e..57d16ec 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -3122,7 +3122,11 @@ if (perspective_ == Perspective::IS_SERVER && encryption_level_ == ENCRYPTION_INITIAL && last_size_ > packet_creator_.max_packet_length()) { - SetMaxPacketLength(last_size_); + if (GetQuicFlag(FLAGS_quic_use_lower_server_response_mtu_for_test)) { + SetMaxPacketLength(std::min(last_size_, QuicByteCount(1250))); + } else { + SetMaxPacketLength(last_size_); + } } return true; }
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index b7fba67..68ee43b 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -2832,6 +2832,18 @@ EXPECT_EQ(1000u, connection.max_packet_length()); } +TEST_P(QuicConnectionTest, LowerServerResponseMtuTest) { + set_perspective(Perspective::IS_SERVER); + connection_.SetMaxPacketLength(1000); + EXPECT_EQ(1000u, connection_.max_packet_length()); + + SetQuicFlag(FLAGS_quic_use_lower_server_response_mtu_for_test, true); + EXPECT_CALL(visitor_, OnCryptoFrame(_)).Times(::testing::AtMost(1)); + EXPECT_CALL(visitor_, OnStreamFrame(_)).Times(::testing::AtMost(1)); + ProcessCryptoPacketAtLevel(1, ENCRYPTION_INITIAL); + EXPECT_EQ(1250u, connection_.max_packet_length()); +} + TEST_P(QuicConnectionTest, IncreaseServerMaxPacketSize) { set_perspective(Perspective::IS_SERVER); connection_.SetMaxPacketLength(1000);
diff --git a/quic/core/quic_protocol_flags_list.h b/quic/core/quic_protocol_flags_list.h index 8f6b7e5..02f107b 100644 --- a/quic/core/quic_protocol_flags_list.h +++ b/quic/core/quic_protocol_flags_list.h
@@ -281,4 +281,6 @@ false, "If true, always reject retry_token received in INITIAL packets") +QUIC_PROTOCOL_FLAG(bool, quic_use_lower_server_response_mtu_for_test, false, + "If true, cap server response packet size at 1250.") #endif