mediasoup 3.26.0 → 3.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/node/lib/DataConsumer.js +1 -1
- package/node/lib/Router.js +1 -1
- package/node/lib/Transport.js +15 -15
- package/node/lib/fbs/rtp-parameters/encoding-mapping.d.ts +2 -6
- package/node/lib/fbs/rtp-parameters/encoding-mapping.d.ts.map +1 -1
- package/node/lib/fbs/rtp-parameters/encoding-mapping.js +7 -19
- package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.d.ts +4 -4
- package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +2 -2
- package/node/lib/fbs/rtp-stream/bitrate-by-layer.d.ts +5 -5
- package/node/lib/fbs/rtp-stream/bitrate-by-layer.d.ts.map +1 -1
- package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +3 -3
- package/node/lib/fbs/rtp-stream/recv-stats.d.ts +5 -5
- package/node/lib/fbs/rtp-stream/recv-stats.d.ts.map +1 -1
- package/node/lib/fbs/rtp-stream/recv-stats.js +3 -3
- package/node/lib/fbs/rtp-stream/send-stats.d.ts +5 -5
- package/node/lib/fbs/rtp-stream/send-stats.d.ts.map +1 -1
- package/node/lib/fbs/rtp-stream/send-stats.js +3 -3
- package/node/lib/fbs/transport/bwe-trace-info.d.ts +23 -23
- package/node/lib/fbs/transport/bwe-trace-info.d.ts.map +1 -1
- package/node/lib/fbs/transport/bwe-trace-info.js +15 -15
- package/node/lib/fbs/transport/options.d.ts +5 -5
- package/node/lib/fbs/transport/options.js +2 -2
- package/node/lib/fbs/transport/set-max-incoming-bitrate-request.d.ts +5 -5
- package/node/lib/fbs/transport/set-max-incoming-bitrate-request.d.ts.map +1 -1
- package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +3 -3
- package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.d.ts +5 -5
- package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.d.ts.map +1 -1
- package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +3 -3
- package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.d.ts +5 -5
- package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.d.ts.map +1 -1
- package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +3 -3
- package/node/lib/fbs/transport/stats.d.ts +38 -38
- package/node/lib/fbs/transport/stats.d.ts.map +1 -1
- package/node/lib/fbs/transport/stats.js +25 -25
- package/node/lib/ortc.d.ts +0 -1
- package/node/lib/ortc.d.ts.map +1 -1
- package/node/lib/ortc.js +1 -2
- package/node/lib/rtpParametersFbsUtils.d.ts.map +1 -1
- package/node/lib/rtpParametersFbsUtils.js +2 -2
- package/package.json +9 -9
- package/worker/deps/libwebrtc/libwebrtc/call/rtp_transport_controller_send.cc +10 -10
- package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +6 -6
- package/worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/alr_detector.cc +1 -1
- package/worker/deps/libwebrtc/libwebrtc/modules/pacing/paced_sender.cc +7 -7
- package/worker/deps/libwebrtc/libwebrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h +1 -1
- package/worker/deps/libwebrtc/libwebrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc +1 -1
- package/worker/fbs/rtpParameters.fbs +1 -2
- package/worker/fbs/rtpStream.fbs +3 -3
- package/worker/fbs/transport.fbs +23 -23
- package/worker/fuzzer/include/RTC/FuzzerDtlsTransport.hpp +4 -1
- package/worker/fuzzer/src/FuzzerUtils.cpp +5 -3
- package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +8 -5
- package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +3 -3
- package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +6 -6
- package/worker/fuzzer/src/RTC/RTCP/FuzzerFeedbackRtpTransport.cpp +3 -3
- package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +2 -2
- package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +5 -5
- package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +3 -3
- package/worker/fuzzer/src/fuzzer.cpp +4 -0
- package/worker/include/Channel/ChannelNotification.hpp +3 -3
- package/worker/include/Channel/ChannelRequest.hpp +1 -1
- package/worker/include/Channel/ChannelSocket.hpp +11 -0
- package/worker/include/DepLibUV.hpp +16 -33
- package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -11
- package/worker/include/RTC/AudioLevelObserver.hpp +4 -4
- package/worker/include/RTC/BWE/AcknowledgedBitrateEstimatorInterface.hpp +55 -0
- package/worker/include/RTC/BWE/AimdRateControl.hpp +190 -0
- package/worker/include/RTC/BWE/BweTypes.hpp +211 -0
- package/worker/include/RTC/BWE/DelayBasedBwe.hpp +173 -0
- package/worker/include/RTC/BWE/FeedbackAdapter.hpp +72 -0
- package/worker/include/RTC/BWE/InterArrivalDelta.hpp +106 -0
- package/worker/include/RTC/BWE/LinkCapacityEstimator.hpp +84 -0
- package/worker/include/RTC/BWE/RobustThroughputEstimator.hpp +94 -0
- package/worker/include/RTC/BWE/SendPacketHistory.hpp +137 -0
- package/worker/include/RTC/BWE/TrendlineEstimator.hpp +101 -0
- package/worker/include/RTC/Consts.hpp +6 -6
- package/worker/include/RTC/Consumer.hpp +14 -12
- package/worker/include/RTC/DataConsumer.hpp +3 -3
- package/worker/include/RTC/DataProducer.hpp +3 -3
- package/worker/include/RTC/DtlsTransport.hpp +5 -2
- package/worker/include/RTC/ICE/IceCandidate.hpp +2 -2
- package/worker/include/RTC/ICE/IceServer.hpp +3 -3
- package/worker/include/RTC/KeyFrameRequestManager.hpp +3 -3
- package/worker/include/RTC/NEW_RTCP/packet/Packet.hpp +1 -1
- package/worker/include/RTC/NackGenerator.hpp +12 -12
- package/worker/include/RTC/PipeProducerStreamManager.hpp +3 -4
- package/worker/include/RTC/PipeTransport.hpp +18 -5
- package/worker/include/RTC/PlainTransport.hpp +18 -5
- package/worker/include/RTC/PortManager.hpp +4 -4
- package/worker/include/RTC/Producer.hpp +21 -12
- package/worker/include/RTC/ProducerStreamManager.hpp +12 -6
- package/worker/include/RTC/RTCP/Bye.hpp +2 -2
- package/worker/include/RTC/RTCP/FeedbackPsRemb.hpp +4 -4
- package/worker/include/RTC/RTCP/FeedbackRtpTmmb.hpp +3 -3
- package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +54 -39
- package/worker/include/RTC/RTCP/Packet.hpp +3 -3
- package/worker/include/RTC/RTCP/ReceiverReport.hpp +3 -3
- package/worker/include/RTC/RTCP/Sdes.hpp +2 -2
- package/worker/include/RTC/RTCP/XR.hpp +2 -2
- package/worker/include/RTC/RTCP/XrDelaySinceLastRr.hpp +1 -1
- package/worker/include/RTC/RTP/Codecs/H264.hpp +1 -1
- package/worker/include/RTC/RTP/Codecs/Opus.hpp +2 -2
- package/worker/include/RTC/RTP/Codecs/PayloadDescriptorHandler.hpp +3 -3
- package/worker/include/RTC/RTP/Codecs/VP8.hpp +2 -2
- package/worker/include/RTC/RTP/Codecs/VP9.hpp +2 -2
- package/worker/include/RTC/RTP/HeaderExtensionIds.hpp +12 -12
- package/worker/include/RTC/RTP/Packet.hpp +13 -13
- package/worker/include/RTC/RTP/ProbationGenerator.hpp +1 -1
- package/worker/include/RTC/RTP/RetransmissionBuffer.hpp +7 -7
- package/worker/include/RTC/RTP/RtpStream.hpp +37 -51
- package/worker/include/RTC/RTP/RtpStreamRecv.hpp +59 -41
- package/worker/include/RTC/RTP/RtpStreamSend.hpp +20 -14
- package/worker/include/RTC/RTP/RtxStream.hpp +12 -13
- package/worker/include/RTC/RateCalculator.hpp +50 -44
- package/worker/include/RTC/RemoteCaptureTimeEstimator.hpp +5 -4
- package/worker/include/RTC/RemoteClockOffsetEstimator.hpp +11 -11
- package/worker/include/RTC/Router.hpp +6 -0
- package/worker/include/RTC/RtcLogger.hpp +1 -1
- package/worker/include/RTC/RtpDictionaries.hpp +10 -10
- package/worker/include/RTC/SCTP/association/Association.hpp +56 -28
- package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +4 -4
- package/worker/include/RTC/SCTP/association/StateCookie.hpp +14 -14
- package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +2 -2
- package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +12 -12
- package/worker/include/RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp +4 -4
- package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +3 -3
- package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +4 -1
- package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +1 -1
- package/worker/include/RTC/SCTP/public/SctpOptions.hpp +12 -12
- package/worker/include/RTC/SCTP/public/SctpTypes.hpp +1 -1
- package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +15 -16
- package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +7 -8
- package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +20 -16
- package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +5 -6
- package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +2 -2
- package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +5 -5
- package/worker/include/RTC/SctpDictionaries.hpp +3 -3
- package/worker/include/RTC/Serializable.hpp +1 -1
- package/worker/include/RTC/SimpleProducerStreamManager.hpp +3 -4
- package/worker/include/RTC/SimulcastProducerStreamManager.hpp +6 -7
- package/worker/include/RTC/SvcProducerStreamManager.hpp +6 -5
- package/worker/include/RTC/TcpConnection.hpp +9 -3
- package/worker/include/RTC/TcpServer.hpp +3 -0
- package/worker/include/RTC/Transport.hpp +52 -45
- package/worker/include/RTC/TransportCongestionControlClient.hpp +30 -25
- package/worker/include/RTC/TransportCongestionControlServer.hpp +17 -17
- package/worker/include/RTC/TrendCalculator.hpp +5 -5
- package/worker/include/RTC/UdpSocket.hpp +11 -2
- package/worker/include/RTC/WebRtcServer.hpp +20 -5
- package/worker/include/RTC/WebRtcTransport.hpp +35 -10
- package/worker/include/Settings.hpp +4 -2
- package/worker/include/Shared.hpp +5 -20
- package/worker/include/SharedInterface.hpp +6 -28
- package/worker/include/Utils.hpp +40 -21
- package/worker/include/common.hpp +4 -0
- package/worker/include/handles/BackoffTimerHandle.hpp +4 -4
- package/worker/include/handles/BackoffTimerHandleInterface.hpp +5 -5
- package/worker/include/handles/TcpConnectionHandle.hpp +6 -6
- package/worker/include/handles/TcpServerHandle.hpp +1 -1
- package/worker/include/handles/TimerHandle.hpp +15 -9
- package/worker/include/handles/TimerHandleInterface.hpp +10 -4
- package/worker/include/handles/UdpSocketHandle.hpp +3 -3
- package/worker/include/handles/UnixStreamSocketHandle.hpp +2 -2
- package/worker/meson.build +81 -36
- package/worker/meson_options.txt +1 -0
- package/worker/mocks/include/MockShared.hpp +24 -23
- package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +51 -27
- package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +11 -11
- package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +10 -10
- package/worker/mocks/include/handles/MockTimerHandle.hpp +60 -22
- package/worker/mocks/src/MockShared.cpp +51 -5
- package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +29 -15
- package/worker/mocks/src/handles/MockTimerHandle.cpp +117 -0
- package/worker/scripts/clang-scripts.mjs +2 -2
- package/worker/src/Channel/ChannelNotification.cpp +5 -6
- package/worker/src/Channel/ChannelSocket.cpp +20 -2
- package/worker/src/DepLibUV.cpp +4 -5
- package/worker/src/RTC/ActiveSpeakerObserver.cpp +59 -47
- package/worker/src/RTC/AudioLevelObserver.cpp +7 -7
- package/worker/src/RTC/BWE/AimdRateControl.cpp +468 -0
- package/worker/src/RTC/BWE/BweTypes.cpp +61 -0
- package/worker/src/RTC/BWE/DelayBasedBwe.cpp +275 -0
- package/worker/src/RTC/BWE/FeedbackAdapter.cpp +148 -0
- package/worker/src/RTC/BWE/InterArrivalDelta.cpp +181 -0
- package/worker/src/RTC/BWE/LinkCapacityEstimator.cpp +133 -0
- package/worker/src/RTC/BWE/RobustThroughputEstimator.cpp +245 -0
- package/worker/src/RTC/BWE/SendPacketHistory.cpp +184 -0
- package/worker/src/RTC/BWE/TrendlineEstimator.cpp +233 -0
- package/worker/src/RTC/Consumer.cpp +48 -35
- package/worker/src/RTC/DataConsumer.cpp +4 -4
- package/worker/src/RTC/DataProducer.cpp +3 -3
- package/worker/src/RTC/DirectTransport.cpp +2 -2
- package/worker/src/RTC/DtlsTransport.cpp +14 -11
- package/worker/src/RTC/ICE/IceServer.cpp +2 -2
- package/worker/src/RTC/KeyFrameRequestManager.cpp +16 -12
- package/worker/src/RTC/NackGenerator.cpp +12 -12
- package/worker/src/RTC/PipeProducerStreamManager.cpp +6 -6
- package/worker/src/RTC/PipeTransport.cpp +16 -13
- package/worker/src/RTC/PlainTransport.cpp +25 -16
- package/worker/src/RTC/Producer.cpp +50 -36
- package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +13 -6
- package/worker/src/RTC/RTCP/FeedbackRtpTmmb.cpp +14 -5
- package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +76 -50
- package/worker/src/RTC/RTP/Codecs/VP8.cpp +1 -1
- package/worker/src/RTC/RTP/Codecs/VP9.cpp +4 -4
- package/worker/src/RTC/RTP/Packet.cpp +9 -10
- package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +6 -6
- package/worker/src/RTC/RTP/RtpStream.cpp +19 -19
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +146 -81
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +49 -44
- package/worker/src/RTC/RTP/RtxStream.cpp +7 -10
- package/worker/src/RTC/RateCalculator.cpp +99 -136
- package/worker/src/RTC/RemoteCaptureTimeEstimator.cpp +13 -13
- package/worker/src/RTC/RemoteClockOffsetEstimator.cpp +18 -17
- package/worker/src/RTC/Router.cpp +18 -1
- package/worker/src/RTC/RtpDictionaries/RtpEncodingParameters.cpp +5 -2
- package/worker/src/RTC/SCTP/association/Association.cpp +131 -102
- package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +4 -4
- package/worker/src/RTC/SCTP/association/Capabilities.cpp +1 -1
- package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +25 -18
- package/worker/src/RTC/SCTP/association/StateCookie.cpp +7 -6
- package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +16 -13
- package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +28 -26
- package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +0 -1
- package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +2 -2
- package/worker/src/RTC/SCTP/public/AssociationMetrics.cpp +1 -1
- package/worker/src/RTC/SCTP/public/SctpOptions.cpp +13 -13
- package/worker/src/RTC/SCTP/rx/DataTracker.cpp +1 -1
- package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +5 -5
- package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +15 -15
- package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +15 -15
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +29 -26
- package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +12 -11
- package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +4 -4
- package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +2 -2
- package/worker/src/RTC/SimpleProducerStreamManager.cpp +10 -10
- package/worker/src/RTC/SimulcastProducerStreamManager.cpp +39 -37
- package/worker/src/RTC/SvcProducerStreamManager.cpp +39 -25
- package/worker/src/RTC/TcpConnection.cpp +9 -3
- package/worker/src/RTC/TcpServer.cpp +7 -2
- package/worker/src/RTC/Transport.cpp +242 -302
- package/worker/src/RTC/TransportCongestionControlClient.cpp +78 -71
- package/worker/src/RTC/TransportCongestionControlServer.cpp +38 -40
- package/worker/src/RTC/TrendCalculator.cpp +3 -3
- package/worker/src/RTC/UdpSocket.cpp +14 -3
- package/worker/src/RTC/WebRtcServer.cpp +20 -14
- package/worker/src/RTC/WebRtcTransport.cpp +35 -30
- package/worker/src/Settings.cpp +10 -0
- package/worker/src/Shared.cpp +2 -2
- package/worker/src/Utils/Crypto.cpp +2 -2
- package/worker/src/Worker.cpp +5 -1
- package/worker/src/handles/BackoffTimerHandle.cpp +24 -11
- package/worker/src/handles/TimerHandle.cpp +74 -25
- package/worker/src/lib.cpp +6 -0
- package/worker/tasks.py +171 -44
- package/worker/test/include/RTC/BWE/helpers/LinkSimulator.hpp +117 -0
- package/worker/test/src/RTC/BWE/TestAimdRateControl.cpp +400 -0
- package/worker/test/src/RTC/BWE/TestDelayBasedBwe.cpp +568 -0
- package/worker/test/src/RTC/BWE/TestFeedbackAdapter.cpp +546 -0
- package/worker/test/src/RTC/BWE/TestInterArrivalDelta.cpp +301 -0
- package/worker/test/src/RTC/BWE/TestLinkCapacityEstimator.cpp +115 -0
- package/worker/test/src/RTC/BWE/TestRobustThroughputEstimator.cpp +433 -0
- package/worker/test/src/RTC/BWE/TestSendPacketHistory.cpp +259 -0
- package/worker/test/src/RTC/BWE/TestTrendlineEstimator.cpp +137 -0
- package/worker/test/src/RTC/BWE/helpers/LinkSimulator.cpp +171 -0
- package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +246 -208
- package/worker/test/src/RTC/RTP/TestPacket.cpp +11 -11
- package/worker/test/src/RTC/RTP/TestRetransmissionBuffer.cpp +12 -12
- package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +23 -16
- package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +13 -13
- package/worker/test/src/RTC/SCTP/association/TestAssociation.cpp +27 -22
- package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +21 -15
- package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +6 -6
- package/worker/test/src/RTC/SCTP/association/TestStreamResetHandler.cpp +17 -13
- package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +2 -2
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +23 -23
- package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +37 -37
- package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +10 -10
- package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +1 -1
- package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +93 -93
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +247 -247
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +100 -80
- package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +163 -163
- package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +76 -77
- package/worker/test/src/RTC/TestConsumer.cpp +8 -3
- package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +3 -3
- package/worker/test/src/RTC/TestNackGenerator.cpp +3 -3
- package/worker/test/src/RTC/TestPipeProducerStreamManager.cpp +5 -5
- package/worker/test/src/RTC/TestRateCalculator.cpp +110 -14
- package/worker/test/src/RTC/TestRemoteCaptureTimeEstimator.cpp +22 -17
- package/worker/test/src/RTC/TestRemoteClockOffsetEstimator.cpp +87 -85
- package/worker/test/src/RTC/TestSimpleProducerStreamManager.cpp +54 -47
- package/worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp +83 -69
- package/worker/test/src/RTC/TestSvcProducerStreamManager.cpp +76 -65
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +72 -66
- package/worker/test/src/RTC/TestTransportTuple.cpp +19 -4
- package/worker/test/src/TestDepLibUV.cpp +19 -0
- package/worker/test/src/Utils/TestTime.cpp +57 -26
- package/worker/test/src/testHelpers.cpp +1 -1
- package/worker/test/src/tests.cpp +6 -0
- package/worker/include/RTC/SenderBandwidthEstimator.hpp +0 -118
- package/worker/src/RTC/SenderBandwidthEstimator.cpp +0 -269
|
@@ -23,8 +23,8 @@ namespace
|
|
|
23
23
|
constexpr uint32_t Arwnd{ 131072 };
|
|
24
24
|
constexpr uint32_t LocalInitialTsn{ 0 };
|
|
25
25
|
constexpr uint32_t RemoteInitialTsn{ 0 };
|
|
26
|
-
constexpr
|
|
27
|
-
constexpr
|
|
26
|
+
constexpr int64_t InitialNowUs{ 10000 * 1000 };
|
|
27
|
+
constexpr int64_t RtoMs{ 250 };
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* A RTC::SCTP::StreamResetHandler under test, together with all the (real)
|
|
@@ -35,10 +35,10 @@ namespace
|
|
|
35
35
|
public:
|
|
36
36
|
TestStreamResetHandler()
|
|
37
37
|
// NOTE: The order in which these members are initialized is **critical**.
|
|
38
|
-
: shared(/*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return this->
|
|
38
|
+
: shared(/*getTimeUs*/
|
|
39
|
+
[this]() -> int64_t
|
|
40
|
+
{
|
|
41
|
+
return this->nowUs;
|
|
42
42
|
}),
|
|
43
43
|
tcbContext(this->associationListener, this->sctpOptions),
|
|
44
44
|
delayedAckTimer(this->shared.CreateBackoffTimer(
|
|
@@ -79,20 +79,24 @@ namespace
|
|
|
79
79
|
std::addressof(this->reassemblyQueue),
|
|
80
80
|
std::addressof(this->retransmissionQueue))
|
|
81
81
|
{
|
|
82
|
-
this->tcbContext.
|
|
82
|
+
this->tcbContext.WillGetCurrentRtoUsOnce(
|
|
83
83
|
[]()
|
|
84
84
|
{
|
|
85
|
-
return RtoMs;
|
|
85
|
+
return static_cast<int64_t>(RtoMs * 1000);
|
|
86
86
|
});
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
public:
|
|
90
90
|
/**
|
|
91
91
|
* Advances the simulated clock by `incrementMs`.
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* - The increment is given in milliseconds since it comes from the SCTP
|
|
95
|
+
* options and the timers, which work in milliseconds.
|
|
92
96
|
*/
|
|
93
|
-
void AdvanceTimeMs(
|
|
97
|
+
void AdvanceTimeMs(int64_t incrementMs)
|
|
94
98
|
{
|
|
95
|
-
this->
|
|
99
|
+
this->nowUs += incrementMs * 1000;
|
|
96
100
|
}
|
|
97
101
|
|
|
98
102
|
/**
|
|
@@ -116,7 +120,7 @@ namespace
|
|
|
116
120
|
{
|
|
117
121
|
public:
|
|
118
122
|
void OnBackoffTimer(
|
|
119
|
-
BackoffTimerHandleInterface* /*backoffTimer*/,
|
|
123
|
+
BackoffTimerHandleInterface* /*backoffTimer*/, int64_t& /*baseTimeoutMs*/, bool& /*stop*/) override
|
|
120
124
|
{
|
|
121
125
|
}
|
|
122
126
|
};
|
|
@@ -127,7 +131,7 @@ namespace
|
|
|
127
131
|
class RetransmissionQueueListener : public RTC::SCTP::RetransmissionQueue::Listener
|
|
128
132
|
{
|
|
129
133
|
public:
|
|
130
|
-
void
|
|
134
|
+
void OnRetransmissionQueueNewRttUs(int64_t /*rttUs*/) override
|
|
131
135
|
{
|
|
132
136
|
}
|
|
133
137
|
|
|
@@ -138,7 +142,7 @@ namespace
|
|
|
138
142
|
|
|
139
143
|
// NOTE: Public members for testing.
|
|
140
144
|
public:
|
|
141
|
-
|
|
145
|
+
int64_t nowUs{ InitialNowUs };
|
|
142
146
|
RTC::SCTP::SctpOptions sctpOptions;
|
|
143
147
|
BackoffTimerListener backoffTimerListener;
|
|
144
148
|
RetransmissionQueueListener retransmissionQueueListener;
|
|
@@ -43,10 +43,10 @@ SCENARIO("SCTP TransmissionControlBlock", "[sctp][transmissioncontrolblock]")
|
|
|
43
43
|
mocks::RTC::SCTP::MockAssociationListener associationListener;
|
|
44
44
|
RTC::SCTP::AssociationListenerDeferrer associationListenerDeferrer(
|
|
45
45
|
std::addressof(associationListener));
|
|
46
|
-
mocks::MockShared shared(/*
|
|
47
|
-
[]()
|
|
46
|
+
mocks::MockShared shared(/*getTimeUs*/
|
|
47
|
+
[]() -> int64_t
|
|
48
48
|
{
|
|
49
|
-
return DepLibUV::
|
|
49
|
+
return DepLibUV::GetTimeUs();
|
|
50
50
|
});
|
|
51
51
|
mocks::RTC::SCTP::MockSendQueue sendQueue;
|
|
52
52
|
RTC::SCTP::NegotiatedCapabilities negotiatedCapabilities;
|
|
@@ -190,7 +190,7 @@ SCENARIO("Forward Cumulative TSN Chunk (192)", "[serializable][sctp][chunk]")
|
|
|
190
190
|
{ 1111, 11110 },
|
|
191
191
|
{ 2222, 22220 },
|
|
192
192
|
{ 3333, 33330 },
|
|
193
|
-
|
|
193
|
+
});
|
|
194
194
|
|
|
195
195
|
/* Parse itself and compare. */
|
|
196
196
|
|
|
@@ -219,7 +219,7 @@ SCENARIO("Forward Cumulative TSN Chunk (192)", "[serializable][sctp][chunk]")
|
|
|
219
219
|
{ 1111, 11110 },
|
|
220
220
|
{ 2222, 22220 },
|
|
221
221
|
{ 3333, 33330 },
|
|
222
|
-
|
|
222
|
+
});
|
|
223
223
|
|
|
224
224
|
delete parsedChunk;
|
|
225
225
|
}
|
|
@@ -60,15 +60,15 @@ SCENARIO("I-Forward Cumulative TSN Chunk (194)", "[serializable][sctp][chunk]")
|
|
|
60
60
|
REQUIRE(
|
|
61
61
|
chunk->GetSkippedStreams() == std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
62
62
|
{
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
true, 4097,
|
|
64
|
+
285212689, },
|
|
65
65
|
{
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
false, 8194,
|
|
67
|
+
570425378, },
|
|
68
68
|
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
true,12291,
|
|
70
|
+
855638067, },
|
|
71
|
+
});
|
|
72
72
|
|
|
73
73
|
/* Serialize it. */
|
|
74
74
|
|
|
@@ -95,15 +95,15 @@ SCENARIO("I-Forward Cumulative TSN Chunk (194)", "[serializable][sctp][chunk]")
|
|
|
95
95
|
REQUIRE(
|
|
96
96
|
chunk->GetSkippedStreams() == std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
97
97
|
{
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
true, 4097,
|
|
99
|
+
285212689, },
|
|
100
100
|
{
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
false, 8194,
|
|
102
|
+
570425378, },
|
|
103
103
|
{
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
true,12291,
|
|
105
|
+
855638067, },
|
|
106
|
+
});
|
|
107
107
|
|
|
108
108
|
/* Clone it. */
|
|
109
109
|
|
|
@@ -132,15 +132,15 @@ SCENARIO("I-Forward Cumulative TSN Chunk (194)", "[serializable][sctp][chunk]")
|
|
|
132
132
|
REQUIRE(
|
|
133
133
|
clonedChunk->GetSkippedStreams() == std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
134
134
|
{
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
true, 4097,
|
|
136
|
+
285212689, },
|
|
137
137
|
{
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
false, 8194,
|
|
139
|
+
570425378, },
|
|
140
140
|
{
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
true,12291,
|
|
142
|
+
855638067, },
|
|
143
|
+
});
|
|
144
144
|
|
|
145
145
|
delete clonedChunk;
|
|
146
146
|
}
|
|
@@ -226,7 +226,7 @@ SCENARIO("I-Forward Cumulative TSN Chunk (194)", "[serializable][sctp][chunk]")
|
|
|
226
226
|
{ true, 1111, 11110001 },
|
|
227
227
|
{ false, 2222, 22220002 },
|
|
228
228
|
{ true, 3333, 33330003 },
|
|
229
|
-
|
|
229
|
+
});
|
|
230
230
|
|
|
231
231
|
/* Parse itself and compare. */
|
|
232
232
|
|
|
@@ -255,7 +255,7 @@ SCENARIO("I-Forward Cumulative TSN Chunk (194)", "[serializable][sctp][chunk]")
|
|
|
255
255
|
{ true, 1111, 11110001 },
|
|
256
256
|
{ false, 2222, 22220002 },
|
|
257
257
|
{ true, 3333, 33330003 },
|
|
258
|
-
|
|
258
|
+
});
|
|
259
259
|
|
|
260
260
|
delete parsedChunk;
|
|
261
261
|
}
|
|
@@ -319,7 +319,7 @@ SCENARIO("SCTP Init Chunk (1)", "[serializable][sctp][chunk]")
|
|
|
319
319
|
|
|
320
320
|
// 2345:0425:2CA1:0000:0000:0567:5673:23b5 IPv6 in network order.
|
|
321
321
|
uint8_t ipBuffer2[] = { 0x23, 0x45, 0x04, 0x25, 0x2C, 0xA1, 0x00, 0x00,
|
|
322
|
-
|
|
322
|
+
0x00, 0x00, 0x05, 0x67, 0x56, 0x73, 0x23, 0xB5 };
|
|
323
323
|
|
|
324
324
|
parameter2->SetIPv6Address(ipBuffer2);
|
|
325
325
|
parameter2->Consolidate();
|
|
@@ -184,7 +184,7 @@ SCENARIO("IPv6 Adress Parameter (6)", "[serializable][sctp][parameter]")
|
|
|
184
184
|
|
|
185
185
|
// 2345:0425:2CA1:0000:0000:0567:5673:23b5 IPv6 in network order.
|
|
186
186
|
uint8_t ipBuffer[] = { 0x23, 0x45, 0x04, 0x25, 0x2C, 0xA1, 0x00, 0x00,
|
|
187
|
-
|
|
187
|
+
0x00, 0x00, 0x05, 0x67, 0x56, 0x73, 0x23, 0xB5 };
|
|
188
188
|
|
|
189
189
|
parameter->SetIPv6Address(ipBuffer);
|
|
190
190
|
|
|
@@ -15,7 +15,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
15
15
|
/* Pure virtual methods inherited from BackoffTimerHandleInterface::Listener. */
|
|
16
16
|
public:
|
|
17
17
|
void OnBackoffTimer(
|
|
18
|
-
BackoffTimerHandleInterface* /*backoffTimer*/,
|
|
18
|
+
BackoffTimerHandleInterface* /*backoffTimer*/, int64_t& /*baseTimeoutMs*/, bool& /*stop*/) override
|
|
19
19
|
{
|
|
20
20
|
}
|
|
21
21
|
};
|
|
@@ -25,11 +25,11 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
25
25
|
constexpr uint32_t InitialTsn{ 11 };
|
|
26
26
|
|
|
27
27
|
MockBackoffTimerHandleListener backoffTimerHandleListener;
|
|
28
|
-
|
|
29
|
-
mocks::MockShared shared(/*
|
|
30
|
-
[&
|
|
28
|
+
int64_t nowUs{ 10000 * 1000 };
|
|
29
|
+
mocks::MockShared shared(/*getTimeUs*/
|
|
30
|
+
[&nowUs]() -> int64_t
|
|
31
31
|
{
|
|
32
|
-
return
|
|
32
|
+
return nowUs;
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
const std::unique_ptr<BackoffTimerHandleInterface> delayedAckTimerUniquePtr{ shared.CreateBackoffTimer(
|
|
@@ -192,7 +192,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
192
192
|
REQUIRE(
|
|
193
193
|
sackChunk1->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
194
194
|
{ 2, 4 },
|
|
195
|
-
|
|
195
|
+
});
|
|
196
196
|
|
|
197
197
|
// Fill in the hole.
|
|
198
198
|
observe({ 12, 16, 17, 18 });
|
|
@@ -231,7 +231,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
231
231
|
REQUIRE(
|
|
232
232
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
233
233
|
{ 2, 2 },
|
|
234
|
-
|
|
234
|
+
});
|
|
235
235
|
REQUIRE(sackChunk->GetDuplicateTsns().empty());
|
|
236
236
|
}
|
|
237
237
|
|
|
@@ -268,7 +268,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
268
268
|
REQUIRE(
|
|
269
269
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
270
270
|
{ 2, 2 },
|
|
271
|
-
|
|
271
|
+
});
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
SECTION("empty all acks")
|
|
@@ -392,7 +392,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
392
392
|
REQUIRE(
|
|
393
393
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
394
394
|
{ 2, 5 },
|
|
395
|
-
|
|
395
|
+
});
|
|
396
396
|
REQUIRE(sackChunk->GetDuplicateTsns() == std::vector<uint32_t>{ 13, 14 });
|
|
397
397
|
}
|
|
398
398
|
|
|
@@ -614,7 +614,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
614
614
|
REQUIRE(
|
|
615
615
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
616
616
|
{ 2, 2 },
|
|
617
|
-
|
|
617
|
+
});
|
|
618
618
|
}
|
|
619
619
|
|
|
620
620
|
SECTION("gap-ack-block adds another")
|
|
@@ -631,7 +631,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
631
631
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
632
632
|
{ 2, 2 },
|
|
633
633
|
{ 4, 4 },
|
|
634
|
-
|
|
634
|
+
});
|
|
635
635
|
}
|
|
636
636
|
|
|
637
637
|
SECTION("gap-ack-block adds duplicate")
|
|
@@ -647,7 +647,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
647
647
|
REQUIRE(
|
|
648
648
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
649
649
|
{ 2, 2 },
|
|
650
|
-
|
|
650
|
+
});
|
|
651
651
|
REQUIRE(sackChunk->GetDuplicateTsns() == std::vector<uint32_t>{ 12 });
|
|
652
652
|
}
|
|
653
653
|
|
|
@@ -664,7 +664,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
664
664
|
REQUIRE(
|
|
665
665
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
666
666
|
{ 2, 3 },
|
|
667
|
-
|
|
667
|
+
});
|
|
668
668
|
}
|
|
669
669
|
|
|
670
670
|
SECTION("gap-ack-block expands to right with other")
|
|
@@ -684,7 +684,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
684
684
|
{ 2, 2 },
|
|
685
685
|
{ 10, 11 },
|
|
686
686
|
{ 20, 20 },
|
|
687
|
-
|
|
687
|
+
});
|
|
688
688
|
}
|
|
689
689
|
|
|
690
690
|
SECTION("gap-ack-block expands to left")
|
|
@@ -700,7 +700,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
700
700
|
REQUIRE(
|
|
701
701
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
702
702
|
{ 2, 3 },
|
|
703
|
-
|
|
703
|
+
});
|
|
704
704
|
}
|
|
705
705
|
|
|
706
706
|
SECTION("gap-ack-block expands to left with other")
|
|
@@ -720,7 +720,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
720
720
|
{ 2, 2 },
|
|
721
721
|
{ 10, 11 },
|
|
722
722
|
{ 20, 20 },
|
|
723
|
-
|
|
723
|
+
});
|
|
724
724
|
}
|
|
725
725
|
|
|
726
726
|
SECTION("gap-ack-block expands to right and merges")
|
|
@@ -741,7 +741,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
741
741
|
{ 2, 2 },
|
|
742
742
|
{ 10, 12 },
|
|
743
743
|
{ 20, 20 },
|
|
744
|
-
|
|
744
|
+
});
|
|
745
745
|
}
|
|
746
746
|
|
|
747
747
|
SECTION("gap-ack-block merges many blocks into one")
|
|
@@ -769,7 +769,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
769
769
|
getGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
770
770
|
{ 12, 12 },
|
|
771
771
|
{ 20, 20 },
|
|
772
|
-
|
|
772
|
+
});
|
|
773
773
|
|
|
774
774
|
observe({ 24 });
|
|
775
775
|
|
|
@@ -778,7 +778,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
778
778
|
{ 12, 12 },
|
|
779
779
|
{ 14, 14 },
|
|
780
780
|
{ 20, 20 },
|
|
781
|
-
|
|
781
|
+
});
|
|
782
782
|
|
|
783
783
|
observe({ 28 });
|
|
784
784
|
|
|
@@ -788,7 +788,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
788
788
|
{ 14, 14 },
|
|
789
789
|
{ 18, 18 },
|
|
790
790
|
{ 20, 20 },
|
|
791
|
-
|
|
791
|
+
});
|
|
792
792
|
|
|
793
793
|
observe({ 26 });
|
|
794
794
|
|
|
@@ -799,7 +799,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
799
799
|
{ 16, 16 },
|
|
800
800
|
{ 18, 18 },
|
|
801
801
|
{ 20, 20 },
|
|
802
|
-
|
|
802
|
+
});
|
|
803
803
|
|
|
804
804
|
observe({ 29 });
|
|
805
805
|
|
|
@@ -809,7 +809,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
809
809
|
{ 14, 14 },
|
|
810
810
|
{ 16, 16 },
|
|
811
811
|
{ 18, 20 },
|
|
812
|
-
|
|
812
|
+
});
|
|
813
813
|
|
|
814
814
|
observe({ 23 });
|
|
815
815
|
|
|
@@ -818,7 +818,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
818
818
|
{ 12, 14 },
|
|
819
819
|
{ 16, 16 },
|
|
820
820
|
{ 18, 20 },
|
|
821
|
-
|
|
821
|
+
});
|
|
822
822
|
|
|
823
823
|
observe({ 27 });
|
|
824
824
|
|
|
@@ -826,7 +826,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
826
826
|
getGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
827
827
|
{ 12, 14 },
|
|
828
828
|
{ 16, 20 },
|
|
829
|
-
|
|
829
|
+
});
|
|
830
830
|
|
|
831
831
|
observe({ 25 });
|
|
832
832
|
|
|
@@ -841,7 +841,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
841
841
|
getGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
842
842
|
{ 10, 10 },
|
|
843
843
|
{ 12, 20 },
|
|
844
|
-
|
|
844
|
+
});
|
|
845
845
|
|
|
846
846
|
observe({ 32 });
|
|
847
847
|
|
|
@@ -850,7 +850,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
850
850
|
{ 10, 10 },
|
|
851
851
|
{ 12, 20 },
|
|
852
852
|
{ 22, 22 },
|
|
853
|
-
|
|
853
|
+
});
|
|
854
854
|
|
|
855
855
|
observe({ 21 });
|
|
856
856
|
|
|
@@ -858,7 +858,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
858
858
|
getGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
859
859
|
{ 10, 20 },
|
|
860
860
|
{ 22, 22 },
|
|
861
|
-
|
|
861
|
+
});
|
|
862
862
|
|
|
863
863
|
observe({ 31 });
|
|
864
864
|
|
|
@@ -884,7 +884,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
884
884
|
{ 2, 4 },
|
|
885
885
|
{ 10, 12 },
|
|
886
886
|
{ 20, 21 },
|
|
887
|
-
|
|
887
|
+
});
|
|
888
888
|
}
|
|
889
889
|
|
|
890
890
|
SECTION("gap-ack-block remove before first block")
|
|
@@ -902,7 +902,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
902
902
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
903
903
|
{ 6, 8 },
|
|
904
904
|
{ 16, 17 },
|
|
905
|
-
|
|
905
|
+
});
|
|
906
906
|
}
|
|
907
907
|
|
|
908
908
|
SECTION("gap-ack-block remove at beginning of first block")
|
|
@@ -920,7 +920,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
920
920
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
921
921
|
{ 6, 8 },
|
|
922
922
|
{ 16, 17 },
|
|
923
|
-
|
|
923
|
+
});
|
|
924
924
|
}
|
|
925
925
|
|
|
926
926
|
SECTION("gap-ack-block remove at middle of first block")
|
|
@@ -938,7 +938,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
938
938
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
939
939
|
{ 6, 8 },
|
|
940
940
|
{ 16, 17 },
|
|
941
|
-
|
|
941
|
+
});
|
|
942
942
|
}
|
|
943
943
|
|
|
944
944
|
SECTION("gap-ack-block remove at end of first block")
|
|
@@ -956,7 +956,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
956
956
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
957
957
|
{ 6, 8 },
|
|
958
958
|
{ 16, 17 },
|
|
959
|
-
|
|
959
|
+
});
|
|
960
960
|
}
|
|
961
961
|
|
|
962
962
|
SECTION("gap-ack-block remove right after first block")
|
|
@@ -974,7 +974,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
974
974
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
975
975
|
{ 2, 4 },
|
|
976
976
|
{ 12, 13 },
|
|
977
|
-
|
|
977
|
+
});
|
|
978
978
|
}
|
|
979
979
|
|
|
980
980
|
SECTION("gap-ack-block remove right before second block")
|
|
@@ -991,7 +991,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
991
991
|
REQUIRE(
|
|
992
992
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
993
993
|
{ 8, 9 },
|
|
994
|
-
|
|
994
|
+
});
|
|
995
995
|
}
|
|
996
996
|
|
|
997
997
|
SECTION("gap-ack-block remove right at start of second block")
|
|
@@ -1008,7 +1008,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
1008
1008
|
REQUIRE(
|
|
1009
1009
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
1010
1010
|
{ 8, 9 },
|
|
1011
|
-
|
|
1011
|
+
});
|
|
1012
1012
|
}
|
|
1013
1013
|
|
|
1014
1014
|
SECTION("gap-ack-block remove right at middle of second block")
|
|
@@ -1025,7 +1025,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
1025
1025
|
REQUIRE(
|
|
1026
1026
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
1027
1027
|
{ 8, 9 },
|
|
1028
|
-
|
|
1028
|
+
});
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
1031
1031
|
SECTION("gap-ack-block remove right at end of second block")
|
|
@@ -1042,7 +1042,7 @@ SCENARIO("SCTP DataTracker", "[sctp][datatracker]")
|
|
|
1042
1042
|
REQUIRE(
|
|
1043
1043
|
sackChunk->GetGapAckBlocks() == std::vector<RTC::SCTP::SackChunk::GapAckBlock>{
|
|
1044
1044
|
{ 8, 9 },
|
|
1045
|
-
|
|
1045
|
+
});
|
|
1046
1046
|
}
|
|
1047
1047
|
|
|
1048
1048
|
SECTION("gap-ack-block remove far after all blocks")
|
|
@@ -240,8 +240,8 @@ SCENARIO("SCTP InterleavedReassemblyStreams", "[sctp][interleavedreassemblystrea
|
|
|
240
240
|
getTsn(3),
|
|
241
241
|
std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
242
242
|
{ /*unordered*/ true,
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
/*streamId*/ 1,
|
|
244
|
+
/*mid*/ 0 }
|
|
245
245
|
}) == 6);
|
|
246
246
|
}
|
|
247
247
|
|
|
@@ -278,8 +278,8 @@ SCENARIO("SCTP InterleavedReassemblyStreams", "[sctp][interleavedreassemblystrea
|
|
|
278
278
|
getTsn(3),
|
|
279
279
|
std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
280
280
|
{ /*unordered*/ false,
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
/*streamId*/ 1,
|
|
282
|
+
/*mid*/ 0 }
|
|
283
283
|
}) == 6);
|
|
284
284
|
}
|
|
285
285
|
|
|
@@ -333,8 +333,8 @@ SCENARIO("SCTP InterleavedReassemblyStreams", "[sctp][interleavedreassemblystrea
|
|
|
333
333
|
getTsn(8),
|
|
334
334
|
std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
335
335
|
{ /*unordered*/ false,
|
|
336
|
-
|
|
337
|
-
|
|
336
|
+
/*streamId*/ 1,
|
|
337
|
+
/*mid*/ 2 }
|
|
338
338
|
}) == 8);
|
|
339
339
|
}
|
|
340
340
|
|
|
@@ -389,8 +389,8 @@ SCENARIO("SCTP InterleavedReassemblyStreams", "[sctp][interleavedreassemblystrea
|
|
|
389
389
|
getTsn(4),
|
|
390
390
|
std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
391
391
|
{ /*unordered*/ false,
|
|
392
|
-
|
|
393
|
-
|
|
392
|
+
/*streamId*/ 1,
|
|
393
|
+
/*mid*/ 0 }
|
|
394
394
|
}) == 8);
|
|
395
395
|
}
|
|
396
396
|
|
|
@@ -406,8 +406,8 @@ SCENARIO("SCTP InterleavedReassemblyStreams", "[sctp][interleavedreassemblystrea
|
|
|
406
406
|
getTsn(1),
|
|
407
407
|
std::vector<RTC::SCTP::AnyForwardTsnChunk::SkippedStream>{
|
|
408
408
|
{ /*unordered*/ false,
|
|
409
|
-
|
|
410
|
-
|
|
409
|
+
/*streamId*/ 1,
|
|
410
|
+
/*mid*/ 0 }
|
|
411
411
|
}) == 0);
|
|
412
412
|
|
|
413
413
|
// Receive mid=1 (next after the skipped mid=0): should be delivered immediately.
|
|
@@ -22,7 +22,7 @@ SCENARIO("SCTP ReassemblyQueue", "[sctp][reassemblyqueue]")
|
|
|
22
22
|
constexpr std::array<uint8_t, 8> MediumPayload1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
|
23
23
|
constexpr std::array<uint8_t, 8> MediumPayload2 = { 9, 10, 11, 12, 13, 14, 15, 16 };
|
|
24
24
|
constexpr std::array<uint8_t, 16> LongPayload = { 1, 2, 3, 4, 5, 6, 7, 8,
|
|
25
|
-
|
|
25
|
+
9, 10, 11, 12, 13, 14, 15, 16 };
|
|
26
26
|
|
|
27
27
|
auto flushMessages = [](RTC::SCTP::ReassemblyQueue& reassemblyQueue)
|
|
28
28
|
{
|