diff --git a/api/BUILD.gn b/api/BUILD.gn
index 0352f99..c9dabe3 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -410,6 +410,16 @@
   absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
 }
 
+rtc_source_set("peer_network_dependencies") {
+  visibility = [ "*" ]
+  sources = [ "test/peer_network_dependencies.h" ]
+  deps = [
+    ":packet_socket_factory",
+    "../rtc_base",
+    "../rtc_base:threading",
+  ]
+}
+
 rtc_source_set("peer_connection_quality_test_fixture_api") {
   visibility = [ "*" ]
   testonly = true
@@ -425,6 +435,7 @@
     ":media_stream_interface",
     ":network_state_predictor_api",
     ":packet_socket_factory",
+    ":peer_network_dependencies",
     ":rtp_parameters",
     ":simulated_network_api",
     ":stats_observer_interface",
@@ -654,6 +665,7 @@
   deps = [
     ":array_view",
     ":packet_socket_factory",
+    ":peer_network_dependencies",
     ":simulated_network_api",
     ":time_controller",
     "../call:simulated_network",
diff --git a/api/test/DEPS b/api/test/DEPS
index 3290768..6c3a9eb 100644
--- a/api/test/DEPS
+++ b/api/test/DEPS
@@ -16,6 +16,10 @@
     "+rtc_base/network.h",
     "+rtc_base/network_constants.h",
   ],
+  "peer_network_dependencies\.h": [
+    "+rtc_base/network.h",
+    "+rtc_base/thread.h",
+  ],
   "peerconnection_quality_test_fixture\.h": [
     "+logging/rtc_event_log/rtc_event_log_factory_interface.h",
     "+rtc_base/network.h",
diff --git a/api/test/network_emulation_manager.h b/api/test/network_emulation_manager.h
index 61973eb..b5c68af 100644
--- a/api/test/network_emulation_manager.h
+++ b/api/test/network_emulation_manager.h
@@ -20,6 +20,7 @@
 #include "api/packet_socket_factory.h"
 #include "api/test/network_emulation/cross_traffic.h"
 #include "api/test/network_emulation/network_emulation_interfaces.h"
+#include "api/test/peer_network_dependencies.h"
 #include "api/test/simulated_network.h"
 #include "api/test/time_controller.h"
 #include "api/units/timestamp.h"
@@ -130,6 +131,9 @@
   // into WebRTC to properly setup network emulation. Returned factory is owned
   // by EmulatedNetworkManagerInterface implementation.
   virtual rtc::PacketSocketFactory* packet_socket_factory() = 0;
+  webrtc::webrtc_pc_e2e::PeerNetworkDependencies network_dependencies() {
+    return {network_thread(), network_manager(), packet_socket_factory()};
+  }
   // Returns list of endpoints that are associated with this instance. Pointers
   // are guaranteed to be non-null and are owned by NetworkEmulationManager.
   virtual std::vector<EmulatedEndpoint*> endpoints() const = 0;
diff --git a/api/test/peer_network_dependencies.h b/api/test/peer_network_dependencies.h
new file mode 100644
index 0000000..6f85ad0
--- /dev/null
+++ b/api/test/peer_network_dependencies.h
@@ -0,0 +1,32 @@
+/*
+ *  Copyright (c) 2021 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.
+ */
+
+#ifndef API_TEST_PEER_NETWORK_DEPENDENCIES_H_
+#define API_TEST_PEER_NETWORK_DEPENDENCIES_H_
+
+#include "api/packet_socket_factory.h"
+#include "rtc_base/network.h"
+#include "rtc_base/thread.h"
+
+namespace webrtc {
+namespace webrtc_pc_e2e {
+
+// The network dependencies needed when adding a peer to tests using
+// PeerConnectionE2EQualityTestFixture.
+struct PeerNetworkDependencies {
+  rtc::Thread* network_thread;
+  rtc::NetworkManager* network_manager;
+  rtc::PacketSocketFactory* packet_socket_factory;
+};
+
+}  // namespace webrtc_pc_e2e
+}  // namespace webrtc
+
+#endif  // API_TEST_PEER_NETWORK_DEPENDENCIES_H_
diff --git a/api/test/peerconnection_quality_test_fixture.h b/api/test/peerconnection_quality_test_fixture.h
index 8d07ccb..fb7264b 100644
--- a/api/test/peerconnection_quality_test_fixture.h
+++ b/api/test/peerconnection_quality_test_fixture.h
@@ -30,6 +30,7 @@
 #include "api/task_queue/task_queue_factory.h"
 #include "api/test/audio_quality_analyzer_interface.h"
 #include "api/test/frame_generator_interface.h"
+#include "api/test/peer_network_dependencies.h"
 #include "api/test/simulated_network.h"
 #include "api/test/stats_observer_interface.h"
 #include "api/test/track_id_stream_info_map.h"
@@ -494,11 +495,18 @@
 
   // Add a new peer to the call and return an object through which caller
   // can configure peer's behavior.
-  // `network_thread` will be used as network thread for peer's peer connection
-  // `network_manager` will be used to provide network interfaces for peer's
-  // peer connection.
+  // `network_dependencies` are used to provide networking for peer's peer
+  // connection. Members must be non-null.
   // `configurer` function will be used to configure peer in the call.
   virtual PeerHandle* AddPeer(
+      const PeerNetworkDependencies& network_dependencies,
+      rtc::FunctionView<void(PeerConfigurer*)> configurer) {
+    return AddPeer(network_dependencies.network_thread,
+                   network_dependencies.network_manager, configurer);
+  }
+  // TODO(bugs.webrtc.org/13145): Delete, replaced by above overload with
+  // PeerNetworkDependencies.
+  virtual PeerHandle* AddPeer(
       rtc::Thread* network_thread,
       rtc::NetworkManager* network_manager,
       rtc::FunctionView<void(PeerConfigurer*)> configurer) = 0;
diff --git a/audio/test/pc_low_bandwidth_audio_test.cc b/audio/test/pc_low_bandwidth_audio_test.cc
index 95a3223..9cecc8d 100644
--- a/audio/test/pc_low_bandwidth_audio_test.cc
+++ b/audio/test/pc_low_bandwidth_audio_test.cc
@@ -80,10 +80,10 @@
   auto fixture = webrtc_pc_e2e::CreatePeerConnectionE2EQualityTestFixture(
       test_case_name, time_controller, /*audio_quality_analyzer=*/nullptr,
       /*video_quality_analyzer=*/nullptr);
-  fixture->AddPeer(network_links.first->network_thread(),
-                   network_links.first->network_manager(), alice_configurer);
-  fixture->AddPeer(network_links.second->network_thread(),
-                   network_links.second->network_manager(), bob_configurer);
+  fixture->AddPeer(network_links.first->network_dependencies(),
+                   alice_configurer);
+  fixture->AddPeer(network_links.second->network_dependencies(),
+                   bob_configurer);
   fixture->AddQualityMetricsReporter(
       std::make_unique<webrtc_pc_e2e::NetworkQualityMetricsReporter>(
           network_links.first, network_links.second));
diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
index d9c2685..5a7f10b 100644
--- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc
+++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
@@ -85,8 +85,7 @@
 
   void AddPeer(EmulatedNetworkManagerInterface* network,
                rtc::FunctionView<void(PeerConfigurer*)> configurer) {
-    fixture_->AddPeer(network->network_thread(), network->network_manager(),
-                      configurer);
+    fixture_->AddPeer(network->network_dependencies(), configurer);
   }
 
   void RunAndCheckEachVideoStreamReceivedFrames(const RunParams& run_params) {
diff --git a/video/pc_full_stack_tests.cc b/video/pc_full_stack_tests.cc
index 6fb83f8..6728e4b 100644
--- a/video/pc_full_stack_tests.cc
+++ b/video/pc_full_stack_tests.cc
@@ -85,10 +85,10 @@
   auto fixture = webrtc_pc_e2e::CreatePeerConnectionE2EQualityTestFixture(
       test_case_name, time_controller, /*audio_quality_analyzer=*/nullptr,
       /*video_quality_analyzer=*/nullptr);
-  fixture->AddPeer(network_links.first->network_thread(),
-                   network_links.first->network_manager(), alice_configurer);
-  fixture->AddPeer(network_links.second->network_thread(),
-                   network_links.second->network_manager(), bob_configurer);
+  fixture->AddPeer(network_links.first->network_dependencies(),
+                   alice_configurer);
+  fixture->AddPeer(network_links.second->network_dependencies(),
+                   bob_configurer);
   fixture->AddQualityMetricsReporter(
       std::make_unique<webrtc_pc_e2e::NetworkQualityMetricsReporter>(
           network_links.first, network_links.second));
