| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/quic_sent_packet_manager.h" | 5 #include "net/quic/quic_sent_packet_manager.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "net/quic/quic_flags.h" | 10 #include "net/quic/quic_flags.h" |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 644 TEST_P(QuicSentPacketManagerTest, Rtt) { | 644 TEST_P(QuicSentPacketManagerTest, Rtt) { |
| 645 QuicPacketNumber packet_number = 1; | 645 QuicPacketNumber packet_number = 1; |
| 646 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(15); | 646 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(15); |
| 647 SendDataPacket(packet_number); | 647 SendDataPacket(packet_number); |
| 648 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); | 648 clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); |
| 649 | 649 |
| 650 ExpectAck(packet_number); | 650 ExpectAck(packet_number); |
| 651 QuicAckFrame ack_frame = InitAckFrame(packet_number); | 651 QuicAckFrame ack_frame = InitAckFrame(packet_number); |
| 652 ack_frame.ack_delay_time = QuicTime::Delta::FromMilliseconds(5); | 652 ack_frame.ack_delay_time = QuicTime::Delta::FromMilliseconds(5); |
| 653 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 653 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 654 EXPECT_EQ(expected_rtt, | 654 EXPECT_EQ(expected_rtt, manager_.GetRttStats()->latest_rtt()); |
| 655 QuicSentPacketManagerPeer::GetRttStats(&manager_)->latest_rtt()); | |
| 656 } | 655 } |
| 657 | 656 |
| 658 TEST_P(QuicSentPacketManagerTest, RttWithInvalidDelta) { | 657 TEST_P(QuicSentPacketManagerTest, RttWithInvalidDelta) { |
| 659 // Expect that the RTT is equal to the local time elapsed, since the | 658 // Expect that the RTT is equal to the local time elapsed, since the |
| 660 // ack_delay_time is larger than the local time elapsed | 659 // ack_delay_time is larger than the local time elapsed |
| 661 // and is hence invalid. | 660 // and is hence invalid. |
| 662 QuicPacketNumber packet_number = 1; | 661 QuicPacketNumber packet_number = 1; |
| 663 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); | 662 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); |
| 664 SendDataPacket(packet_number); | 663 SendDataPacket(packet_number); |
| 665 clock_.AdvanceTime(expected_rtt); | 664 clock_.AdvanceTime(expected_rtt); |
| 666 | 665 |
| 667 ExpectAck(packet_number); | 666 ExpectAck(packet_number); |
| 668 QuicAckFrame ack_frame = InitAckFrame(packet_number); | 667 QuicAckFrame ack_frame = InitAckFrame(packet_number); |
| 669 ack_frame.ack_delay_time = QuicTime::Delta::FromMilliseconds(11); | 668 ack_frame.ack_delay_time = QuicTime::Delta::FromMilliseconds(11); |
| 670 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 669 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 671 EXPECT_EQ(expected_rtt, | 670 EXPECT_EQ(expected_rtt, manager_.GetRttStats()->latest_rtt()); |
| 672 QuicSentPacketManagerPeer::GetRttStats(&manager_)->latest_rtt()); | |
| 673 } | 671 } |
| 674 | 672 |
| 675 TEST_P(QuicSentPacketManagerTest, RttWithInfiniteDelta) { | 673 TEST_P(QuicSentPacketManagerTest, RttWithInfiniteDelta) { |
| 676 // Expect that the RTT is equal to the local time elapsed, since the | 674 // Expect that the RTT is equal to the local time elapsed, since the |
| 677 // ack_delay_time is infinite, and is hence invalid. | 675 // ack_delay_time is infinite, and is hence invalid. |
| 678 QuicPacketNumber packet_number = 1; | 676 QuicPacketNumber packet_number = 1; |
| 679 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); | 677 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); |
| 680 SendDataPacket(packet_number); | 678 SendDataPacket(packet_number); |
| 681 clock_.AdvanceTime(expected_rtt); | 679 clock_.AdvanceTime(expected_rtt); |
| 682 | 680 |
| 683 ExpectAck(packet_number); | 681 ExpectAck(packet_number); |
| 684 QuicAckFrame ack_frame = InitAckFrame(packet_number); | 682 QuicAckFrame ack_frame = InitAckFrame(packet_number); |
| 685 ack_frame.ack_delay_time = QuicTime::Delta::Infinite(); | 683 ack_frame.ack_delay_time = QuicTime::Delta::Infinite(); |
| 686 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 684 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 687 EXPECT_EQ(expected_rtt, | 685 EXPECT_EQ(expected_rtt, manager_.GetRttStats()->latest_rtt()); |
| 688 QuicSentPacketManagerPeer::GetRttStats(&manager_)->latest_rtt()); | |
| 689 } | 686 } |
| 690 | 687 |
| 691 TEST_P(QuicSentPacketManagerTest, RttZeroDelta) { | 688 TEST_P(QuicSentPacketManagerTest, RttZeroDelta) { |
| 692 // Expect that the RTT is the time between send and receive since the | 689 // Expect that the RTT is the time between send and receive since the |
| 693 // ack_delay_time is zero. | 690 // ack_delay_time is zero. |
| 694 QuicPacketNumber packet_number = 1; | 691 QuicPacketNumber packet_number = 1; |
| 695 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); | 692 QuicTime::Delta expected_rtt = QuicTime::Delta::FromMilliseconds(10); |
| 696 SendDataPacket(packet_number); | 693 SendDataPacket(packet_number); |
| 697 clock_.AdvanceTime(expected_rtt); | 694 clock_.AdvanceTime(expected_rtt); |
| 698 | 695 |
| 699 ExpectAck(packet_number); | 696 ExpectAck(packet_number); |
| 700 QuicAckFrame ack_frame = InitAckFrame(packet_number); | 697 QuicAckFrame ack_frame = InitAckFrame(packet_number); |
| 701 ack_frame.ack_delay_time = QuicTime::Delta::Zero(); | 698 ack_frame.ack_delay_time = QuicTime::Delta::Zero(); |
| 702 manager_.OnIncomingAck(ack_frame, clock_.Now()); | 699 manager_.OnIncomingAck(ack_frame, clock_.Now()); |
| 703 EXPECT_EQ(expected_rtt, | 700 EXPECT_EQ(expected_rtt, manager_.GetRttStats()->latest_rtt()); |
| 704 QuicSentPacketManagerPeer::GetRttStats(&manager_)->latest_rtt()); | |
| 705 } | 701 } |
| 706 | 702 |
| 707 TEST_P(QuicSentPacketManagerTest, TailLossProbeTimeout) { | 703 TEST_P(QuicSentPacketManagerTest, TailLossProbeTimeout) { |
| 708 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); | 704 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); |
| 709 | 705 |
| 710 // Send 1 packet. | 706 // Send 1 packet. |
| 711 QuicPacketNumber packet_number = 1; | 707 QuicPacketNumber packet_number = 1; |
| 712 SendDataPacket(packet_number); | 708 SendDataPacket(packet_number); |
| 713 | 709 |
| 714 // The first tail loss probe retransmits 1 packet. | 710 // The first tail loss probe retransmits 1 packet. |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1182 } | 1178 } |
| 1183 | 1179 |
| 1184 TEST_P(QuicSentPacketManagerTest, GetTransmissionTime) { | 1180 TEST_P(QuicSentPacketManagerTest, GetTransmissionTime) { |
| 1185 EXPECT_EQ(QuicTime::Zero(), manager_.GetRetransmissionTime()); | 1181 EXPECT_EQ(QuicTime::Zero(), manager_.GetRetransmissionTime()); |
| 1186 } | 1182 } |
| 1187 | 1183 |
| 1188 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeCryptoHandshake) { | 1184 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeCryptoHandshake) { |
| 1189 SendCryptoPacket(1); | 1185 SendCryptoPacket(1); |
| 1190 | 1186 |
| 1191 // Check the min. | 1187 // Check the min. |
| 1192 RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_); | 1188 RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); |
| 1193 rtt_stats->set_initial_rtt_us(1 * kNumMicrosPerMilli); | 1189 rtt_stats->set_initial_rtt_us(1 * kNumMicrosPerMilli); |
| 1194 EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)), | 1190 EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)), |
| 1195 manager_.GetRetransmissionTime()); | 1191 manager_.GetRetransmissionTime()); |
| 1196 | 1192 |
| 1197 // Test with a standard smoothed RTT. | 1193 // Test with a standard smoothed RTT. |
| 1198 rtt_stats->set_initial_rtt_us(100 * kNumMicrosPerMilli); | 1194 rtt_stats->set_initial_rtt_us(100 * kNumMicrosPerMilli); |
| 1199 | 1195 |
| 1200 QuicTime::Delta srtt = | 1196 QuicTime::Delta srtt = |
| 1201 QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us()); | 1197 QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us()); |
| 1202 QuicTime expected_time = clock_.Now().Add(srtt.Multiply(1.5)); | 1198 QuicTime expected_time = clock_.Now().Add(srtt.Multiply(1.5)); |
| 1203 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); | 1199 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); |
| 1204 | 1200 |
| 1205 // Retransmit the packet by invoking the retransmission timeout. | 1201 // Retransmit the packet by invoking the retransmission timeout. |
| 1206 clock_.AdvanceTime(srtt.Multiply(1.5)); | 1202 clock_.AdvanceTime(srtt.Multiply(1.5)); |
| 1207 manager_.OnRetransmissionTimeout(); | 1203 manager_.OnRetransmissionTimeout(); |
| 1208 RetransmitNextPacket(2); | 1204 RetransmitNextPacket(2); |
| 1209 | 1205 |
| 1210 // The retransmission time should now be twice as far in the future. | 1206 // The retransmission time should now be twice as far in the future. |
| 1211 expected_time = clock_.Now().Add(srtt.Multiply(2).Multiply(1.5)); | 1207 expected_time = clock_.Now().Add(srtt.Multiply(2).Multiply(1.5)); |
| 1212 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); | 1208 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); |
| 1213 } | 1209 } |
| 1214 | 1210 |
| 1215 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeTailLossProbe) { | 1211 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeTailLossProbe) { |
| 1216 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); | 1212 QuicSentPacketManagerPeer::SetMaxTailLossProbes(&manager_, 2); |
| 1217 SendDataPacket(1); | 1213 SendDataPacket(1); |
| 1218 SendDataPacket(2); | 1214 SendDataPacket(2); |
| 1219 | 1215 |
| 1220 // Check the min. | 1216 // Check the min. |
| 1221 RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_); | 1217 RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); |
| 1222 rtt_stats->set_initial_rtt_us(1 * kNumMicrosPerMilli); | 1218 rtt_stats->set_initial_rtt_us(1 * kNumMicrosPerMilli); |
| 1223 EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)), | 1219 EXPECT_EQ(clock_.Now().Add(QuicTime::Delta::FromMilliseconds(10)), |
| 1224 manager_.GetRetransmissionTime()); | 1220 manager_.GetRetransmissionTime()); |
| 1225 | 1221 |
| 1226 // Test with a standard smoothed RTT. | 1222 // Test with a standard smoothed RTT. |
| 1227 rtt_stats->set_initial_rtt_us(100 * kNumMicrosPerMilli); | 1223 rtt_stats->set_initial_rtt_us(100 * kNumMicrosPerMilli); |
| 1228 QuicTime::Delta srtt = | 1224 QuicTime::Delta srtt = |
| 1229 QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us()); | 1225 QuicTime::Delta::FromMicroseconds(rtt_stats->initial_rtt_us()); |
| 1230 QuicTime::Delta expected_tlp_delay = srtt.Multiply(2); | 1226 QuicTime::Delta expected_tlp_delay = srtt.Multiply(2); |
| 1231 QuicTime expected_time = clock_.Now().Add(expected_tlp_delay); | 1227 QuicTime expected_time = clock_.Now().Add(expected_tlp_delay); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1244 .WillOnce(Return(QuicTime::Delta::Infinite())); | 1240 .WillOnce(Return(QuicTime::Delta::Infinite())); |
| 1245 EXPECT_EQ(QuicTime::Delta::Infinite(), | 1241 EXPECT_EQ(QuicTime::Delta::Infinite(), |
| 1246 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); | 1242 manager_.TimeUntilSend(clock_.Now(), HAS_RETRANSMITTABLE_DATA)); |
| 1247 EXPECT_FALSE(manager_.HasPendingRetransmissions()); | 1243 EXPECT_FALSE(manager_.HasPendingRetransmissions()); |
| 1248 | 1244 |
| 1249 expected_time = clock_.Now().Add(expected_tlp_delay); | 1245 expected_time = clock_.Now().Add(expected_tlp_delay); |
| 1250 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); | 1246 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); |
| 1251 } | 1247 } |
| 1252 | 1248 |
| 1253 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeSpuriousRTO) { | 1249 TEST_P(QuicSentPacketManagerTest, GetTransmissionTimeSpuriousRTO) { |
| 1254 QuicSentPacketManagerPeer::GetRttStats(&manager_) | 1250 const_cast<RttStats*>(manager_.GetRttStats()) |
| 1255 ->UpdateRtt(QuicTime::Delta::FromMilliseconds(100), | 1251 ->UpdateRtt(QuicTime::Delta::FromMilliseconds(100), |
| 1256 QuicTime::Delta::Zero(), QuicTime::Zero()); | 1252 QuicTime::Delta::Zero(), QuicTime::Zero()); |
| 1257 | |
| 1258 SendDataPacket(1); | 1253 SendDataPacket(1); |
| 1259 SendDataPacket(2); | 1254 SendDataPacket(2); |
| 1260 SendDataPacket(3); | 1255 SendDataPacket(3); |
| 1261 SendDataPacket(4); | 1256 SendDataPacket(4); |
| 1262 | 1257 |
| 1263 QuicTime::Delta expected_rto_delay = QuicTime::Delta::FromMilliseconds(500); | 1258 QuicTime::Delta expected_rto_delay = QuicTime::Delta::FromMilliseconds(500); |
| 1264 EXPECT_CALL(*send_algorithm_, RetransmissionDelay()) | 1259 EXPECT_CALL(*send_algorithm_, RetransmissionDelay()) |
| 1265 .WillRepeatedly(Return(expected_rto_delay)); | 1260 .WillRepeatedly(Return(expected_rto_delay)); |
| 1266 QuicTime expected_time = clock_.Now().Add(expected_rto_delay); | 1261 QuicTime expected_time = clock_.Now().Add(expected_rto_delay); |
| 1267 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); | 1262 EXPECT_EQ(expected_time, manager_.GetRetransmissionTime()); |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1703 CachedNetworkParameters cached_network_params; | 1698 CachedNetworkParameters cached_network_params; |
| 1704 cached_network_params.set_min_rtt_ms(kRttMs); | 1699 cached_network_params.set_min_rtt_ms(kRttMs); |
| 1705 | 1700 |
| 1706 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_, false)); | 1701 EXPECT_CALL(*send_algorithm_, ResumeConnectionState(_, false)); |
| 1707 manager_.ResumeConnectionState(cached_network_params, false); | 1702 manager_.ResumeConnectionState(cached_network_params, false); |
| 1708 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, | 1703 EXPECT_EQ(kRttMs * kNumMicrosPerMilli, |
| 1709 static_cast<uint64_t>(manager_.GetRttStats()->initial_rtt_us())); | 1704 static_cast<uint64_t>(manager_.GetRttStats()->initial_rtt_us())); |
| 1710 } | 1705 } |
| 1711 | 1706 |
| 1712 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationUnspecifiedChange) { | 1707 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationUnspecifiedChange) { |
| 1713 RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_); | 1708 RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); |
| 1714 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); | 1709 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); |
| 1715 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); | 1710 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); |
| 1716 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); | 1711 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1717 | 1712 |
| 1718 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); | 1713 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); |
| 1719 EXPECT_EQ(1u, manager_.consecutive_rto_count()); | 1714 EXPECT_EQ(1u, manager_.consecutive_rto_count()); |
| 1720 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); | 1715 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); |
| 1721 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); | 1716 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); |
| 1722 | 1717 |
| 1723 EXPECT_CALL(*send_algorithm_, OnConnectionMigration()); | 1718 EXPECT_CALL(*send_algorithm_, OnConnectionMigration()); |
| 1724 manager_.OnConnectionMigration(UNSPECIFIED_CHANGE); | 1719 manager_.OnConnectionMigration(UNSPECIFIED_CHANGE); |
| 1725 | 1720 |
| 1726 EXPECT_EQ(default_init_rtt, rtt_stats->initial_rtt_us()); | 1721 EXPECT_EQ(default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1727 EXPECT_EQ(0u, manager_.consecutive_rto_count()); | 1722 EXPECT_EQ(0u, manager_.consecutive_rto_count()); |
| 1728 EXPECT_EQ(0u, manager_.consecutive_tlp_count()); | 1723 EXPECT_EQ(0u, manager_.consecutive_tlp_count()); |
| 1729 } | 1724 } |
| 1730 | 1725 |
| 1731 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationIPSubnetChange) { | 1726 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationIPSubnetChange) { |
| 1732 RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_); | 1727 RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); |
| 1733 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); | 1728 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); |
| 1734 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); | 1729 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); |
| 1735 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); | 1730 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1736 | 1731 |
| 1737 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); | 1732 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); |
| 1738 EXPECT_EQ(1u, manager_.consecutive_rto_count()); | 1733 EXPECT_EQ(1u, manager_.consecutive_rto_count()); |
| 1739 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); | 1734 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); |
| 1740 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); | 1735 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); |
| 1741 | 1736 |
| 1742 manager_.OnConnectionMigration(IPV4_SUBNET_CHANGE); | 1737 manager_.OnConnectionMigration(IPV4_SUBNET_CHANGE); |
| 1743 | 1738 |
| 1744 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); | 1739 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1745 EXPECT_EQ(1u, manager_.consecutive_rto_count()); | 1740 EXPECT_EQ(1u, manager_.consecutive_rto_count()); |
| 1746 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); | 1741 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); |
| 1747 } | 1742 } |
| 1748 | 1743 |
| 1749 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationPortChange) { | 1744 TEST_P(QuicSentPacketManagerTest, ConnectionMigrationPortChange) { |
| 1750 RttStats* rtt_stats = QuicSentPacketManagerPeer::GetRttStats(&manager_); | 1745 RttStats* rtt_stats = const_cast<RttStats*>(manager_.GetRttStats()); |
| 1751 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); | 1746 int64_t default_init_rtt = rtt_stats->initial_rtt_us(); |
| 1752 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); | 1747 rtt_stats->set_initial_rtt_us(default_init_rtt * 2); |
| 1753 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); | 1748 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1754 | 1749 |
| 1755 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); | 1750 QuicSentPacketManagerPeer::SetConsecutiveRtoCount(&manager_, 1); |
| 1756 EXPECT_EQ(1u, manager_.consecutive_rto_count()); | 1751 EXPECT_EQ(1u, manager_.consecutive_rto_count()); |
| 1757 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); | 1752 QuicSentPacketManagerPeer::SetConsecutiveTlpCount(&manager_, 2); |
| 1758 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); | 1753 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); |
| 1759 | 1754 |
| 1760 manager_.OnConnectionMigration(PORT_CHANGE); | 1755 manager_.OnConnectionMigration(PORT_CHANGE); |
| 1761 | 1756 |
| 1762 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); | 1757 EXPECT_EQ(2 * default_init_rtt, rtt_stats->initial_rtt_us()); |
| 1763 EXPECT_EQ(1u, manager_.consecutive_rto_count()); | 1758 EXPECT_EQ(1u, manager_.consecutive_rto_count()); |
| 1764 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); | 1759 EXPECT_EQ(2u, manager_.consecutive_tlp_count()); |
| 1765 } | 1760 } |
| 1766 | 1761 |
| 1767 } // namespace | 1762 } // namespace |
| 1768 } // namespace test | 1763 } // namespace test |
| 1769 } // namespace net | 1764 } // namespace net |
| OLD | NEW |