From 29ff3efebf8081c518b4bce191c625660f402bd2 Mon Sep 17 00:00:00 2001 From: Florent Castelli Date: Thu, 17 Feb 2022 16:23:56 +0100 Subject: [PATCH] Reland: Make dcSCTP the default SCTP implementation To disable dcSCTP and fallback to usrsctp, you can use the field trial WebRTC-DataChannel-Dcsctp/Disabled/ Also remove a hidden no-break space in dcSCTP logging causing issues in some log parsing. Bug: chromium:1243702 Change-Id: I46136a8913a6d803a3c63c710f3ed29523e4d773 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251867 Auto-Submit: Florent Castelli Reviewed-by: Victor Boivie Reviewed-by: Harald Alvestrand Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#36027} --- media/sctp/sctp_transport_factory.cc | 8 ++++---- media/sctp/sctp_transport_factory.h | 2 +- net/dcsctp/socket/dcsctp_socket.cc | 2 +- pc/data_channel_integrationtest.cc | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/media/sctp/sctp_transport_factory.cc b/media/sctp/sctp_transport_factory.cc index 5097d423d9..071d7fdb23 100644 --- a/media/sctp/sctp_transport_factory.cc +++ b/media/sctp/sctp_transport_factory.cc @@ -25,11 +25,11 @@ namespace cricket { SctpTransportFactory::SctpTransportFactory(rtc::Thread* network_thread) - : network_thread_(network_thread), use_dcsctp_("Enabled", false) { + : network_thread_(network_thread), use_usrsctp_("Disabled", false) { RTC_UNUSED(network_thread_); #ifdef WEBRTC_HAVE_DCSCTP - webrtc::ParseFieldTrial({&use_dcsctp_}, webrtc::field_trial::FindFullName( - "WebRTC-DataChannel-Dcsctp")); + webrtc::ParseFieldTrial({&use_usrsctp_}, webrtc::field_trial::FindFullName( + "WebRTC-DataChannel-Dcsctp")); #endif } @@ -38,7 +38,7 @@ SctpTransportFactory::CreateSctpTransport( rtc::PacketTransportInternal* transport) { std::unique_ptr result; #ifdef WEBRTC_HAVE_DCSCTP - if (use_dcsctp_.Get()) { + if (!use_usrsctp_.Get()) { result = std::unique_ptr(new webrtc::DcSctpTransport( network_thread_, transport, webrtc::Clock::GetRealTimeClock())); } diff --git a/media/sctp/sctp_transport_factory.h b/media/sctp/sctp_transport_factory.h index ed7c2163d7..9ae246a6a6 100644 --- a/media/sctp/sctp_transport_factory.h +++ b/media/sctp/sctp_transport_factory.h @@ -29,7 +29,7 @@ class SctpTransportFactory : public webrtc::SctpTransportFactoryInterface { private: rtc::Thread* network_thread_; - webrtc::FieldTrialFlag use_dcsctp_; + webrtc::FieldTrialFlag use_usrsctp_; }; } // namespace cricket diff --git a/net/dcsctp/socket/dcsctp_socket.cc b/net/dcsctp/socket/dcsctp_socket.cc index 9f38ad8aec..b93584ed47 100644 --- a/net/dcsctp/socket/dcsctp_socket.cc +++ b/net/dcsctp/socket/dcsctp_socket.cc @@ -196,7 +196,7 @@ DcSctpSocket::DcSctpSocket(absl::string_view log_prefix, [this]() { callbacks_.OnTotalBufferedAmountLow(); }) {} std::string DcSctpSocket::log_prefix() const { - return log_prefix_ + "[" + std::string(ToString(state_)) + "] "; + return log_prefix_ + "[" + std::string(ToString(state_)) + "] "; } bool DcSctpSocket::IsConsistent() const { diff --git a/pc/data_channel_integrationtest.cc b/pc/data_channel_integrationtest.cc index e6c06912f6..c0dbfdd4bf 100644 --- a/pc/data_channel_integrationtest.cc +++ b/pc/data_channel_integrationtest.cc @@ -832,7 +832,7 @@ TEST_P(DataChannelIntegrationTest, EXPECT_GT(202u, callee()->data_observer()->received_message_count()); EXPECT_LE(2u, callee()->data_observer()->received_message_count()); // Then, check that observed behavior (lose some messages) has not changed - if (webrtc::field_trial::IsEnabled("WebRTC-DataChannel-Dcsctp")) { + if (!webrtc::field_trial::IsDisabled("WebRTC-DataChannel-Dcsctp")) { // DcSctp loses all messages. This is correct. EXPECT_EQ(2u, callee()->data_observer()->received_message_count()); } else {