From 261eec5456941da83af37ee1c53e698b8db25e93 Mon Sep 17 00:00:00 2001 From: Victor Boivie Date: Sat, 29 May 2021 21:27:23 +0200 Subject: [PATCH] dcsctp: Allow more outstanding fragments There limit that decides if an incoming TSN should be accepted or not was decided based on very small transfers with no packet loss. But in simulations where a socket tries to send a lot of data and when there is moderate packet loss, the number of tracker data chunks on the receive side will be considerably higher than what the limit was. Set the limit to allow high data rate also on moderate packet loss. Bug: webrtc:12799 Change-Id: I6ca237e5609d8b511e9b10c919da33dca7420c01 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220761 Reviewed-by: Florent Castelli Commit-Queue: Victor Boivie Cr-Commit-Position: refs/heads/master@{#34169} --- net/dcsctp/rx/data_tracker.h | 2 +- net/dcsctp/rx/data_tracker_test.cc | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/net/dcsctp/rx/data_tracker.h b/net/dcsctp/rx/data_tracker.h index 63b7d8fe36..b822bd322e 100644 --- a/net/dcsctp/rx/data_tracker.h +++ b/net/dcsctp/rx/data_tracker.h @@ -48,7 +48,7 @@ class DataTracker { // received data. Data received beyond this limit will be dropped, which will // force the transmitter to send data that actually increases the last // cumulative acked TSN. - static constexpr uint32_t kMaxAcceptedOutstandingFragments = 256; + static constexpr uint32_t kMaxAcceptedOutstandingFragments = 100000; explicit DataTracker(absl::string_view log_prefix, Timer* delayed_ack_timer, diff --git a/net/dcsctp/rx/data_tracker_test.cc b/net/dcsctp/rx/data_tracker_test.cc index 5a955524d6..ac482c24a6 100644 --- a/net/dcsctp/rx/data_tracker_test.cc +++ b/net/dcsctp/rx/data_tracker_test.cc @@ -226,8 +226,6 @@ TEST_F(DataTrackerTest, WillNotAcceptInvalidTSNs) { size_t limit = DataTracker::kMaxAcceptedOutstandingFragments; EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn + limit + 1))); EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn - (limit + 1)))); - EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn + 65536))); - EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn - 65536))); EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn + 0x8000000))); EXPECT_FALSE(buf_.IsTSNValid(TSN(*last_tsn - 0x8000000))); }