blob: 406593e23bd742d503f1bc0ccee88095fe31b536 [file] [log] [blame]
# 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.
import("../../../webrtc.gni")
rtc_source_set("context") {
sources = [ "context.h" ]
deps = [
"../../../api/units:time_delta",
"../common:internal_types",
"../packet:sctp_packet",
"../public:socket",
"../public:types",
]
absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
rtc_library("heartbeat_handler") {
deps = [
":context",
"../../../api:array_view",
"../../../api/units:time_delta",
"../../../rtc_base:checks",
"../../../rtc_base:logging",
"../packet:bounded_io",
"../packet:chunk",
"../packet:parameter",
"../packet:sctp_packet",
"../public:socket",
"../public:types",
"../timer",
]
sources = [
"heartbeat_handler.cc",
"heartbeat_handler.h",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("stream_reset_handler") {
deps = [
":context",
"../../../api:array_view",
"../../../api/units:time_delta",
"../../../rtc_base:checks",
"../../../rtc_base:logging",
"../../../rtc_base:stringutils",
"../../../rtc_base/containers:flat_set",
"../common:internal_types",
"../packet:chunk",
"../packet:parameter",
"../packet:sctp_packet",
"../packet:tlv_trait",
"../public:socket",
"../public:types",
"../rx:data_tracker",
"../rx:reassembly_queue",
"../timer",
"../tx:retransmission_queue",
]
sources = [
"stream_reset_handler.cc",
"stream_reset_handler.h",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("packet_sender") {
deps = [
"../packet:sctp_packet",
"../public:socket",
"../public:types",
"../timer",
]
sources = [
"packet_sender.cc",
"packet_sender.h",
]
absl_deps = []
}
rtc_library("transmission_control_block") {
deps = [
":context",
":heartbeat_handler",
":packet_sender",
":stream_reset_handler",
"../../../api:array_view",
"../../../api/task_queue:task_queue",
"../../../api/units:time_delta",
"../../../rtc_base:checks",
"../../../rtc_base:logging",
"../../../rtc_base:stringutils",
"../common:sequence_numbers",
"../packet:chunk",
"../packet:sctp_packet",
"../public:socket",
"../public:types",
"../rx:data_tracker",
"../rx:reassembly_queue",
"../timer",
"../tx:retransmission_error_counter",
"../tx:retransmission_queue",
"../tx:retransmission_timeout",
"../tx:send_queue",
]
sources = [
"capabilities.h",
"transmission_control_block.cc",
"transmission_control_block.h",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("dcsctp_socket") {
deps = [
":context",
":heartbeat_handler",
":packet_sender",
":stream_reset_handler",
":transmission_control_block",
"../../../api:array_view",
"../../../api:make_ref_counted",
"../../../api:refcountedbase",
"../../../api:scoped_refptr",
"../../../api/task_queue:task_queue",
"../../../rtc_base:checks",
"../../../rtc_base:logging",
"../../../rtc_base:stringutils",
"../common:internal_types",
"../packet:bounded_io",
"../packet:chunk",
"../packet:chunk_validators",
"../packet:data",
"../packet:error_cause",
"../packet:parameter",
"../packet:sctp_packet",
"../packet:tlv_trait",
"../public:socket",
"../public:types",
"../rx:data_tracker",
"../rx:reassembly_queue",
"../timer",
"../tx:retransmission_error_counter",
"../tx:retransmission_queue",
"../tx:retransmission_timeout",
"../tx:rr_send_queue",
"../tx:send_queue",
]
sources = [
"callback_deferrer.cc",
"callback_deferrer.h",
"dcsctp_socket.cc",
"dcsctp_socket.h",
"state_cookie.cc",
"state_cookie.h",
]
absl_deps = [
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
"//third_party/abseil-cpp/absl/types:variant",
]
}
if (rtc_include_tests) {
rtc_source_set("mock_callbacks") {
testonly = true
sources = [ "mock_dcsctp_socket_callbacks.h" ]
deps = [
"../../../api:array_view",
"../../../api/task_queue:task_queue",
"../../../rtc_base:logging",
"../../../rtc_base:random",
"../../../test:test_support",
"../public:socket",
"../public:types",
"../timer",
]
absl_deps = [
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_source_set("mock_context") {
testonly = true
sources = [ "mock_context.h" ]
deps = [
":context",
":mock_callbacks",
"../../../test:test_support",
"../common:internal_types",
"../packet:sctp_packet",
"../public:socket",
"../public:types",
]
absl_deps = [
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
rtc_library("dcsctp_socket_unittests") {
testonly = true
deps = [
":dcsctp_socket",
":heartbeat_handler",
":mock_callbacks",
":mock_context",
":packet_sender",
":stream_reset_handler",
":transmission_control_block",
"../../../api:array_view",
"../../../api:create_network_emulation_manager",
"../../../api:network_emulation_manager_api",
"../../../api/task_queue",
"../../../api/task_queue:pending_task_safety_flag",
"../../../api/units:time_delta",
"../../../call:simulated_network",
"../../../rtc_base:checks",
"../../../rtc_base:copy_on_write_buffer",
"../../../rtc_base:gunit_helpers",
"../../../rtc_base:logging",
"../../../rtc_base:rtc_base_tests_utils",
"../../../rtc_base:socket_address",
"../../../rtc_base:stringutils",
"../../../rtc_base:timeutils",
"../../../test:test_support",
"../common:handover_testing",
"../common:internal_types",
"../common:math",
"../packet:chunk",
"../packet:error_cause",
"../packet:parameter",
"../packet:sctp_packet",
"../packet:tlv_trait",
"../public:socket",
"../public:types",
"../public:utils",
"../rx:data_tracker",
"../rx:reassembly_queue",
"../testing:data_generator",
"../testing:testing_macros",
"../timer",
"../timer:task_queue_timeout",
"../tx:mock_send_queue",
"../tx:retransmission_queue",
]
absl_deps = [
"//third_party/abseil-cpp/absl/flags:flag",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
sources = [
"dcsctp_socket_network_test.cc",
"dcsctp_socket_test.cc",
"heartbeat_handler_test.cc",
"packet_sender_test.cc",
"state_cookie_test.cc",
"stream_reset_handler_test.cc",
"transmission_control_block_test.cc",
]
}
}