diff --git a/net/dcsctp/tx/retransmission_timeout.cc b/net/dcsctp/tx/retransmission_timeout.cc index aa2863f931..7d8fb9761c 100644 --- a/net/dcsctp/tx/retransmission_timeout.cc +++ b/net/dcsctp/tx/retransmission_timeout.cc @@ -21,6 +21,7 @@ RetransmissionTimeout::RetransmissionTimeout(const DcSctpOptions& options) max_rto_(*options.rto_max), max_rtt_(*options.rtt_max), min_rtt_variance_(*options.min_rtt_variance), + scaled_srtt_(*options.rto_initial << kRttShift), rto_(*options.rto_initial) {} void RetransmissionTimeout::ObserveRTT(DurationMs measured_rtt) { diff --git a/net/dcsctp/tx/retransmission_timeout.h b/net/dcsctp/tx/retransmission_timeout.h index 7cbcc6fcc9..01530cb3b5 100644 --- a/net/dcsctp/tx/retransmission_timeout.h +++ b/net/dcsctp/tx/retransmission_timeout.h @@ -48,7 +48,7 @@ class RetransmissionTimeout { // If this is the first measurement bool first_measurement_ = true; // Smoothed Round-Trip Time, shifted by kRttShift - int32_t scaled_srtt_ = 0; + int32_t scaled_srtt_; // Round-Trip Time Variation, shifted by kRttVarShift int32_t scaled_rtt_var_ = 0; // Retransmission Timeout diff --git a/net/dcsctp/tx/retransmission_timeout_test.cc b/net/dcsctp/tx/retransmission_timeout_test.cc index f3b20a86ba..b901995e97 100644 --- a/net/dcsctp/tx/retransmission_timeout_test.cc +++ b/net/dcsctp/tx/retransmission_timeout_test.cc @@ -37,6 +37,11 @@ TEST(RetransmissionTimeoutTest, HasValidInitialRto) { EXPECT_EQ(rto_.rto(), kInitialRto); } +TEST(RetransmissionTimeoutTest, HasValidInitialSrtt) { + RetransmissionTimeout rto_(MakeOptions()); + EXPECT_EQ(rto_.srtt(), kInitialRto); +} + TEST(RetransmissionTimeoutTest, NegativeValuesDoNotAffectRTO) { RetransmissionTimeout rto_(MakeOptions()); // Initial negative value