1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-04-18 17:24:03 +03:00
mvfst/quic/api/BUCK
Joseph Beshay c6d8f76e67 Refactor AckScheduler to use it in both PacketScheduler and PacketRebuilder
Summary: The logic for deciding which ACK type to write was duplicated in QuicPacketScheduler and QuicPacketRebuilder. This refactors the logic out into a separate QuicAckScheduler so it can be tested for correction and reused in both places.

Reviewed By: sharmafb

Differential Revision: D69933311

fbshipit-source-id: e4f45688a5d258dd2a57f9f7844407f3efad5f49
2025-02-24 12:32:50 -08:00

219 lines
5.8 KiB
Python

load("@fbcode//quic:defs.bzl", "mvfst_cpp_library")
oncall("traffic_protocols")
mvfst_cpp_library(
name = "quic_batch_writer",
srcs = [
"QuicBatchWriter.cpp",
"QuicBatchWriterFactory.cpp",
"QuicGsoBatchWriters.cpp",
],
headers = [
"QuicBatchWriter.h",
"QuicBatchWriterFactory.h",
"QuicGsoBatchWriters.h",
],
deps = [
"//quic/common:buf_accessor",
],
exported_deps = [
"//folly:network_address",
"//folly:portability",
"//folly/io:iobuf",
"//quic:constants",
"//quic/common/events:eventbase",
"//quic/common/udpsocket:quic_async_udp_socket",
"//quic/state:quic_state_machine",
],
)
mvfst_cpp_library(
name = "quic_callbacks",
srcs = [
],
headers = [
"QuicCallbacks.h",
],
deps = [
],
exported_deps = [
"//quic/codec:types",
],
)
mvfst_cpp_library(
name = "transport",
srcs = [
"QuicTransportBase.cpp",
],
headers = [
"QuicSocket.h",
"QuicTransportBase.h",
],
deps = [
":loop_detector_callback",
":quic_batch_writer",
":transport_helpers",
"//folly:chrono",
"//folly:scope_guard",
"//quic/common:time_util",
"//quic/congestion_control:pacer",
"//quic/logging:qlogger_constants",
"//quic/loss:loss",
"//quic/state:pacing_functions",
"//quic/state:simple_frame_functions",
"//quic/state:state_functions",
"//quic/state:stream_functions",
],
exported_deps = [
":transport_lite",
"//folly:exception_wrapper",
"//folly:maybe_managed_ptr",
"//folly:portability",
"//folly/io:iobuf",
"//quic:constants",
"//quic:exception",
"//quic/codec:types",
"//quic/common:network_data",
"//quic/common:optional",
"//quic/common:small_collections",
"//quic/common/events:eventbase",
"//quic/common/events:quic_timer",
"//quic/common/udpsocket:quic_async_udp_socket",
"//quic/congestion_control:bandwidth",
"//quic/congestion_control:congestion_controller_factory",
"//quic/congestion_control:copa",
"//quic/congestion_control:cubic",
"//quic/congestion_control:newreno",
"//quic/observer:socket_observer_container",
"//quic/observer:socket_observer_types",
"//quic/state:quic_connection_stats",
"//quic/state:quic_priority_queue",
"//quic/state:quic_state_machine",
"//quic/state:quic_stream_utilities",
"//quic/state:retransmission_policy",
],
)
mvfst_cpp_library(
name = "transport_lite",
srcs = [
"QuicTransportBaseLite.cpp",
],
headers = [
"QuicSocketLite.h",
"QuicTransportBaseLite.h",
],
deps = [
":loop_detector_callback",
"//quic/congestion_control:congestion_controller_factory",
"//quic/congestion_control:ecn_l4s_tracker",
"//quic/congestion_control:pacer",
"//quic/flowcontrol:flow_control",
"//quic/loss:loss",
"//quic/state:pacing_functions",
"//quic/state:stream_functions",
"//quic/state/stream:stream",
],
exported_deps = [
":quic_callbacks",
":transport_helpers",
"//folly:maybe_managed_ptr",
"//folly/io/async:async_transport_certificate",
"//quic:exception",
"//quic/codec:types",
"//quic/common:looper",
"//quic/common/udpsocket:quic_async_udp_socket",
"//quic/handshake:transport_parameters",
"//quic/state:quic_state_machine",
],
)
mvfst_cpp_library(
name = "ack_scheduler",
srcs = [
"QuicAckScheduler.cpp",
],
headers = [
"QuicAckScheduler.h",
],
exported_deps = [
"//quic:constants",
"//quic/state:quic_state_machine",
],
)
mvfst_cpp_library(
name = "transport_helpers",
srcs = [
"IoBufQuicBatch.cpp",
"QuicPacketScheduler.cpp",
"QuicTransportFunctions.cpp",
],
headers = [
"IoBufQuicBatch.h",
"QuicPacketScheduler.h",
"QuicTransportFunctions.h",
],
deps = [
"//folly/tracing:static_tracepoint",
"//quic/common:buf_accessor",
"//quic/common:socket_util",
"//quic/happyeyeballs:happyeyeballs",
"//quic/state:ack_frequency_functions",
"//quic/state:ack_handler",
"//quic/state:simple_frame_functions",
],
exported_deps = [
":ack_scheduler",
":quic_batch_writer",
"//folly:expected",
"//folly/lang:assume",
"//quic:constants",
"//quic:exception",
"//quic/client:state_and_handshake",
"//quic/codec:codec",
"//quic/codec:pktbuilder",
"//quic/codec:pktrebuilder",
"//quic/codec:types",
"//quic/common/udpsocket:quic_async_udp_socket",
"//quic/flowcontrol:flow_control",
"//quic/handshake:transport_parameters",
"//quic/state:quic_state_machine",
"//quic/state:state_functions",
"//quic/state:stats_callback",
"//quic/state:stream_functions",
],
exported_external_deps = [
"boost",
],
)
mvfst_cpp_library(
name = "loop_detector_callback",
headers = ["LoopDetectorCallback.h"],
exported_deps = [
"//quic:constants",
],
)
mvfst_cpp_library(
name = "stream_async_transport",
srcs = [
"QuicStreamAsyncTransport.cpp",
],
headers = [
"QuicStreamAsyncTransport.h",
],
deps = [
"//folly/io:iobuf",
"//quic/common/events:folly_eventbase",
],
exported_deps = [
":transport",
"//folly/io/async:async_transport",
"//quic/common/events:eventbase",
],
)