Remove iceRegatherIntervalRange
This was an ICE configuration experiment added a couple years ago that did not end up being used.
Bug: webrtc:11316
Change-Id: Iafb7e1c4f7b4598815f045808dbf6e470172f119
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167680
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30395}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index 2ae290c..cc37dab 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -570,12 +570,6 @@
// binding requests to keep NAT bindings open.
absl::optional<int> stun_candidate_keepalive_interval;
- // ICE Periodic Regathering
- // If set, WebRTC will periodically create and propose candidates without
- // starting a new ICE generation. The regathering happens continuously with
- // interval specified in milliseconds by the uniform distribution [a, b].
- absl::optional<rtc::IntervalRange> ice_regather_interval_range;
-
// Optional TurnCustomizer.
// With this class one can modify outgoing TURN messages.
// The object passed in must remain valid until PeerConnection::Close() is
diff --git a/p2p/base/connection.cc b/p2p/base/connection.cc
index f3692c5..e503909 100644
--- a/p2p/base/connection.cc
+++ b/p2p/base/connection.cc
@@ -30,6 +30,7 @@
#include "rtc_base/numerics/safe_minmax.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/string_utils.h"
+#include "rtc_base/strings/string_builder.h"
#include "rtc_base/third_party/base64/base64.h"
#include "system_wrappers/include/field_trial.h"
diff --git a/p2p/base/fake_port_allocator.h b/p2p/base/fake_port_allocator.h
index 4fafb54..266bb79 100644
--- a/p2p/base/fake_port_allocator.h
+++ b/p2p/base/fake_port_allocator.h
@@ -132,10 +132,6 @@
void ClearGettingPorts() override { is_cleared = true; }
bool IsCleared() const override { return is_cleared; }
- void RegatherOnAllNetworks() override {
- SignalIceRegathering(this, IceRegatheringReason::OCCASIONAL_REFRESH);
- }
-
void RegatherOnFailedNetworks() override {
SignalIceRegathering(this, IceRegatheringReason::NETWORK_FAILURE);
}
diff --git a/p2p/base/ice_transport_internal.h b/p2p/base/ice_transport_internal.h
index 94b5b19..b735a1a 100644
--- a/p2p/base/ice_transport_internal.h
+++ b/p2p/base/ice_transport_internal.h
@@ -112,10 +112,6 @@
// active network having no connection on it.
absl::optional<int> regather_on_failed_networks_interval;
- // Interval to perform ICE regathering on all networks
- // The delay in milliseconds is sampled from the uniform distribution [a, b]
- absl::optional<rtc::IntervalRange> regather_all_networks_interval_range;
-
// The time period in which we will not switch the selected connection
// when a new connection becomes receiving but the selected connection is not
// in case that the selected connection may become receiving soon.
diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc
index 75490ee..4e18cd4 100644
--- a/p2p/base/p2p_transport_channel.cc
+++ b/p2p/base/p2p_transport_channel.cc
@@ -116,9 +116,9 @@
// Validate IceConfig even for mostly built-in constant default values in case
// we change them.
RTC_DCHECK(ValidateIceConfig(config_).ok());
- webrtc::BasicRegatheringController::Config regathering_config(
- config_.regather_all_networks_interval_range,
- config_.regather_on_failed_networks_interval_or_default());
+ webrtc::BasicRegatheringController::Config regathering_config;
+ regathering_config.regather_on_failed_networks_interval =
+ config_.regather_on_failed_networks_interval_or_default();
regathering_controller_ =
std::make_unique<webrtc::BasicRegatheringController>(
regathering_config, this, network_thread_);
@@ -538,18 +538,6 @@
<< config_.regather_on_failed_networks_interval_or_default();
}
- if (config_.regather_all_networks_interval_range !=
- config.regather_all_networks_interval_range) {
- // Config validation is assumed to have already happened at the API layer.
- RTC_DCHECK(config.continual_gathering_policy != GATHER_ONCE);
- config_.regather_all_networks_interval_range =
- config.regather_all_networks_interval_range;
- RTC_LOG(LS_INFO) << "Set regather_all_networks_interval_range to "
- << config.regather_all_networks_interval_range
- .value_or(rtc::IntervalRange(-1, 0))
- .ToString();
- }
-
if (config_.receiving_switching_delay != config.receiving_switching_delay) {
config_.receiving_switching_delay = config.receiving_switching_delay;
RTC_LOG(LS_INFO) << "Set receiving_switching_delay to "
@@ -678,9 +666,9 @@
<< *field_trials_.initial_select_dampening_ping_received;
}
- webrtc::BasicRegatheringController::Config regathering_config(
- config_.regather_all_networks_interval_range,
- config_.regather_on_failed_networks_interval_or_default());
+ webrtc::BasicRegatheringController::Config regathering_config;
+ regathering_config.regather_on_failed_networks_interval =
+ config_.regather_on_failed_networks_interval_or_default();
regathering_controller_->SetConfig(regathering_config);
ice_controller_->SetIceConfig(config_);
@@ -697,13 +685,6 @@
// PeerConnection::SetConfiguration.
// Static
RTCError P2PTransportChannel::ValidateIceConfig(const IceConfig& config) {
- if (config.regather_all_networks_interval_range &&
- config.continual_gathering_policy == GATHER_ONCE) {
- return RTCError(RTCErrorType::INVALID_PARAMETER,
- "regather_all_networks_interval_range specified but "
- "continual gathering policy is GATHER_ONCE");
- }
-
if (config.ice_check_interval_strong_connectivity_or_default() <
config.ice_check_interval_weak_connectivity.value_or(
GetWeakPingIntervalInFieldTrial())) {
@@ -744,13 +725,6 @@
"UNRELIABLE is longer than that to become TIMEOUT.");
}
- if (config.regather_all_networks_interval_range &&
- config.regather_all_networks_interval_range.value().min() < 0) {
- return RTCError(
- RTCErrorType::INVALID_RANGE,
- "The minimum regathering interval for all networks is negative.");
- }
-
return RTCError::OK();
}
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index 972f7b3..5f84aa3 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -1464,101 +1464,6 @@
DestroyChannels();
}
-// Tests that ICE regathering occurs regularly when
-// regather_all_networks_interval_range configuration value is set.
-TEST_F(P2PTransportChannelTest, TestIceRegatherOnAllNetworksContinual) {
- rtc::ScopedFakeClock clock;
- ConfigureEndpoints(OPEN, OPEN, kOnlyLocalPorts, kOnlyLocalPorts);
-
- // ep1 gathers continually but ep2 does not.
- const int kRegatherInterval = 2000;
- IceConfig config1 = CreateIceConfig(1000, GATHER_CONTINUALLY);
- config1.regather_all_networks_interval_range.emplace(kRegatherInterval,
- kRegatherInterval);
- IceConfig config2;
- CreateChannels(config1, config2);
-
- EXPECT_TRUE_SIMULATED_WAIT(CheckConnected(ep1_ch1(), ep2_ch1()),
- kDefaultTimeout, clock);
-
- fw()->AddRule(false, rtc::FP_ANY, rtc::FD_ANY, kPublicAddrs[0]);
- // Timeout value such that all connections are deleted.
- const int kNetworkGatherDuration = 11000;
- SIMULATED_WAIT(false, kNetworkGatherDuration, clock);
- // Expect regathering to happen 5 times in 11s with 2s interval.
- EXPECT_LE(5, GetEndpoint(0)->GetIceRegatheringCountForReason(
- IceRegatheringReason::OCCASIONAL_REFRESH));
- EXPECT_METRIC_LE(
- 5, webrtc::metrics::NumEvents(
- "WebRTC.PeerConnection.IceRegatheringReason",
- static_cast<int>(IceRegatheringReason::OCCASIONAL_REFRESH)));
- // Expect no regathering if continual gathering not configured.
- EXPECT_EQ(0, GetEndpoint(1)->GetIceRegatheringCountForReason(
- IceRegatheringReason::OCCASIONAL_REFRESH));
-
- DestroyChannels();
-}
-
-// Test that ICE periodic regathering can change the selected connection on the
-// specified interval and that the peers can communicate over the new
-// connection. The test is parameterized to test that it works when regathering
-// is done by the ICE controlling peer and when done by the controlled peer.
-class P2PTransportRegatherAllNetworksTest : public P2PTransportChannelTest {
- protected:
- void TestWithRoles(IceRole p1_role, IceRole p2_role) {
- rtc::ScopedFakeClock clock;
- ConfigureEndpoints(NAT_SYMMETRIC, NAT_SYMMETRIC, kDefaultPortAllocatorFlags,
- kDefaultPortAllocatorFlags);
- set_force_relay(true);
-
- const int kRegatherInterval = 2000;
- const int kNumRegathers = 2;
-
- // Set up peer 1 to auto regather every 2s.
- IceConfig config1 = CreateIceConfig(1000, GATHER_CONTINUALLY);
- config1.regather_all_networks_interval_range.emplace(kRegatherInterval,
- kRegatherInterval);
- IceConfig config2 = CreateIceConfig(1000, GATHER_CONTINUALLY);
-
- // Set peer roles.
- SetIceRole(0, p1_role);
- SetIceRole(1, p2_role);
-
- CreateChannels(config1, config2);
-
- // Wait for initial connection to be made.
- EXPECT_TRUE_SIMULATED_WAIT(CheckConnected(ep1_ch1(), ep2_ch1()),
- kMediumTimeout, clock);
-
- const Connection* initial_selected = ep1_ch1()->selected_connection();
-
- // Wait long enough for 2 regathering cycles to happen plus some extra so
- // the new connection has time to settle.
- const int kWaitRegather =
- kRegatherInterval * kNumRegathers + kRegatherInterval / 2;
- SIMULATED_WAIT(false, kWaitRegather, clock);
- EXPECT_EQ(kNumRegathers, GetEndpoint(0)->GetIceRegatheringCountForReason(
- IceRegatheringReason::OCCASIONAL_REFRESH));
-
- const Connection* new_selected = ep1_ch1()->selected_connection();
-
- // Want the new selected connection to be different.
- ASSERT_NE(initial_selected, new_selected);
-
- // Make sure we can communicate over the new connection too.
- TestSendRecv(&clock);
- DestroyChannels();
- }
-};
-
-TEST_F(P2PTransportRegatherAllNetworksTest, TestControlling) {
- TestWithRoles(ICEROLE_CONTROLLING, ICEROLE_CONTROLLED);
-}
-
-TEST_F(P2PTransportRegatherAllNetworksTest, TestControlled) {
- TestWithRoles(ICEROLE_CONTROLLED, ICEROLE_CONTROLLING);
-}
-
// Test that we properly create a connection on a STUN ping from unknown address
// when the signaling is slow.
TEST_F(P2PTransportChannelTest, PeerReflexiveCandidateBeforeSignaling) {
diff --git a/p2p/base/port.cc b/p2p/base/port.cc
index dbc04a4..a6eb333 100644
--- a/p2p/base/port.cc
+++ b/p2p/base/port.cc
@@ -31,6 +31,7 @@
#include "rtc_base/numerics/safe_minmax.h"
#include "rtc_base/string_encode.h"
#include "rtc_base/string_utils.h"
+#include "rtc_base/strings/string_builder.h"
#include "rtc_base/third_party/base64/base64.h"
#include "system_wrappers/include/field_trial.h"
diff --git a/p2p/base/port_allocator.h b/p2p/base/port_allocator.h
index 2fe8db2..4bbe56c 100644
--- a/p2p/base/port_allocator.h
+++ b/p2p/base/port_allocator.h
@@ -240,8 +240,6 @@
// network. Only if all networks of an interface have no connection, the
// implementation should start re-gathering on all networks of that interface.
virtual void RegatherOnFailedNetworks() {}
- // Re-gathers candidates on all networks.
- virtual void RegatherOnAllNetworks() {}
// Get candidate-level stats from all candidates on the ready ports and return
// the stats to the given list.
virtual void GetCandidateStatsFromReadyPorts(
diff --git a/p2p/base/regathering_controller.cc b/p2p/base/regathering_controller.cc
index a4d21eb..fe38a3e 100644
--- a/p2p/base/regathering_controller.cc
+++ b/p2p/base/regathering_controller.cc
@@ -12,29 +12,11 @@
namespace webrtc {
-using Config = BasicRegatheringController::Config;
-
-Config::Config(const absl::optional<rtc::IntervalRange>&
- regather_on_all_networks_interval_range,
- int regather_on_failed_networks_interval)
- : regather_on_all_networks_interval_range(
- regather_on_all_networks_interval_range),
- regather_on_failed_networks_interval(
- regather_on_failed_networks_interval) {}
-
-Config::Config(const Config& other) = default;
-
-Config::~Config() = default;
-Config& Config::operator=(const Config& other) = default;
-
BasicRegatheringController::BasicRegatheringController(
const Config& config,
cricket::IceTransportInternal* ice_transport,
rtc::Thread* thread)
- : config_(config),
- ice_transport_(ice_transport),
- thread_(thread),
- rand_(rtc::SystemTimeNanos()) {
+ : config_(config), ice_transport_(ice_transport), thread_(thread) {
RTC_DCHECK(ice_transport_);
RTC_DCHECK(thread_);
ice_transport_->SignalStateChanged.connect(
@@ -51,96 +33,41 @@
void BasicRegatheringController::Start() {
ScheduleRecurringRegatheringOnFailedNetworks();
- if (config_.regather_on_all_networks_interval_range) {
- ScheduleRecurringRegatheringOnAllNetworks();
- }
}
void BasicRegatheringController::SetConfig(const Config& config) {
- bool need_cancel_on_all_networks =
- has_recurring_schedule_on_all_networks_ &&
- (config_.regather_on_all_networks_interval_range !=
- config.regather_on_all_networks_interval_range);
- bool need_reschedule_on_all_networks =
- config.regather_on_all_networks_interval_range &&
- (config_.regather_on_all_networks_interval_range !=
- config.regather_on_all_networks_interval_range);
bool need_cancel_and_reschedule_on_failed_networks =
has_recurring_schedule_on_failed_networks_ &&
(config_.regather_on_failed_networks_interval !=
config.regather_on_failed_networks_interval);
config_ = config;
- if (need_cancel_on_all_networks) {
- CancelScheduledRecurringRegatheringOnAllNetworks();
- }
- if (need_reschedule_on_all_networks) {
- ScheduleRecurringRegatheringOnAllNetworks();
- }
if (need_cancel_and_reschedule_on_failed_networks) {
CancelScheduledRecurringRegatheringOnFailedNetworks();
ScheduleRecurringRegatheringOnFailedNetworks();
}
}
-void BasicRegatheringController::ScheduleRecurringRegatheringOnAllNetworks() {
- RTC_DCHECK(config_.regather_on_all_networks_interval_range &&
- config_.regather_on_all_networks_interval_range.value().min() >=
- 0);
- int delay_ms = SampleRegatherAllNetworksInterval(
- config_.regather_on_all_networks_interval_range.value());
- CancelScheduledRecurringRegatheringOnAllNetworks();
- has_recurring_schedule_on_all_networks_ = true;
- invoker_for_all_networks_.AsyncInvokeDelayed<void>(
- RTC_FROM_HERE, thread(),
- rtc::Bind(
- &BasicRegatheringController::RegatherOnAllNetworksIfDoneGathering,
- this, true),
- delay_ms);
-}
-
-void BasicRegatheringController::RegatherOnAllNetworksIfDoneGathering(
- bool repeated) {
- // Only regather when the current session is in the CLEARED state (i.e., not
- // running or stopped). It is only possible to enter this state when we gather
- // continually, so there is an implicit check on continual gathering here.
- if (allocator_session_ && allocator_session_->IsCleared()) {
- allocator_session_->RegatherOnAllNetworks();
- }
- if (repeated) {
- ScheduleRecurringRegatheringOnAllNetworks();
- }
-}
-
void BasicRegatheringController::
ScheduleRecurringRegatheringOnFailedNetworks() {
RTC_DCHECK(config_.regather_on_failed_networks_interval >= 0);
CancelScheduledRecurringRegatheringOnFailedNetworks();
has_recurring_schedule_on_failed_networks_ = true;
invoker_for_failed_networks_.AsyncInvokeDelayed<void>(
- RTC_FROM_HERE, thread(),
+ RTC_FROM_HERE, thread_,
rtc::Bind(
&BasicRegatheringController::RegatherOnFailedNetworksIfDoneGathering,
- this, true),
+ this),
config_.regather_on_failed_networks_interval);
}
-void BasicRegatheringController::RegatherOnFailedNetworksIfDoneGathering(
- bool repeated) {
+void BasicRegatheringController::RegatherOnFailedNetworksIfDoneGathering() {
// Only regather when the current session is in the CLEARED state (i.e., not
// running or stopped). It is only possible to enter this state when we gather
// continually, so there is an implicit check on continual gathering here.
if (allocator_session_ && allocator_session_->IsCleared()) {
allocator_session_->RegatherOnFailedNetworks();
}
- if (repeated) {
- ScheduleRecurringRegatheringOnFailedNetworks();
- }
-}
-
-void BasicRegatheringController::
- CancelScheduledRecurringRegatheringOnAllNetworks() {
- invoker_for_all_networks_.Clear();
- has_recurring_schedule_on_all_networks_ = false;
+ ScheduleRecurringRegatheringOnFailedNetworks();
}
void BasicRegatheringController::
@@ -149,9 +76,4 @@
has_recurring_schedule_on_failed_networks_ = false;
}
-int BasicRegatheringController::SampleRegatherAllNetworksInterval(
- const rtc::IntervalRange& range) {
- return rand_.Rand(range.min(), range.max());
-}
-
} // namespace webrtc
diff --git a/p2p/base/regathering_controller.h b/p2p/base/regathering_controller.h
index 234aea3..54a76dc 100644
--- a/p2p/base/regathering_controller.h
+++ b/p2p/base/regathering_controller.h
@@ -14,7 +14,6 @@
#include "p2p/base/ice_transport_internal.h"
#include "p2p/base/port_allocator.h"
#include "rtc_base/async_invoker.h"
-#include "rtc_base/random.h"
#include "rtc_base/thread.h"
namespace webrtc {
@@ -22,12 +21,9 @@
// Controls regathering of candidates for the ICE transport passed into it,
// reacting to signals like SignalWritableState, SignalNetworkRouteChange, etc.,
// using methods like GetStats to get additional information, and calling
-// methods like RegatherOnAllNetworks on the PortAllocatorSession when
+// methods like RegatherOnFailedNetworks on the PortAllocatorSession when
// regathering is desired.
//
-// TODO(qingsi): Add the description of behavior when autonomous regathering is
-// implemented.
-//
// "Regathering" is defined as gathering additional candidates within a single
// ICE generation (or in other words, PortAllocatorSession), and is possible
// when "continual gathering" is enabled. This may allow connectivity to be
@@ -46,14 +42,8 @@
class BasicRegatheringController : public sigslot::has_slots<> {
public:
struct Config {
- Config(const absl::optional<rtc::IntervalRange>&
- regather_on_all_networks_interval_range,
- int regather_on_failed_networks_interval);
- Config(const Config& other);
- ~Config();
- Config& operator=(const Config& other);
- absl::optional<rtc::IntervalRange> regather_on_all_networks_interval_range;
- int regather_on_failed_networks_interval;
+ int regather_on_failed_networks_interval =
+ cricket::REGATHER_ON_FAILED_NETWORKS_INTERVAL;
};
BasicRegatheringController() = delete;
@@ -83,11 +73,6 @@
void OnIceTransportWritableState(rtc::PacketTransportInternal*) {}
void OnIceTransportReceivingState(rtc::PacketTransportInternal*) {}
void OnIceTransportNetworkRouteChanged(absl::optional<rtc::NetworkRoute>) {}
- // Schedules delayed and repeated regathering of local candidates on all
- // networks, where the delay in milliseconds is randomly sampled from the
- // range in the config. The delay of each repetition is independently sampled
- // from the same range. When scheduled, all previous schedules are canceled.
- void ScheduleRecurringRegatheringOnAllNetworks();
// Schedules delayed and repeated regathering of local candidates on failed
// networks, where the delay in milliseconds is given by the config. Each
// repetition is separated by the same delay. When scheduled, all previous
@@ -99,24 +84,16 @@
// ScheduleRecurringRegatheringOnFailedNetworks.
void CancelScheduledRecurringRegatheringOnFailedNetworks();
- rtc::Thread* thread() const { return thread_; }
- // The following two methods perform the actual regathering, if the recent
- // port allocator session has done the initial gathering.
- void RegatherOnAllNetworksIfDoneGathering(bool repeated);
- void RegatherOnFailedNetworksIfDoneGathering(bool repeated);
- // Samples a delay from the uniform distribution in the given range.
- int SampleRegatherAllNetworksInterval(const rtc::IntervalRange& range);
+ // The following method perform the actual regathering, if the recent port
+ // allocator session has done the initial gathering.
+ void RegatherOnFailedNetworksIfDoneGathering();
Config config_;
cricket::IceTransportInternal* ice_transport_;
cricket::PortAllocatorSession* allocator_session_ = nullptr;
- bool has_recurring_schedule_on_all_networks_ = false;
bool has_recurring_schedule_on_failed_networks_ = false;
rtc::Thread* thread_;
- rtc::AsyncInvoker invoker_for_all_networks_;
rtc::AsyncInvoker invoker_for_failed_networks_;
- // Used to generate random intervals for regather_all_networks_interval_range.
- Random rand_;
};
} // namespace webrtc
diff --git a/p2p/base/regathering_controller_unittest.cc b/p2p/base/regathering_controller_unittest.cc
index e9da576..1617b92 100644
--- a/p2p/base/regathering_controller_unittest.cc
+++ b/p2p/base/regathering_controller_unittest.cc
@@ -54,7 +54,8 @@
ice_transport_(new cricket::MockIceTransport()),
allocator_(
new cricket::FakePortAllocator(rtc::Thread::Current(), nullptr)) {
- BasicRegatheringController::Config regathering_config(absl::nullopt, 0);
+ BasicRegatheringController::Config regathering_config;
+ regathering_config.regather_on_failed_networks_interval = 0;
regathering_controller_.reset(new BasicRegatheringController(
regathering_config, ice_transport_.get(), rtc::Thread::Current()));
}
@@ -121,16 +122,13 @@
rtc::ScopedFakeClock clock;
InitializeAndGatherOnce(); // Session not cleared.
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
+ BasicRegatheringController::Config config;
+ config.regather_on_failed_networks_interval = 2000;
regathering_controller()->SetConfig(config);
regathering_controller()->Start();
SIMULATED_WAIT(false, 10000, clock);
// Expect no regathering in the last 10s.
EXPECT_EQ(0, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- EXPECT_EQ(0, GetRegatheringReasonCount(
cricket::IceRegatheringReason::NETWORK_FAILURE));
}
@@ -138,149 +136,25 @@
rtc::ScopedFakeClock clock;
InitializeAndGatherOnceWithSessionCleared();
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
+ BasicRegatheringController::Config config;
+ config.regather_on_failed_networks_interval = 2000;
regathering_controller()->SetConfig(config);
regathering_controller()->Start();
SIMULATED_WAIT(false, 2000 - 1, clock);
// Expect no regathering.
EXPECT_EQ(0, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- EXPECT_EQ(0, GetRegatheringReasonCount(
cricket::IceRegatheringReason::NETWORK_FAILURE));
SIMULATED_WAIT(false, 2, clock);
// Expect regathering on all networks and on failed networks to happen once
// respectively in that last 2s with 2s interval.
EXPECT_EQ(1, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- EXPECT_EQ(1, GetRegatheringReasonCount(
cricket::IceRegatheringReason::NETWORK_FAILURE));
SIMULATED_WAIT(false, 11000, clock);
// Expect regathering to happen for another 5 times in 11s with 2s interval.
EXPECT_EQ(6, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- EXPECT_EQ(6, GetRegatheringReasonCount(
cricket::IceRegatheringReason::NETWORK_FAILURE));
}
-// Tests that the schedule of ICE regathering on all networks can be started
-// when not scheduled initially.
-TEST_F(RegatheringControllerTest,
- IceRegatheringOnAllNetworksCanBeScheduledAfterStart) {
- rtc::ScopedFakeClock clock;
- InitializeAndGatherOnceWithSessionCleared();
-
- BasicRegatheringController::Config config(absl::nullopt, 2000);
- regathering_controller()->SetConfig(config);
- regathering_controller()->Start();
- SIMULATED_WAIT(false, 3000, clock);
- // Expect no regathering on all networks.
- EXPECT_EQ(0, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- config.regather_on_all_networks_interval_range =
- rtc::IntervalRange(2000, 2000);
- regathering_controller()->SetConfig(config);
- SIMULATED_WAIT(false, 11000, clock);
- // Expect regathering to happen for 5 times on all networks in the last 11s
- // with 2s interval.
- EXPECT_EQ(5, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
-}
-
-// Tests that ICE regathering on all networks can be canceled by changing the
-// config.
-TEST_F(RegatheringControllerTest, IceRegatheringOnAllNetworksCanBeCanceled) {
- rtc::ScopedFakeClock clock;
- InitializeAndGatherOnceWithSessionCleared();
-
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
- regathering_controller()->SetConfig(config);
- regathering_controller()->Start();
- config.regather_on_all_networks_interval_range.reset();
- // Set the regathering interval range on all networks to nullopt should cancel
- // the schedule on all networks.
- regathering_controller()->SetConfig(config);
- SIMULATED_WAIT(false, 10000, clock);
- // Expect no regathering on all networks happened in the last 10s.
- EXPECT_EQ(0, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
-}
-
-// Tests that canceling the regathering on all networks does not cancel the
-// schedule on failed networks.
-TEST_F(RegatheringControllerTest,
- CancelingRegatheringOnAllNetworksDoesNotCancelOnFailedNetworks) {
- rtc::ScopedFakeClock clock;
- InitializeAndGatherOnceWithSessionCleared();
-
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
- regathering_controller()->SetConfig(config);
- regathering_controller()->Start();
- config.regather_on_all_networks_interval_range =
- rtc::IntervalRange(20000, 20000);
- // Canceling and rescheduling the regathering on all networks should not
- // impact the schedule for failed networks.
- regathering_controller()->SetConfig(config);
- SIMULATED_WAIT(false, 11000, clock);
- // Expect regathering to happen for 5 times for failed networks in the last
- // 11s with 2s interval.
- EXPECT_EQ(5, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::NETWORK_FAILURE));
-}
-
-// Tests that canceling the regathering on failed networks does not cancel the
-// schedule on all networks.
-TEST_F(RegatheringControllerTest,
- CancelingRegatheringOnFailedNetworksDoesNotCancelOnAllNetworks) {
- rtc::ScopedFakeClock clock;
- InitializeAndGatherOnceWithSessionCleared();
-
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
- regathering_controller()->SetConfig(config);
- regathering_controller()->Start();
- config.regather_on_failed_networks_interval = 20000;
- // Canceling and rescheduling the regathering on failed networks should not
- // impact the schedule for all networks.
- regathering_controller()->SetConfig(config);
- SIMULATED_WAIT(false, 11000, clock);
- // Expect regathering to happen for 5 times for all networks in the last 11s
- // with 2s interval.
- EXPECT_EQ(5, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
-}
-
-// Tests that the schedule of ICE regathering on all networks can be canceled
-// and replaced by a new recurring schedule.
-TEST_F(RegatheringControllerTest,
- ScheduleOfIceRegatheringOnAllNetworksCanBeReplaced) {
- rtc::ScopedFakeClock clock;
- InitializeAndGatherOnceWithSessionCleared();
-
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
- regathering_controller()->SetConfig(config);
- regathering_controller()->Start();
- config.regather_on_all_networks_interval_range =
- rtc::IntervalRange(5000, 5000);
- regathering_controller()->SetConfig(config);
- SIMULATED_WAIT(false, 3000, clock);
- // Expect no regathering from the previous schedule.
- EXPECT_EQ(0, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
- SIMULATED_WAIT(false, 11000 - 3000, clock);
- // Expect regathering to happen twice in the last 11s with 5s interval.
- EXPECT_EQ(2, GetRegatheringReasonCount(
- cricket::IceRegatheringReason::OCCASIONAL_REFRESH));
-}
-
// Tests that the schedule of ICE regathering on failed networks can be canceled
// and replaced by a new recurring schedule.
TEST_F(RegatheringControllerTest,
@@ -288,9 +162,8 @@
rtc::ScopedFakeClock clock;
InitializeAndGatherOnceWithSessionCleared();
- rtc::IntervalRange regather_all_networks_interval_range(2000, 2000);
- BasicRegatheringController::Config config(
- regather_all_networks_interval_range, 2000);
+ BasicRegatheringController::Config config;
+ config.regather_on_failed_networks_interval = 2000;
regathering_controller()->SetConfig(config);
regathering_controller()->Start();
config.regather_on_failed_networks_interval = 5000;
diff --git a/p2p/base/stun_request.cc b/p2p/base/stun_request.cc
index 964b80f..b4dba7d 100644
--- a/p2p/base/stun_request.cc
+++ b/p2p/base/stun_request.cc
@@ -17,6 +17,7 @@
#include "rtc_base/checks.h"
#include "rtc_base/helpers.h"
#include "rtc_base/logging.h"
+#include "rtc_base/string_encode.h"
#include "rtc_base/time_utils.h" // For TimeMillis
#include "system_wrappers/include/field_trial.h"
diff --git a/p2p/client/basic_port_allocator.cc b/p2p/client/basic_port_allocator.cc
index bd25ab5..8aeef93 100644
--- a/p2p/client/basic_port_allocator.cc
+++ b/p2p/client/basic_port_allocator.cc
@@ -463,23 +463,6 @@
IceRegatheringReason::NETWORK_FAILURE);
}
-void BasicPortAllocatorSession::RegatherOnAllNetworks() {
- RTC_DCHECK_RUN_ON(network_thread_);
-
- std::vector<rtc::Network*> networks = GetNetworks();
- if (networks.empty()) {
- return;
- }
-
- RTC_LOG(LS_INFO) << "Regather candidates on all networks";
-
- // We expect to generate candidates that are equivalent to what we have now.
- // Force DoAllocate to generate them instead of skipping.
- bool disable_equivalent_phases = false;
- Regather(networks, disable_equivalent_phases,
- IceRegatheringReason::OCCASIONAL_REFRESH);
-}
-
void BasicPortAllocatorSession::Regather(
const std::vector<rtc::Network*>& networks,
bool disable_equivalent_phases,
diff --git a/p2p/client/basic_port_allocator.h b/p2p/client/basic_port_allocator.h
index 1272fab..b9f2b2e 100644
--- a/p2p/client/basic_port_allocator.h
+++ b/p2p/client/basic_port_allocator.h
@@ -141,7 +141,6 @@
std::vector<Candidate> ReadyCandidates() const override;
bool CandidatesAllocationDone() const override;
void RegatherOnFailedNetworks() override;
- void RegatherOnAllNetworks() override;
void GetCandidateStatsFromReadyPorts(
CandidateStatsList* candidate_stats_list) const override;
void SetStunKeepaliveIntervalForReadyPorts(
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index a43b49a..cf4189b 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -892,7 +892,6 @@
absl::optional<int> ice_unwritable_min_checks;
absl::optional<int> ice_inactive_timeout;
absl::optional<int> stun_candidate_keepalive_interval;
- absl::optional<rtc::IntervalRange> ice_regather_interval_range;
webrtc::TurnCustomizer* turn_customizer;
SdpSemantics sdp_semantics;
absl::optional<rtc::AdapterType> network_preference;
@@ -958,7 +957,6 @@
ice_inactive_timeout == o.ice_inactive_timeout &&
stun_candidate_keepalive_interval ==
o.stun_candidate_keepalive_interval &&
- ice_regather_interval_range == o.ice_regather_interval_range &&
turn_customizer == o.turn_customizer &&
sdp_semantics == o.sdp_semantics &&
network_preference == o.network_preference &&
@@ -1424,15 +1422,8 @@
RTCError PeerConnection::ValidateConfiguration(
const RTCConfiguration& config) const {
- if (config.ice_regather_interval_range &&
- config.continual_gathering_policy == GATHER_ONCE) {
- return RTCError(RTCErrorType::INVALID_PARAMETER,
- "ice_regather_interval_range specified but continual "
- "gathering policy is GATHER_ONCE");
- }
- auto result =
- cricket::P2PTransportChannel::ValidateIceConfig(ParseIceConfig(config));
- return result;
+ return cricket::P2PTransportChannel::ValidateIceConfig(
+ ParseIceConfig(config));
}
rtc::scoped_refptr<StreamCollectionInterface> PeerConnection::local_streams() {
@@ -6165,8 +6156,6 @@
ice_config.ice_unwritable_min_checks = config.ice_unwritable_min_checks;
ice_config.ice_inactive_timeout = config.ice_inactive_timeout;
ice_config.stun_keepalive_interval = config.stun_candidate_keepalive_interval;
- ice_config.regather_all_networks_interval_range =
- config.ice_regather_interval_range;
ice_config.network_preference = config.network_preference;
return ice_config;
}
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 7f42b8c..8db8751 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -3666,28 +3666,6 @@
EXPECT_FALSE(pc_->SetBitrate(bitrate).ok());
}
-// ice_regather_interval_range requires WebRTC to be configured for continual
-// gathering already.
-TEST_P(PeerConnectionInterfaceTest,
- SetIceRegatherIntervalRangeWithoutContinualGatheringFails) {
- PeerConnectionInterface::RTCConfiguration config;
- config.ice_regather_interval_range.emplace(1000, 2000);
- config.continual_gathering_policy =
- PeerConnectionInterface::ContinualGatheringPolicy::GATHER_ONCE;
- CreatePeerConnectionExpectFail(config);
-}
-
-// Ensures that there is no error when ice_regather_interval_range is set with
-// continual gathering enabled.
-TEST_P(PeerConnectionInterfaceTest,
- SetIceRegatherIntervalRangeWithContinualGathering) {
- PeerConnectionInterface::RTCConfiguration config;
- config.ice_regather_interval_range.emplace(1000, 2000);
- config.continual_gathering_policy =
- PeerConnectionInterface::ContinualGatheringPolicy::GATHER_CONTINUALLY;
- CreatePeerConnection(config);
-}
-
// The current bitrate from BitrateSettings is currently clamped
// by Call's BitrateConstraints, which comes from the SDP or a default value.
// This test checks that a call to SetBitrate with a current bitrate that will
diff --git a/rtc_base/async_packet_socket.h b/rtc_base/async_packet_socket.h
index 50c07e2..d47d57b 100644
--- a/rtc_base/async_packet_socket.h
+++ b/rtc_base/async_packet_socket.h
@@ -11,6 +11,8 @@
#ifndef RTC_BASE_ASYNC_PACKET_SOCKET_H_
#define RTC_BASE_ASYNC_PACKET_SOCKET_H_
+#include <vector>
+
#include "rtc_base/constructor_magic.h"
#include "rtc_base/dscp.h"
#include "rtc_base/network/sent_packet.h"
diff --git a/rtc_base/time_utils.h b/rtc_base/time_utils.h
index ef54c35..147ab8d 100644
--- a/rtc_base/time_utils.h
+++ b/rtc_base/time_utils.h
@@ -14,10 +14,7 @@
#include <stdint.h>
#include <time.h>
-#include <string>
-
#include "rtc_base/checks.h"
-#include "rtc_base/strings/string_builder.h"
#include "rtc_base/system/rtc_export.h"
namespace rtc {
@@ -137,34 +134,6 @@
// See above.
int64_t TimeUTCMillis();
-// Interval of time from the range [min, max] inclusive.
-class IntervalRange {
- public:
- IntervalRange() : min_(0), max_(0) {}
- IntervalRange(int min, int max) : min_(min), max_(max) {
- RTC_DCHECK_LE(min, max);
- }
-
- int min() const { return min_; }
- int max() const { return max_; }
-
- std::string ToString() const {
- rtc::StringBuilder ss;
- ss << "[" << min_ << "," << max_ << "]";
- return ss.Release();
- }
-
- bool operator==(const IntervalRange& o) const {
- return min_ == o.min_ && max_ == o.max_;
- }
-
- bool operator!=(const IntervalRange& o) const { return !operator==(o); }
-
- private:
- int min_;
- int max_;
-};
-
} // namespace rtc
#endif // RTC_BASE_TIME_UTILS_H_
diff --git a/rtc_base/virtual_socket_server.h b/rtc_base/virtual_socket_server.h
index 9d3aa9e..f45fabf 100644
--- a/rtc_base/virtual_socket_server.h
+++ b/rtc_base/virtual_socket_server.h
@@ -13,6 +13,7 @@
#include <deque>
#include <map>
+#include <vector>
#include "rtc_base/checks.h"
#include "rtc_base/constructor_magic.h"
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 24d6527..13793fb 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -840,9 +840,6 @@
"objc/api/peerconnection/RTCIceServer+Private.h",
"objc/api/peerconnection/RTCIceServer.h",
"objc/api/peerconnection/RTCIceServer.mm",
- "objc/api/peerconnection/RTCIntervalRange+Private.h",
- "objc/api/peerconnection/RTCIntervalRange.h",
- "objc/api/peerconnection/RTCIntervalRange.mm",
"objc/api/peerconnection/RTCLegacyStatsReport+Private.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCLegacyStatsReport.mm",
@@ -1005,7 +1002,6 @@
"objc/Framework/Headers/WebRTC/RTCH264ProfileLevelId.h",
"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
"objc/Framework/Headers/WebRTC/RTCIceServer.h",
- "objc/Framework/Headers/WebRTC/RTCIntervalRange.h",
"objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h",
"objc/Framework/Headers/WebRTC/RTCLogging.h",
"objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h",
@@ -1183,7 +1179,6 @@
"objc/unittests/RTCDataChannelConfigurationTest.mm",
"objc/unittests/RTCIceCandidateTest.mm",
"objc/unittests/RTCIceServerTest.mm",
- "objc/unittests/RTCIntervalRangeTests.mm",
"objc/unittests/RTCMediaConstraintsTest.mm",
"objc/unittests/RTCPeerConnectionFactoryBuilderTest.mm",
"objc/unittests/RTCPeerConnectionTest.mm",
@@ -1293,7 +1288,6 @@
"objc/api/peerconnection/RTCFieldTrials.h",
"objc/api/peerconnection/RTCIceCandidate.h",
"objc/api/peerconnection/RTCIceServer.h",
- "objc/api/peerconnection/RTCIntervalRange.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCMediaConstraints.h",
"objc/api/peerconnection/RTCMediaSource.h",
@@ -1408,7 +1402,6 @@
"objc/api/peerconnection/RTCFieldTrials.h",
"objc/api/peerconnection/RTCIceCandidate.h",
"objc/api/peerconnection/RTCIceServer.h",
- "objc/api/peerconnection/RTCIntervalRange.h",
"objc/api/peerconnection/RTCLegacyStatsReport.h",
"objc/api/peerconnection/RTCMediaConstraints.h",
"objc/api/peerconnection/RTCMediaSource.h",
diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java
index bf5a734..7891b7f6 100644
--- a/sdk/android/api/org/webrtc/PeerConnection.java
+++ b/sdk/android/api/org/webrtc/PeerConnection.java
@@ -415,27 +415,6 @@
KEEP_FIRST_READY // Keep the first ready port and prune the rest on the same network.
}
- /** Java version of rtc::IntervalRange */
- public static class IntervalRange {
- private final int min;
- private final int max;
-
- public IntervalRange(int min, int max) {
- this.min = min;
- this.max = max;
- }
-
- @CalledByNative("IntervalRange")
- public int getMin() {
- return min;
- }
-
- @CalledByNative("IntervalRange")
- public int getMax() {
- return max;
- }
- }
-
/**
* Java version of webrtc::SdpSemantics.
*
@@ -525,7 +504,6 @@
//
// Can be set to Integer.MAX_VALUE to effectively disable the limit.
public int maxIPv6Networks;
- @Nullable public IntervalRange iceRegatherIntervalRange;
// These values will be overridden by MediaStream constraints if deprecated constraints-based
// create peerconnection interface is used.
@@ -609,7 +587,6 @@
stunCandidateKeepaliveIntervalMs = null;
disableIPv6OnWifi = false;
maxIPv6Networks = 5;
- iceRegatherIntervalRange = null;
disableIpv6 = false;
enableDscp = false;
enableCpuOveruseDetection = true;
@@ -767,12 +744,6 @@
@Nullable
@CalledByNative("RTCConfiguration")
- IntervalRange getIceRegatherIntervalRange() {
- return iceRegatherIntervalRange;
- }
-
- @Nullable
- @CalledByNative("RTCConfiguration")
TurnCustomizer getTurnCustomizer() {
return turnCustomizer;
}
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
index d339f6a..f1141e1 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
@@ -168,7 +168,6 @@
// Test configuration options.
config.continualGatheringPolicy = PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY;
- config.iceRegatherIntervalRange = new PeerConnection.IntervalRange(1000, 2000);
PeerConnection offeringPC =
factory.createPeerConnection(config, mock(PeerConnection.Observer.class));
diff --git a/sdk/android/src/jni/pc/peer_connection.cc b/sdk/android/src/jni/pc/peer_connection.cc
index 9b1cce6..0ae39fb 100644
--- a/sdk/android/src/jni/pc/peer_connection.cc
+++ b/sdk/android/src/jni/pc/peer_connection.cc
@@ -240,13 +240,6 @@
Java_RTCConfiguration_getDisableIPv6OnWifi(jni, j_rtc_config);
rtc_config->max_ipv6_networks =
Java_RTCConfiguration_getMaxIPv6Networks(jni, j_rtc_config);
- ScopedJavaLocalRef<jobject> j_ice_regather_interval_range =
- Java_RTCConfiguration_getIceRegatherIntervalRange(jni, j_rtc_config);
- if (!IsNull(jni, j_ice_regather_interval_range)) {
- int min = Java_IntervalRange_getMin(jni, j_ice_regather_interval_range);
- int max = Java_IntervalRange_getMax(jni, j_ice_regather_interval_range);
- rtc_config->ice_regather_interval_range.emplace(min, max);
- }
rtc_config->turn_customizer = GetNativeTurnCustomizer(jni, j_turn_customizer);
diff --git a/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h b/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h
deleted file mode 100644
index 65726ee..0000000
--- a/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import "api/peerconnection/RTCIntervalRange.h"
diff --git a/sdk/objc/api/peerconnection/RTCConfiguration.h b/sdk/objc/api/peerconnection/RTCConfiguration.h
index 13a51b9..7400296 100644
--- a/sdk/objc/api/peerconnection/RTCConfiguration.h
+++ b/sdk/objc/api/peerconnection/RTCConfiguration.h
@@ -15,7 +15,6 @@
#import "RTCMacros.h"
@class RTCIceServer;
-@class RTCIntervalRange;
/**
* Represents the ice transport policy. This exposes the same states in C++,
@@ -157,13 +156,6 @@
*/
@property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval;
-/** ICE Periodic Regathering
- * If set, WebRTC will periodically create and propose candidates without
- * starting a new ICE generation. The regathering happens continuously with
- * interval specified in milliseconds by the uniform distribution [a, b].
- */
-@property(nonatomic, strong, nullable) RTCIntervalRange *iceRegatherIntervalRange;
-
/** Configure the SDP semantics used by this PeerConnection. Note that the
* WebRTC 1.0 specification requires UnifiedPlan semantics. The
* RTCRtpTransceiver API is only available with UnifiedPlan semantics.
diff --git a/sdk/objc/api/peerconnection/RTCConfiguration.mm b/sdk/objc/api/peerconnection/RTCConfiguration.mm
index 7503a0a..7f9f591 100644
--- a/sdk/objc/api/peerconnection/RTCConfiguration.mm
+++ b/sdk/objc/api/peerconnection/RTCConfiguration.mm
@@ -15,7 +15,6 @@
#import "RTCCertificate.h"
#import "RTCConfiguration+Native.h"
#import "RTCIceServer+Private.h"
-#import "RTCIntervalRange+Private.h"
#import "base/RTCLogging.h"
#include "rtc_base/rtc_certificate_generator.h"
@@ -48,7 +47,6 @@
@synthesize shouldSurfaceIceCandidatesOnIceTransportTypeChanged =
_shouldSurfaceIceCandidatesOnIceTransportTypeChanged;
@synthesize iceCheckMinInterval = _iceCheckMinInterval;
-@synthesize iceRegatherIntervalRange = _iceRegatherIntervalRange;
@synthesize sdpSemantics = _sdpSemantics;
@synthesize turnCustomizer = _turnCustomizer;
@synthesize activeResetSrtpParams = _activeResetSrtpParams;
@@ -118,11 +116,6 @@
_iceCheckMinInterval =
[NSNumber numberWithInt:*config.ice_check_min_interval];
}
- if (config.ice_regather_interval_range) {
- const rtc::IntervalRange &nativeIntervalRange = config.ice_regather_interval_range.value();
- _iceRegatherIntervalRange =
- [[RTCIntervalRange alloc] initWithNativeIntervalRange:nativeIntervalRange];
- }
_sdpSemantics = [[self class] sdpSemanticsForNativeSdpSemantics:config.sdp_semantics];
_turnCustomizer = config.turn_customizer;
_activeResetSrtpParams = config.active_reset_srtp_params;
@@ -147,7 +140,7 @@
- (NSString *)description {
static NSString *formatString = @"RTCConfiguration: "
@"{\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n"
- @"%d\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n}\n";
+ @"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n}\n";
return [NSString
stringWithFormat:formatString,
@@ -168,7 +161,6 @@
_shouldPresumeWritableWhenFullyRelayed,
_shouldSurfaceIceCandidatesOnIceTransportTypeChanged,
_iceCheckMinInterval,
- _iceRegatherIntervalRange,
_disableLinkLocalNetworks,
_disableIPV6,
_disableIPV6OnWiFi,
@@ -251,12 +243,6 @@
if (_iceCheckMinInterval != nil) {
nativeConfig->ice_check_min_interval = absl::optional<int>(_iceCheckMinInterval.intValue);
}
- if (_iceRegatherIntervalRange != nil) {
- std::unique_ptr<rtc::IntervalRange> nativeIntervalRange(
- _iceRegatherIntervalRange.nativeIntervalRange);
- nativeConfig->ice_regather_interval_range =
- absl::optional<rtc::IntervalRange>(*nativeIntervalRange);
- }
nativeConfig->sdp_semantics = [[self class] nativeSdpSemanticsForSdpSemantics:_sdpSemantics];
if (_turnCustomizer) {
nativeConfig->turn_customizer = _turnCustomizer;
diff --git a/sdk/objc/api/peerconnection/RTCIntervalRange+Private.h b/sdk/objc/api/peerconnection/RTCIntervalRange+Private.h
deleted file mode 100644
index afa7509..0000000
--- a/sdk/objc/api/peerconnection/RTCIntervalRange+Private.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import "RTCIntervalRange.h"
-
-#include "rtc_base/time_utils.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RTCIntervalRange ()
-
-@property(nonatomic, readonly) std::unique_ptr<rtc::IntervalRange> nativeIntervalRange;
-
-- (instancetype)initWithNativeIntervalRange:(const rtc::IntervalRange &)config;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/sdk/objc/api/peerconnection/RTCIntervalRange.h b/sdk/objc/api/peerconnection/RTCIntervalRange.h
deleted file mode 100644
index 00508eb..0000000
--- a/sdk/objc/api/peerconnection/RTCIntervalRange.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface RTCIntervalRange : NSObject
-
-@property(nonatomic, readonly) NSInteger min;
-@property(nonatomic, readonly) NSInteger max;
-
-- (instancetype)init;
-- (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max NS_DESIGNATED_INITIALIZER;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/sdk/objc/api/peerconnection/RTCIntervalRange.mm b/sdk/objc/api/peerconnection/RTCIntervalRange.mm
deleted file mode 100644
index 0a861ea..0000000
--- a/sdk/objc/api/peerconnection/RTCIntervalRange.mm
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import "RTCIntervalRange+Private.h"
-
-#include "rtc_base/checks.h"
-
-@implementation RTCIntervalRange
-
-@synthesize min = _min;
-@synthesize max = _max;
-
-- (instancetype)init {
- return [self initWithMin:0 max:0];
-}
-
-- (instancetype)initWithMin:(NSInteger)min
- max:(NSInteger)max {
- RTC_DCHECK_LE(min, max);
- if (self = [super init]) {
- _min = min;
- _max = max;
- }
- return self;
-}
-
-- (instancetype)initWithNativeIntervalRange:(const rtc::IntervalRange &)config {
- return [self initWithMin:config.min() max:config.max()];
-}
-
-- (NSString *)description {
- return [NSString stringWithFormat:@"[%ld, %ld]", (long)_min, (long)_max];
-}
-
-#pragma mark - Private
-
-- (std::unique_ptr<rtc::IntervalRange>)nativeIntervalRange {
- std::unique_ptr<rtc::IntervalRange> nativeIntervalRange(
- new rtc::IntervalRange((int)_min, (int)_max));
- return nativeIntervalRange;
-}
-
-@end
diff --git a/sdk/objc/unittests/RTCConfigurationTest.mm b/sdk/objc/unittests/RTCConfigurationTest.mm
index f31fcfd..3fb4d42 100644
--- a/sdk/objc/unittests/RTCConfigurationTest.mm
+++ b/sdk/objc/unittests/RTCConfigurationTest.mm
@@ -17,7 +17,6 @@
#import "api/peerconnection/RTCConfiguration+Private.h"
#import "api/peerconnection/RTCConfiguration.h"
#import "api/peerconnection/RTCIceServer.h"
-#import "api/peerconnection/RTCIntervalRange.h"
#import "helpers/NSString+StdString.h"
@interface RTCConfigurationTest : NSObject
@@ -30,7 +29,6 @@
- (void)testConversionToNativeConfiguration {
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
- RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:0 max:100];
RTCConfiguration *config = [[RTCConfiguration alloc] init];
config.iceServers = @[ server ];
@@ -49,7 +47,6 @@
config.continualGatheringPolicy =
RTCContinualGatheringPolicyGatherContinually;
config.shouldPruneTurnPorts = YES;
- config.iceRegatherIntervalRange = range;
config.cryptoOptions = [[RTCCryptoOptions alloc] initWithSrtpEnableGcmCryptoSuites:YES
srtpEnableAes128Sha1_32CryptoCipher:YES
srtpEnableEncryptedRtpHeaderExtensions:YES
@@ -82,8 +79,6 @@
EXPECT_EQ(webrtc::PeerConnectionInterface::GATHER_CONTINUALLY,
nativeConfig->continual_gathering_policy);
EXPECT_EQ(true, nativeConfig->prune_turn_ports);
- EXPECT_EQ(range.min, nativeConfig->ice_regather_interval_range->min());
- EXPECT_EQ(range.max, nativeConfig->ice_regather_interval_range->max());
EXPECT_EQ(true, nativeConfig->crypto_options->srtp.enable_gcm_crypto_suites);
EXPECT_EQ(true, nativeConfig->crypto_options->srtp.enable_aes128_sha1_32_crypto_cipher);
EXPECT_EQ(true, nativeConfig->crypto_options->srtp.enable_encrypted_rtp_header_extensions);
@@ -95,7 +90,6 @@
- (void)testNativeConversionToConfiguration {
NSArray *urlStrings = @[ @"stun:stun1.example.net" ];
RTCIceServer *server = [[RTCIceServer alloc] initWithURLStrings:urlStrings];
- RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:0 max:100];
RTCConfiguration *config = [[RTCConfiguration alloc] init];
config.iceServers = @[ server ];
@@ -114,7 +108,6 @@
config.continualGatheringPolicy =
RTCContinualGatheringPolicyGatherContinually;
config.shouldPruneTurnPorts = YES;
- config.iceRegatherIntervalRange = range;
config.cryptoOptions = [[RTCCryptoOptions alloc] initWithSrtpEnableGcmCryptoSuites:YES
srtpEnableAes128Sha1_32CryptoCipher:NO
srtpEnableEncryptedRtpHeaderExtensions:NO
@@ -146,8 +139,6 @@
newConfig.iceBackupCandidatePairPingInterval);
EXPECT_EQ(config.continualGatheringPolicy, newConfig.continualGatheringPolicy);
EXPECT_EQ(config.shouldPruneTurnPorts, newConfig.shouldPruneTurnPorts);
- EXPECT_EQ(config.iceRegatherIntervalRange.min, newConfig.iceRegatherIntervalRange.min);
- EXPECT_EQ(config.iceRegatherIntervalRange.max, newConfig.iceRegatherIntervalRange.max);
EXPECT_EQ(config.cryptoOptions.srtpEnableGcmCryptoSuites,
newConfig.cryptoOptions.srtpEnableGcmCryptoSuites);
EXPECT_EQ(config.cryptoOptions.srtpEnableAes128Sha1_32CryptoCipher,
diff --git a/sdk/objc/unittests/RTCIntervalRangeTests.mm b/sdk/objc/unittests/RTCIntervalRangeTests.mm
deleted file mode 100644
index 9244c5b..0000000
--- a/sdk/objc/unittests/RTCIntervalRangeTests.mm
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2017 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#import <Foundation/Foundation.h>
-
-#include "rtc_base/gunit.h"
-
-#import "api/peerconnection/RTCIntervalRange+Private.h"
-#import "api/peerconnection/RTCIntervalRange.h"
-
-@interface RTCIntervalRangeTest : NSObject
-- (void)testConversionToNativeConfiguration;
-- (void)testNativeConversionToConfiguration;
-@end
-
-@implementation RTCIntervalRangeTest
-
-- (void)testConversionToNativeConfiguration {
- NSInteger min = 0;
- NSInteger max = 100;
- RTCIntervalRange *range = [[RTCIntervalRange alloc] initWithMin:min max:max];
- EXPECT_EQ(min, range.min);
- EXPECT_EQ(max, range.max);
- std::unique_ptr<rtc::IntervalRange> nativeRange = range.nativeIntervalRange;
- EXPECT_EQ(min, nativeRange->min());
- EXPECT_EQ(max, nativeRange->max());
-}
-
-- (void)testNativeConversionToConfiguration {
- NSInteger min = 0;
- NSInteger max = 100;
- rtc::IntervalRange nativeRange((int)min, (int)max);
- RTCIntervalRange *range =
- [[RTCIntervalRange alloc] initWithNativeIntervalRange:nativeRange];
- EXPECT_EQ(min, range.min);
- EXPECT_EQ(max, range.max);
-}
-
-@end
-
-TEST(RTCIntervalRangeTest, NativeConfigurationConversionTest) {
- @autoreleasepool {
- RTCIntervalRangeTest *test = [[RTCIntervalRangeTest alloc] init];
- [test testConversionToNativeConfiguration];
- [test testNativeConversionToConfiguration];
- }
-}