blob: 406593e23bd742d503f1bc0ccee88095fe31b536 [file] [log] [blame]
Victor Boiviee1d60b02021-04-06 14:39:391# Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("../../../webrtc.gni")
10
11rtc_source_set("context") {
12 sources = [ "context.h" ]
13 deps = [
Victor Boivie43974822023-10-26 14:24:3014 "../../../api/units:time_delta",
Victor Boiviee1d60b02021-04-06 14:39:3915 "../common:internal_types",
16 "../packet:sctp_packet",
17 "../public:socket",
18 "../public:types",
19 ]
Florent Castelli60722752021-05-03 12:07:2820 absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
Victor Boiviee1d60b02021-04-06 14:39:3921}
22
Victor Boivieb9bdf642021-04-06 17:55:5123rtc_library("heartbeat_handler") {
24 deps = [
25 ":context",
26 "../../../api:array_view",
Victor Boivie43974822023-10-26 14:24:3027 "../../../api/units:time_delta",
Sergey Silkinebc4d3e2023-11-15 10:04:4828 "../../../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:3029 "../../../rtc_base:logging",
Florent Castelli60722752021-05-03 12:07:2830 "../packet:bounded_io",
31 "../packet:chunk",
32 "../packet:parameter",
33 "../packet:sctp_packet",
34 "../public:socket",
Victor Boivieb9bdf642021-04-06 17:55:5135 "../public:types",
Florent Castelli60722752021-05-03 12:07:2836 "../timer",
Victor Boivieb9bdf642021-04-06 17:55:5137 ]
38 sources = [
39 "heartbeat_handler.cc",
40 "heartbeat_handler.h",
41 ]
Florent Castelli60722752021-05-03 12:07:2842 absl_deps = [
Victor Boivie600bb8c2021-08-12 13:43:1343 "//third_party/abseil-cpp/absl/functional:bind_front",
Florent Castelli60722752021-05-03 12:07:2844 "//third_party/abseil-cpp/absl/strings",
45 "//third_party/abseil-cpp/absl/types:optional",
46 ]
Victor Boivieb9bdf642021-04-06 17:55:5147}
48
Victor Boivie322f9112021-04-06 18:47:1149rtc_library("stream_reset_handler") {
50 deps = [
51 ":context",
52 "../../../api:array_view",
Victor Boivie43974822023-10-26 14:24:3053 "../../../api/units:time_delta",
Victor Boivie322f9112021-04-06 18:47:1154 "../../../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:3055 "../../../rtc_base:logging",
Sergey Silkinebc4d3e2023-11-15 10:04:4856 "../../../rtc_base:stringutils",
Victor Boivie3ec9e032021-08-18 13:22:4257 "../../../rtc_base/containers:flat_set",
Florent Castelli60722752021-05-03 12:07:2858 "../common:internal_types",
Florent Castelli60722752021-05-03 12:07:2859 "../packet:chunk",
60 "../packet:parameter",
61 "../packet:sctp_packet",
62 "../packet:tlv_trait",
63 "../public:socket",
Victor Boivie322f9112021-04-06 18:47:1164 "../public:types",
Florent Castelli60722752021-05-03 12:07:2865 "../rx:data_tracker",
66 "../rx:reassembly_queue",
67 "../timer",
68 "../tx:retransmission_queue",
Victor Boivie322f9112021-04-06 18:47:1169 ]
70 sources = [
71 "stream_reset_handler.cc",
72 "stream_reset_handler.h",
73 ]
Mirko Bonadeib7854e42021-05-03 12:39:2574 absl_deps = [
Victor Boivie600bb8c2021-08-12 13:43:1375 "//third_party/abseil-cpp/absl/functional:bind_front",
Mirko Bonadeib7854e42021-05-03 12:39:2576 "//third_party/abseil-cpp/absl/strings",
77 "//third_party/abseil-cpp/absl/types:optional",
78 ]
Victor Boivie322f9112021-04-06 18:47:1179}
80
Victor Boivieabf61882021-08-12 13:57:4981rtc_library("packet_sender") {
82 deps = [
83 "../packet:sctp_packet",
84 "../public:socket",
85 "../public:types",
86 "../timer",
87 ]
88 sources = [
89 "packet_sender.cc",
90 "packet_sender.h",
91 ]
92 absl_deps = []
93}
94
Victor Boivie21509562021-04-07 06:57:2895rtc_library("transmission_control_block") {
96 deps = [
97 ":context",
98 ":heartbeat_handler",
Victor Boivieabf61882021-08-12 13:57:4999 ":packet_sender",
Victor Boivie21509562021-04-07 06:57:28100 ":stream_reset_handler",
101 "../../../api:array_view",
Henrik Boströmf3a381a2022-01-27 09:02:14102 "../../../api/task_queue:task_queue",
Sergey Silkinebc4d3e2023-11-15 10:04:48103 "../../../api/units:time_delta",
Victor Boivie21509562021-04-07 06:57:28104 "../../../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30105 "../../../rtc_base:logging",
Florent Castelli57aa81b2022-04-04 15:14:02106 "../../../rtc_base:stringutils",
Victor Boivie21509562021-04-07 06:57:28107 "../common:sequence_numbers",
Florent Castelli60722752021-05-03 12:07:28108 "../packet:chunk",
Victor Boivie21509562021-04-07 06:57:28109 "../packet:sctp_packet",
110 "../public:socket",
111 "../public:types",
112 "../rx:data_tracker",
113 "../rx:reassembly_queue",
Florent Castelli60722752021-05-03 12:07:28114 "../timer",
Victor Boivie21509562021-04-07 06:57:28115 "../tx:retransmission_error_counter",
116 "../tx:retransmission_queue",
117 "../tx:retransmission_timeout",
118 "../tx:send_queue",
119 ]
120 sources = [
121 "capabilities.h",
122 "transmission_control_block.cc",
123 "transmission_control_block.h",
124 ]
Florent Castelli60722752021-05-03 12:07:28125 absl_deps = [
Victor Boivie600bb8c2021-08-12 13:43:13126 "//third_party/abseil-cpp/absl/functional:bind_front",
Florent Castelli60722752021-05-03 12:07:28127 "//third_party/abseil-cpp/absl/strings",
128 "//third_party/abseil-cpp/absl/types:optional",
129 ]
Victor Boivie21509562021-04-07 06:57:28130}
131
Victor Boivieb6580cc2021-04-08 07:56:59132rtc_library("dcsctp_socket") {
133 deps = [
134 ":context",
Florent Castelli60722752021-05-03 12:07:28135 ":heartbeat_handler",
Victor Boivieabf61882021-08-12 13:57:49136 ":packet_sender",
Florent Castelli60722752021-05-03 12:07:28137 ":stream_reset_handler",
Victor Boivieb6580cc2021-04-08 07:56:59138 ":transmission_control_block",
139 "../../../api:array_view",
Niels Möller105711e2022-06-14 13:48:26140 "../../../api:make_ref_counted",
Florent Castelli60722752021-05-03 12:07:28141 "../../../api:refcountedbase",
142 "../../../api:scoped_refptr",
Henrik Boströmb951dc62022-01-26 17:38:13143 "../../../api/task_queue:task_queue",
Victor Boivieb6580cc2021-04-08 07:56:59144 "../../../rtc_base:checks",
Florent Castelli0af55ba2022-04-04 13:06:30145 "../../../rtc_base:logging",
Florent Castelli57aa81b2022-04-04 15:14:02146 "../../../rtc_base:stringutils",
Florent Castelli60722752021-05-03 12:07:28147 "../common:internal_types",
148 "../packet:bounded_io",
149 "../packet:chunk",
Victor Boivieb6580cc2021-04-08 07:56:59150 "../packet:chunk_validators",
Florent Castelli60722752021-05-03 12:07:28151 "../packet:data",
152 "../packet:error_cause",
153 "../packet:parameter",
154 "../packet:sctp_packet",
155 "../packet:tlv_trait",
156 "../public:socket",
Victor Boivieb6580cc2021-04-08 07:56:59157 "../public:types",
Florent Castelli60722752021-05-03 12:07:28158 "../rx:data_tracker",
159 "../rx:reassembly_queue",
160 "../timer",
Florent Castelli60722752021-05-03 12:07:28161 "../tx:retransmission_error_counter",
162 "../tx:retransmission_queue",
163 "../tx:retransmission_timeout",
Victor Boivie2440d342021-05-20 11:47:32164 "../tx:rr_send_queue",
Florent Castelli60722752021-05-03 12:07:28165 "../tx:send_queue",
Victor Boivieb6580cc2021-04-08 07:56:59166 ]
167 sources = [
Victor Boivie0081f1c2021-09-28 19:18:44168 "callback_deferrer.cc",
Victor Boivieb6580cc2021-04-08 07:56:59169 "callback_deferrer.h",
170 "dcsctp_socket.cc",
171 "dcsctp_socket.h",
172 "state_cookie.cc",
173 "state_cookie.h",
174 ]
Florent Castelli60722752021-05-03 12:07:28175 absl_deps = [
Victor Boivie600bb8c2021-08-12 13:43:13176 "//third_party/abseil-cpp/absl/functional:bind_front",
Oleh Prypin752436f2022-06-23 22:51:28177 "//third_party/abseil-cpp/absl/memory",
Florent Castelli60722752021-05-03 12:07:28178 "//third_party/abseil-cpp/absl/strings",
179 "//third_party/abseil-cpp/absl/types:optional",
Daniel Collinsf418f482023-12-11 19:19:57180 "//third_party/abseil-cpp/absl/types:variant",
Florent Castelli60722752021-05-03 12:07:28181 ]
Victor Boivieb6580cc2021-04-08 07:56:59182}
183
Victor Boiviee1d60b02021-04-06 14:39:39184if (rtc_include_tests) {
185 rtc_source_set("mock_callbacks") {
186 testonly = true
187 sources = [ "mock_dcsctp_socket_callbacks.h" ]
Mirko Bonadeib7854e42021-05-03 12:39:25188 deps = [
189 "../../../api:array_view",
Henrik Boströmb951dc62022-01-26 17:38:13190 "../../../api/task_queue:task_queue",
Mirko Bonadeib7854e42021-05-03 12:39:25191 "../../../rtc_base:logging",
Florent Castelli71337f32022-04-14 10:41:26192 "../../../rtc_base:random",
Mirko Bonadeib7854e42021-05-03 12:39:25193 "../../../test:test_support",
194 "../public:socket",
195 "../public:types",
196 "../timer",
197 ]
198 absl_deps = [
199 "//third_party/abseil-cpp/absl/strings",
200 "//third_party/abseil-cpp/absl/types:optional",
201 ]
Victor Boiviee1d60b02021-04-06 14:39:39202 }
203
204 rtc_source_set("mock_context") {
205 testonly = true
206 sources = [ "mock_context.h" ]
207 deps = [
208 ":context",
209 ":mock_callbacks",
Mirko Bonadeib7854e42021-05-03 12:39:25210 "../../../test:test_support",
Victor Boiviee1d60b02021-04-06 14:39:39211 "../common:internal_types",
212 "../packet:sctp_packet",
213 "../public:socket",
214 "../public:types",
215 ]
Mirko Bonadeib7854e42021-05-03 12:39:25216 absl_deps = [
217 "//third_party/abseil-cpp/absl/strings",
218 "//third_party/abseil-cpp/absl/types:optional",
219 ]
Victor Boiviee1d60b02021-04-06 14:39:39220 }
Victor Boivieb9bdf642021-04-06 17:55:51221
222 rtc_library("dcsctp_socket_unittests") {
223 testonly = true
224
225 deps = [
Victor Boivieb6580cc2021-04-08 07:56:59226 ":dcsctp_socket",
Victor Boivieb9bdf642021-04-06 17:55:51227 ":heartbeat_handler",
Mirko Bonadeib7854e42021-05-03 12:39:25228 ":mock_callbacks",
229 ":mock_context",
Victor Boivieabf61882021-08-12 13:57:49230 ":packet_sender",
Victor Boivie322f9112021-04-06 18:47:11231 ":stream_reset_handler",
Victor Boivie2a3942f2023-04-06 07:11:31232 ":transmission_control_block",
Victor Boivieb9bdf642021-04-06 17:55:51233 "../../../api:array_view",
Victor Boivie82ccdd32021-05-30 19:25:03234 "../../../api:create_network_emulation_manager",
235 "../../../api:network_emulation_manager_api",
Danil Chapovalov6ba4b632022-08-17 14:51:36236 "../../../api/task_queue",
237 "../../../api/task_queue:pending_task_safety_flag",
Victor Boivie82ccdd32021-05-30 19:25:03238 "../../../api/units:time_delta",
239 "../../../call:simulated_network",
Victor Boivieb9bdf642021-04-06 17:55:51240 "../../../rtc_base:checks",
Florent Castellied4aadc2022-04-19 15:40:46241 "../../../rtc_base:copy_on_write_buffer",
Victor Boivieb9bdf642021-04-06 17:55:51242 "../../../rtc_base:gunit_helpers",
Florent Castelli0af55ba2022-04-04 13:06:30243 "../../../rtc_base:logging",
Victor Boivie82ccdd32021-05-30 19:25:03244 "../../../rtc_base:rtc_base_tests_utils",
245 "../../../rtc_base:socket_address",
Florent Castelli57aa81b2022-04-04 15:14:02246 "../../../rtc_base:stringutils",
Florent Castellidd837e22022-04-04 15:16:15247 "../../../rtc_base:timeutils",
Victor Boivieb9bdf642021-04-06 17:55:51248 "../../../test:test_support",
Sergey Sukhanov38526982021-09-20 09:35:59249 "../common:handover_testing",
Mirko Bonadeib7854e42021-05-03 12:39:25250 "../common:internal_types",
Victor Boiviea7c6de92023-08-31 17:51:21251 "../common:math",
Mirko Bonadeib7854e42021-05-03 12:39:25252 "../packet:chunk",
253 "../packet:error_cause",
254 "../packet:parameter",
255 "../packet:sctp_packet",
256 "../packet:tlv_trait",
257 "../public:socket",
258 "../public:types",
Victor Boivie813a0872021-06-20 20:57:26259 "../public:utils",
Mirko Bonadeib7854e42021-05-03 12:39:25260 "../rx:data_tracker",
261 "../rx:reassembly_queue",
262 "../testing:data_generator",
263 "../testing:testing_macros",
264 "../timer",
Victor Boivie82ccdd32021-05-30 19:25:03265 "../timer:task_queue_timeout",
Mirko Bonadeib7854e42021-05-03 12:39:25266 "../tx:mock_send_queue",
267 "../tx:retransmission_queue",
268 ]
269 absl_deps = [
Victor Boivie813a0872021-06-20 20:57:26270 "//third_party/abseil-cpp/absl/flags:flag",
Mirko Bonadeib7854e42021-05-03 12:39:25271 "//third_party/abseil-cpp/absl/memory",
272 "//third_party/abseil-cpp/absl/strings",
273 "//third_party/abseil-cpp/absl/types:optional",
Victor Boivieb9bdf642021-04-06 17:55:51274 ]
Victor Boivie322f9112021-04-06 18:47:11275 sources = [
Victor Boivie82ccdd32021-05-30 19:25:03276 "dcsctp_socket_network_test.cc",
Victor Boivieb6580cc2021-04-08 07:56:59277 "dcsctp_socket_test.cc",
Victor Boivie322f9112021-04-06 18:47:11278 "heartbeat_handler_test.cc",
Victor Boivieabf61882021-08-12 13:57:49279 "packet_sender_test.cc",
Victor Boivieb6580cc2021-04-08 07:56:59280 "state_cookie_test.cc",
Victor Boivie322f9112021-04-06 18:47:11281 "stream_reset_handler_test.cc",
Victor Boivie2a3942f2023-04-06 07:11:31282 "transmission_control_block_test.cc",
Victor Boivie322f9112021-04-06 18:47:11283 ]
Victor Boivieb9bdf642021-04-06 17:55:51284 }
Victor Boiviee1d60b02021-04-06 14:39:39285}