Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 1 | # 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 | |
| 9 | import("../../../webrtc.gni") |
| 10 | |
| 11 | rtc_source_set("context") { |
| 12 | sources = [ "context.h" ] |
| 13 | deps = [ |
Victor Boivie | 4397482 | 2023-10-26 14:24:30 | [diff] [blame] | 14 | "../../../api/units:time_delta", |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 15 | "../common:internal_types", |
| 16 | "../packet:sctp_packet", |
| 17 | "../public:socket", |
| 18 | "../public:types", |
| 19 | ] |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 20 | absl_deps = [ "//third_party/abseil-cpp/absl/strings" ] |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 21 | } |
| 22 | |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 23 | rtc_library("heartbeat_handler") { |
| 24 | deps = [ |
| 25 | ":context", |
| 26 | "../../../api:array_view", |
Victor Boivie | 4397482 | 2023-10-26 14:24:30 | [diff] [blame] | 27 | "../../../api/units:time_delta", |
Sergey Silkin | ebc4d3e | 2023-11-15 10:04:48 | [diff] [blame] | 28 | "../../../rtc_base:checks", |
Florent Castelli | 0af55ba | 2022-04-04 13:06:30 | [diff] [blame] | 29 | "../../../rtc_base:logging", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 30 | "../packet:bounded_io", |
| 31 | "../packet:chunk", |
| 32 | "../packet:parameter", |
| 33 | "../packet:sctp_packet", |
| 34 | "../public:socket", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 35 | "../public:types", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 36 | "../timer", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 37 | ] |
| 38 | sources = [ |
| 39 | "heartbeat_handler.cc", |
| 40 | "heartbeat_handler.h", |
| 41 | ] |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 42 | absl_deps = [ |
Victor Boivie | 600bb8c | 2021-08-12 13:43:13 | [diff] [blame] | 43 | "//third_party/abseil-cpp/absl/functional:bind_front", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 44 | "//third_party/abseil-cpp/absl/strings", |
| 45 | "//third_party/abseil-cpp/absl/types:optional", |
| 46 | ] |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 47 | } |
| 48 | |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 49 | rtc_library("stream_reset_handler") { |
| 50 | deps = [ |
| 51 | ":context", |
| 52 | "../../../api:array_view", |
Victor Boivie | 4397482 | 2023-10-26 14:24:30 | [diff] [blame] | 53 | "../../../api/units:time_delta", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 54 | "../../../rtc_base:checks", |
Florent Castelli | 0af55ba | 2022-04-04 13:06:30 | [diff] [blame] | 55 | "../../../rtc_base:logging", |
Sergey Silkin | ebc4d3e | 2023-11-15 10:04:48 | [diff] [blame] | 56 | "../../../rtc_base:stringutils", |
Victor Boivie | 3ec9e03 | 2021-08-18 13:22:42 | [diff] [blame] | 57 | "../../../rtc_base/containers:flat_set", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 58 | "../common:internal_types", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 59 | "../packet:chunk", |
| 60 | "../packet:parameter", |
| 61 | "../packet:sctp_packet", |
| 62 | "../packet:tlv_trait", |
| 63 | "../public:socket", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 64 | "../public:types", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 65 | "../rx:data_tracker", |
| 66 | "../rx:reassembly_queue", |
| 67 | "../timer", |
| 68 | "../tx:retransmission_queue", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 69 | ] |
| 70 | sources = [ |
| 71 | "stream_reset_handler.cc", |
| 72 | "stream_reset_handler.h", |
| 73 | ] |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 74 | absl_deps = [ |
Victor Boivie | 600bb8c | 2021-08-12 13:43:13 | [diff] [blame] | 75 | "//third_party/abseil-cpp/absl/functional:bind_front", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 76 | "//third_party/abseil-cpp/absl/strings", |
| 77 | "//third_party/abseil-cpp/absl/types:optional", |
| 78 | ] |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 79 | } |
| 80 | |
Victor Boivie | abf6188 | 2021-08-12 13:57:49 | [diff] [blame] | 81 | rtc_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 Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 95 | rtc_library("transmission_control_block") { |
| 96 | deps = [ |
| 97 | ":context", |
| 98 | ":heartbeat_handler", |
Victor Boivie | abf6188 | 2021-08-12 13:57:49 | [diff] [blame] | 99 | ":packet_sender", |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 100 | ":stream_reset_handler", |
| 101 | "../../../api:array_view", |
Henrik Boström | f3a381a | 2022-01-27 09:02:14 | [diff] [blame] | 102 | "../../../api/task_queue:task_queue", |
Sergey Silkin | ebc4d3e | 2023-11-15 10:04:48 | [diff] [blame] | 103 | "../../../api/units:time_delta", |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 104 | "../../../rtc_base:checks", |
Florent Castelli | 0af55ba | 2022-04-04 13:06:30 | [diff] [blame] | 105 | "../../../rtc_base:logging", |
Florent Castelli | 57aa81b | 2022-04-04 15:14:02 | [diff] [blame] | 106 | "../../../rtc_base:stringutils", |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 107 | "../common:sequence_numbers", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 108 | "../packet:chunk", |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 109 | "../packet:sctp_packet", |
| 110 | "../public:socket", |
| 111 | "../public:types", |
| 112 | "../rx:data_tracker", |
| 113 | "../rx:reassembly_queue", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 114 | "../timer", |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 115 | "../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 Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 125 | absl_deps = [ |
Victor Boivie | 600bb8c | 2021-08-12 13:43:13 | [diff] [blame] | 126 | "//third_party/abseil-cpp/absl/functional:bind_front", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 127 | "//third_party/abseil-cpp/absl/strings", |
| 128 | "//third_party/abseil-cpp/absl/types:optional", |
| 129 | ] |
Victor Boivie | 2150956 | 2021-04-07 06:57:28 | [diff] [blame] | 130 | } |
| 131 | |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 132 | rtc_library("dcsctp_socket") { |
| 133 | deps = [ |
| 134 | ":context", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 135 | ":heartbeat_handler", |
Victor Boivie | abf6188 | 2021-08-12 13:57:49 | [diff] [blame] | 136 | ":packet_sender", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 137 | ":stream_reset_handler", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 138 | ":transmission_control_block", |
| 139 | "../../../api:array_view", |
Niels Möller | 105711e | 2022-06-14 13:48:26 | [diff] [blame] | 140 | "../../../api:make_ref_counted", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 141 | "../../../api:refcountedbase", |
| 142 | "../../../api:scoped_refptr", |
Henrik Boström | b951dc6 | 2022-01-26 17:38:13 | [diff] [blame] | 143 | "../../../api/task_queue:task_queue", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 144 | "../../../rtc_base:checks", |
Florent Castelli | 0af55ba | 2022-04-04 13:06:30 | [diff] [blame] | 145 | "../../../rtc_base:logging", |
Florent Castelli | 57aa81b | 2022-04-04 15:14:02 | [diff] [blame] | 146 | "../../../rtc_base:stringutils", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 147 | "../common:internal_types", |
| 148 | "../packet:bounded_io", |
| 149 | "../packet:chunk", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 150 | "../packet:chunk_validators", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 151 | "../packet:data", |
| 152 | "../packet:error_cause", |
| 153 | "../packet:parameter", |
| 154 | "../packet:sctp_packet", |
| 155 | "../packet:tlv_trait", |
| 156 | "../public:socket", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 157 | "../public:types", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 158 | "../rx:data_tracker", |
| 159 | "../rx:reassembly_queue", |
| 160 | "../timer", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 161 | "../tx:retransmission_error_counter", |
| 162 | "../tx:retransmission_queue", |
| 163 | "../tx:retransmission_timeout", |
Victor Boivie | 2440d34 | 2021-05-20 11:47:32 | [diff] [blame] | 164 | "../tx:rr_send_queue", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 165 | "../tx:send_queue", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 166 | ] |
| 167 | sources = [ |
Victor Boivie | 0081f1c | 2021-09-28 19:18:44 | [diff] [blame] | 168 | "callback_deferrer.cc", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 169 | "callback_deferrer.h", |
| 170 | "dcsctp_socket.cc", |
| 171 | "dcsctp_socket.h", |
| 172 | "state_cookie.cc", |
| 173 | "state_cookie.h", |
| 174 | ] |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 175 | absl_deps = [ |
Victor Boivie | 600bb8c | 2021-08-12 13:43:13 | [diff] [blame] | 176 | "//third_party/abseil-cpp/absl/functional:bind_front", |
Oleh Prypin | 752436f | 2022-06-23 22:51:28 | [diff] [blame] | 177 | "//third_party/abseil-cpp/absl/memory", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 178 | "//third_party/abseil-cpp/absl/strings", |
| 179 | "//third_party/abseil-cpp/absl/types:optional", |
Daniel Collins | f418f48 | 2023-12-11 19:19:57 | [diff] [blame] | 180 | "//third_party/abseil-cpp/absl/types:variant", |
Florent Castelli | 6072275 | 2021-05-03 12:07:28 | [diff] [blame] | 181 | ] |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 182 | } |
| 183 | |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 184 | if (rtc_include_tests) { |
| 185 | rtc_source_set("mock_callbacks") { |
| 186 | testonly = true |
| 187 | sources = [ "mock_dcsctp_socket_callbacks.h" ] |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 188 | deps = [ |
| 189 | "../../../api:array_view", |
Henrik Boström | b951dc6 | 2022-01-26 17:38:13 | [diff] [blame] | 190 | "../../../api/task_queue:task_queue", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 191 | "../../../rtc_base:logging", |
Florent Castelli | 71337f3 | 2022-04-14 10:41:26 | [diff] [blame] | 192 | "../../../rtc_base:random", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 193 | "../../../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 Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 202 | } |
| 203 | |
| 204 | rtc_source_set("mock_context") { |
| 205 | testonly = true |
| 206 | sources = [ "mock_context.h" ] |
| 207 | deps = [ |
| 208 | ":context", |
| 209 | ":mock_callbacks", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 210 | "../../../test:test_support", |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 211 | "../common:internal_types", |
| 212 | "../packet:sctp_packet", |
| 213 | "../public:socket", |
| 214 | "../public:types", |
| 215 | ] |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 216 | absl_deps = [ |
| 217 | "//third_party/abseil-cpp/absl/strings", |
| 218 | "//third_party/abseil-cpp/absl/types:optional", |
| 219 | ] |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 220 | } |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 221 | |
| 222 | rtc_library("dcsctp_socket_unittests") { |
| 223 | testonly = true |
| 224 | |
| 225 | deps = [ |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 226 | ":dcsctp_socket", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 227 | ":heartbeat_handler", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 228 | ":mock_callbacks", |
| 229 | ":mock_context", |
Victor Boivie | abf6188 | 2021-08-12 13:57:49 | [diff] [blame] | 230 | ":packet_sender", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 231 | ":stream_reset_handler", |
Victor Boivie | 2a3942f | 2023-04-06 07:11:31 | [diff] [blame] | 232 | ":transmission_control_block", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 233 | "../../../api:array_view", |
Victor Boivie | 82ccdd3 | 2021-05-30 19:25:03 | [diff] [blame] | 234 | "../../../api:create_network_emulation_manager", |
| 235 | "../../../api:network_emulation_manager_api", |
Danil Chapovalov | 6ba4b63 | 2022-08-17 14:51:36 | [diff] [blame] | 236 | "../../../api/task_queue", |
| 237 | "../../../api/task_queue:pending_task_safety_flag", |
Victor Boivie | 82ccdd3 | 2021-05-30 19:25:03 | [diff] [blame] | 238 | "../../../api/units:time_delta", |
| 239 | "../../../call:simulated_network", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 240 | "../../../rtc_base:checks", |
Florent Castelli | ed4aadc | 2022-04-19 15:40:46 | [diff] [blame] | 241 | "../../../rtc_base:copy_on_write_buffer", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 242 | "../../../rtc_base:gunit_helpers", |
Florent Castelli | 0af55ba | 2022-04-04 13:06:30 | [diff] [blame] | 243 | "../../../rtc_base:logging", |
Victor Boivie | 82ccdd3 | 2021-05-30 19:25:03 | [diff] [blame] | 244 | "../../../rtc_base:rtc_base_tests_utils", |
| 245 | "../../../rtc_base:socket_address", |
Florent Castelli | 57aa81b | 2022-04-04 15:14:02 | [diff] [blame] | 246 | "../../../rtc_base:stringutils", |
Florent Castelli | dd837e2 | 2022-04-04 15:16:15 | [diff] [blame] | 247 | "../../../rtc_base:timeutils", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 248 | "../../../test:test_support", |
Sergey Sukhanov | 3852698 | 2021-09-20 09:35:59 | [diff] [blame] | 249 | "../common:handover_testing", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 250 | "../common:internal_types", |
Victor Boivie | a7c6de9 | 2023-08-31 17:51:21 | [diff] [blame] | 251 | "../common:math", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 252 | "../packet:chunk", |
| 253 | "../packet:error_cause", |
| 254 | "../packet:parameter", |
| 255 | "../packet:sctp_packet", |
| 256 | "../packet:tlv_trait", |
| 257 | "../public:socket", |
| 258 | "../public:types", |
Victor Boivie | 813a087 | 2021-06-20 20:57:26 | [diff] [blame] | 259 | "../public:utils", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 260 | "../rx:data_tracker", |
| 261 | "../rx:reassembly_queue", |
| 262 | "../testing:data_generator", |
| 263 | "../testing:testing_macros", |
| 264 | "../timer", |
Victor Boivie | 82ccdd3 | 2021-05-30 19:25:03 | [diff] [blame] | 265 | "../timer:task_queue_timeout", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 266 | "../tx:mock_send_queue", |
| 267 | "../tx:retransmission_queue", |
| 268 | ] |
| 269 | absl_deps = [ |
Victor Boivie | 813a087 | 2021-06-20 20:57:26 | [diff] [blame] | 270 | "//third_party/abseil-cpp/absl/flags:flag", |
Mirko Bonadei | b7854e4 | 2021-05-03 12:39:25 | [diff] [blame] | 271 | "//third_party/abseil-cpp/absl/memory", |
| 272 | "//third_party/abseil-cpp/absl/strings", |
| 273 | "//third_party/abseil-cpp/absl/types:optional", |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 274 | ] |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 275 | sources = [ |
Victor Boivie | 82ccdd3 | 2021-05-30 19:25:03 | [diff] [blame] | 276 | "dcsctp_socket_network_test.cc", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 277 | "dcsctp_socket_test.cc", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 278 | "heartbeat_handler_test.cc", |
Victor Boivie | abf6188 | 2021-08-12 13:57:49 | [diff] [blame] | 279 | "packet_sender_test.cc", |
Victor Boivie | b6580cc | 2021-04-08 07:56:59 | [diff] [blame] | 280 | "state_cookie_test.cc", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 281 | "stream_reset_handler_test.cc", |
Victor Boivie | 2a3942f | 2023-04-06 07:11:31 | [diff] [blame] | 282 | "transmission_control_block_test.cc", |
Victor Boivie | 322f911 | 2021-04-06 18:47:11 | [diff] [blame] | 283 | ] |
Victor Boivie | b9bdf64 | 2021-04-06 17:55:51 | [diff] [blame] | 284 | } |
Victor Boivie | e1d60b0 | 2021-04-06 14:39:39 | [diff] [blame] | 285 | } |