mediasoup 3.19.22 → 3.20.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.
Files changed (623) hide show
  1. package/node/lib/ActiveSpeakerObserver.js +34 -1
  2. package/node/lib/AudioLevelObserver.js +35 -2
  3. package/node/lib/Channel.d.ts.map +1 -1
  4. package/node/lib/Channel.js +37 -5
  5. package/node/lib/Consumer.js +39 -6
  6. package/node/lib/DataConsumer.d.ts.map +1 -1
  7. package/node/lib/DataConsumer.js +39 -5
  8. package/node/lib/DataConsumerTypes.d.ts +1 -0
  9. package/node/lib/DataConsumerTypes.d.ts.map +1 -1
  10. package/node/lib/DataProducer.js +37 -4
  11. package/node/lib/DirectTransport.js +37 -4
  12. package/node/lib/DirectTransportTypes.d.ts +7 -2
  13. package/node/lib/DirectTransportTypes.d.ts.map +1 -1
  14. package/node/lib/Logger.js +4 -1
  15. package/node/lib/PipeTransport.d.ts +3 -1
  16. package/node/lib/PipeTransport.d.ts.map +1 -1
  17. package/node/lib/PipeTransport.js +56 -5
  18. package/node/lib/PipeTransportTypes.d.ts +28 -8
  19. package/node/lib/PipeTransportTypes.d.ts.map +1 -1
  20. package/node/lib/PlainTransport.d.ts +3 -1
  21. package/node/lib/PlainTransport.d.ts.map +1 -1
  22. package/node/lib/PlainTransport.js +54 -3
  23. package/node/lib/PlainTransportTypes.d.ts +27 -7
  24. package/node/lib/PlainTransportTypes.d.ts.map +1 -1
  25. package/node/lib/Producer.js +40 -7
  26. package/node/lib/Router.d.ts +5 -5
  27. package/node/lib/Router.d.ts.map +1 -1
  28. package/node/lib/Router.js +81 -36
  29. package/node/lib/RouterTypes.d.ts +25 -3
  30. package/node/lib/RouterTypes.d.ts.map +1 -1
  31. package/node/lib/RtpObserver.js +36 -3
  32. package/node/lib/Transport.d.ts +3 -1
  33. package/node/lib/Transport.d.ts.map +1 -1
  34. package/node/lib/Transport.js +74 -22
  35. package/node/lib/TransportTypes.d.ts +2 -1
  36. package/node/lib/TransportTypes.d.ts.map +1 -1
  37. package/node/lib/WebRtcServer.js +36 -3
  38. package/node/lib/WebRtcTransport.d.ts +3 -1
  39. package/node/lib/WebRtcTransport.d.ts.map +1 -1
  40. package/node/lib/WebRtcTransport.js +55 -4
  41. package/node/lib/WebRtcTransportTypes.d.ts +27 -7
  42. package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
  43. package/node/lib/Worker.d.ts +1 -1
  44. package/node/lib/Worker.d.ts.map +1 -1
  45. package/node/lib/Worker.js +63 -31
  46. package/node/lib/WorkerTypes.d.ts +0 -4
  47. package/node/lib/WorkerTypes.d.ts.map +1 -1
  48. package/node/lib/enhancedEvents.d.ts +2 -2
  49. package/node/lib/enhancedEvents.d.ts.map +1 -1
  50. package/node/lib/enhancedEvents.js +0 -2
  51. package/node/lib/fbs/active-speaker-observer/active-speaker-observer-options.js +34 -1
  52. package/node/lib/fbs/active-speaker-observer/dominant-speaker-notification.js +34 -1
  53. package/node/lib/fbs/audio-level-observer/audio-level-observer-options.js +34 -1
  54. package/node/lib/fbs/audio-level-observer/volume.js +34 -1
  55. package/node/lib/fbs/audio-level-observer/volumes-notification.js +34 -1
  56. package/node/lib/fbs/common/string-string-array.js +34 -1
  57. package/node/lib/fbs/common/string-string.js +34 -1
  58. package/node/lib/fbs/common/string-uint8.js +34 -1
  59. package/node/lib/fbs/common/uint16-string.js +34 -1
  60. package/node/lib/fbs/common/uint32-string.js +34 -1
  61. package/node/lib/fbs/consumer/base-consumer-dump.js +34 -1
  62. package/node/lib/fbs/consumer/consumer-dump.js +34 -1
  63. package/node/lib/fbs/consumer/consumer-layers.js +34 -1
  64. package/node/lib/fbs/consumer/consumer-score.js +34 -1
  65. package/node/lib/fbs/consumer/dump-response.js +34 -1
  66. package/node/lib/fbs/consumer/enable-trace-event-request.js +34 -1
  67. package/node/lib/fbs/consumer/fir-trace-info.js +34 -1
  68. package/node/lib/fbs/consumer/get-stats-response.js +34 -1
  69. package/node/lib/fbs/consumer/key-frame-trace-info.js +34 -1
  70. package/node/lib/fbs/consumer/layers-change-notification.js +34 -1
  71. package/node/lib/fbs/consumer/pli-trace-info.js +34 -1
  72. package/node/lib/fbs/consumer/rtp-notification.js +34 -1
  73. package/node/lib/fbs/consumer/rtp-trace-info.js +34 -1
  74. package/node/lib/fbs/consumer/score-notification.js +34 -1
  75. package/node/lib/fbs/consumer/set-preferred-layers-request.js +34 -1
  76. package/node/lib/fbs/consumer/set-preferred-layers-response.js +34 -1
  77. package/node/lib/fbs/consumer/set-priority-request.js +34 -1
  78. package/node/lib/fbs/consumer/set-priority-response.js +34 -1
  79. package/node/lib/fbs/consumer/trace-notification.js +34 -1
  80. package/node/lib/fbs/data-consumer/add-subchannel-request.js +34 -1
  81. package/node/lib/fbs/data-consumer/add-subchannel-response.js +34 -1
  82. package/node/lib/fbs/data-consumer/buffered-amount-low-notification.js +34 -1
  83. package/node/lib/fbs/data-consumer/dump-response.d.ts +5 -2
  84. package/node/lib/fbs/data-consumer/dump-response.d.ts.map +1 -1
  85. package/node/lib/fbs/data-consumer/dump-response.js +60 -16
  86. package/node/lib/fbs/data-consumer/get-buffered-amount-response.js +34 -1
  87. package/node/lib/fbs/data-consumer/get-stats-response.js +34 -1
  88. package/node/lib/fbs/data-consumer/message-notification.js +34 -1
  89. package/node/lib/fbs/data-consumer/remove-subchannel-request.js +34 -1
  90. package/node/lib/fbs/data-consumer/remove-subchannel-response.js +34 -1
  91. package/node/lib/fbs/data-consumer/send-request.js +34 -1
  92. package/node/lib/fbs/data-consumer/set-buffered-amount-low-threshold-request.js +34 -1
  93. package/node/lib/fbs/data-consumer/set-subchannels-request.js +34 -1
  94. package/node/lib/fbs/data-consumer/set-subchannels-response.js +34 -1
  95. package/node/lib/fbs/data-consumer/type.d.ts +5 -0
  96. package/node/lib/fbs/data-consumer/type.d.ts.map +1 -0
  97. package/node/lib/fbs/data-consumer/type.js +10 -0
  98. package/node/lib/fbs/data-consumer.d.ts +1 -0
  99. package/node/lib/fbs/data-consumer.d.ts.map +1 -1
  100. package/node/lib/fbs/data-consumer.js +3 -1
  101. package/node/lib/fbs/data-producer/dump-response.js +34 -1
  102. package/node/lib/fbs/data-producer/get-stats-response.js +34 -1
  103. package/node/lib/fbs/data-producer/send-notification.js +34 -1
  104. package/node/lib/fbs/direct-transport/direct-transport-options.js +34 -1
  105. package/node/lib/fbs/direct-transport/dump-response.js +34 -1
  106. package/node/lib/fbs/direct-transport/get-stats-response.js +34 -1
  107. package/node/lib/fbs/direct-transport/rtcp-notification.js +34 -1
  108. package/node/lib/fbs/lib-uring/dump.js +34 -1
  109. package/node/lib/fbs/log/log.js +34 -1
  110. package/node/lib/fbs/message/message.js +34 -1
  111. package/node/lib/fbs/notification/body.d.ts +24 -22
  112. package/node/lib/fbs/notification/body.d.ts.map +1 -1
  113. package/node/lib/fbs/notification/body.js +24 -20
  114. package/node/lib/fbs/notification/event.d.ts +27 -26
  115. package/node/lib/fbs/notification/event.d.ts.map +1 -1
  116. package/node/lib/fbs/notification/event.js +27 -26
  117. package/node/lib/fbs/notification/notification.d.ts +3 -2
  118. package/node/lib/fbs/notification/notification.d.ts.map +1 -1
  119. package/node/lib/fbs/notification/notification.js +34 -1
  120. package/node/lib/fbs/pipe-transport/connect-request.js +34 -1
  121. package/node/lib/fbs/pipe-transport/connect-response.js +34 -1
  122. package/node/lib/fbs/pipe-transport/dump-response.js +34 -1
  123. package/node/lib/fbs/pipe-transport/get-stats-response.js +34 -1
  124. package/node/lib/fbs/pipe-transport/pipe-transport-options.js +34 -1
  125. package/node/lib/fbs/plain-transport/connect-request.js +34 -1
  126. package/node/lib/fbs/plain-transport/connect-response.js +34 -1
  127. package/node/lib/fbs/plain-transport/dump-response.js +34 -1
  128. package/node/lib/fbs/plain-transport/get-stats-response.js +34 -1
  129. package/node/lib/fbs/plain-transport/plain-transport-options.js +34 -1
  130. package/node/lib/fbs/plain-transport/rtcp-tuple-notification.js +34 -1
  131. package/node/lib/fbs/plain-transport/tuple-notification.js +34 -1
  132. package/node/lib/fbs/producer/dump-response.js +34 -1
  133. package/node/lib/fbs/producer/enable-trace-event-request.js +34 -1
  134. package/node/lib/fbs/producer/fir-trace-info.js +34 -1
  135. package/node/lib/fbs/producer/get-stats-response.js +34 -1
  136. package/node/lib/fbs/producer/key-frame-trace-info.js +34 -1
  137. package/node/lib/fbs/producer/pli-trace-info.js +34 -1
  138. package/node/lib/fbs/producer/rtp-trace-info.js +34 -1
  139. package/node/lib/fbs/producer/score-notification.js +34 -1
  140. package/node/lib/fbs/producer/score.js +34 -1
  141. package/node/lib/fbs/producer/send-notification.js +34 -1
  142. package/node/lib/fbs/producer/sr-trace-info.js +34 -1
  143. package/node/lib/fbs/producer/trace-notification.js +34 -1
  144. package/node/lib/fbs/producer/video-orientation-change-notification.js +34 -1
  145. package/node/lib/fbs/request/request.js +34 -1
  146. package/node/lib/fbs/response/response.js +34 -1
  147. package/node/lib/fbs/router/close-rtp-observer-request.js +34 -1
  148. package/node/lib/fbs/router/close-transport-request.js +34 -1
  149. package/node/lib/fbs/router/create-active-speaker-observer-request.js +34 -1
  150. package/node/lib/fbs/router/create-audio-level-observer-request.js +34 -1
  151. package/node/lib/fbs/router/create-direct-transport-request.js +34 -1
  152. package/node/lib/fbs/router/create-pipe-transport-request.js +34 -1
  153. package/node/lib/fbs/router/create-plain-transport-request.js +34 -1
  154. package/node/lib/fbs/router/create-web-rtc-transport-request.js +34 -1
  155. package/node/lib/fbs/router/dump-response.js +34 -1
  156. package/node/lib/fbs/rtp-observer/add-producer-request.js +34 -1
  157. package/node/lib/fbs/rtp-observer/remove-producer-request.js +34 -1
  158. package/node/lib/fbs/rtp-packet/dump.js +34 -1
  159. package/node/lib/fbs/rtp-parameters/boolean.js +34 -1
  160. package/node/lib/fbs/rtp-parameters/codec-mapping.js +34 -1
  161. package/node/lib/fbs/rtp-parameters/double.js +34 -1
  162. package/node/lib/fbs/rtp-parameters/encoding-mapping.js +34 -1
  163. package/node/lib/fbs/rtp-parameters/integer32-array.js +34 -1
  164. package/node/lib/fbs/rtp-parameters/integer32.js +34 -1
  165. package/node/lib/fbs/rtp-parameters/parameter.js +34 -1
  166. package/node/lib/fbs/rtp-parameters/rtcp-feedback.js +34 -1
  167. package/node/lib/fbs/rtp-parameters/rtcp-parameters.js +34 -1
  168. package/node/lib/fbs/rtp-parameters/rtp-codec-parameters.js +34 -1
  169. package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +34 -1
  170. package/node/lib/fbs/rtp-parameters/rtp-header-extension-parameters.js +34 -1
  171. package/node/lib/fbs/rtp-parameters/rtp-mapping.js +34 -1
  172. package/node/lib/fbs/rtp-parameters/rtp-parameters.js +34 -1
  173. package/node/lib/fbs/rtp-parameters/rtx.js +34 -1
  174. package/node/lib/fbs/rtp-parameters/string.js +34 -1
  175. package/node/lib/fbs/rtp-stream/base-stats.js +34 -1
  176. package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +34 -1
  177. package/node/lib/fbs/rtp-stream/dump.js +34 -1
  178. package/node/lib/fbs/rtp-stream/params.js +34 -1
  179. package/node/lib/fbs/rtp-stream/recv-stats.js +34 -1
  180. package/node/lib/fbs/rtp-stream/send-stats.js +34 -1
  181. package/node/lib/fbs/rtp-stream/stats.js +34 -1
  182. package/node/lib/fbs/rtx-stream/params.js +34 -1
  183. package/node/lib/fbs/rtx-stream/rtx-dump.js +34 -1
  184. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts +24 -0
  185. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts.map +1 -0
  186. package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.js +102 -0
  187. package/node/lib/fbs/sctp-association.d.ts +1 -0
  188. package/node/lib/fbs/sctp-association.d.ts.map +1 -1
  189. package/node/lib/fbs/sctp-association.js +4 -1
  190. package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +34 -1
  191. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts +14 -14
  192. package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts.map +1 -1
  193. package/node/lib/fbs/sctp-parameters/sctp-parameters.js +73 -40
  194. package/node/lib/fbs/sctp-parameters/sctp-stream-parameters.js +34 -1
  195. package/node/lib/fbs/sctp-parameters.d.ts +0 -1
  196. package/node/lib/fbs/sctp-parameters.d.ts.map +1 -1
  197. package/node/lib/fbs/sctp-parameters.js +1 -4
  198. package/node/lib/fbs/srtp-parameters/srtp-parameters.js +34 -1
  199. package/node/lib/fbs/transport/bwe-trace-info.js +34 -1
  200. package/node/lib/fbs/transport/close-consumer-request.js +34 -1
  201. package/node/lib/fbs/transport/close-data-consumer-request.js +34 -1
  202. package/node/lib/fbs/transport/close-data-producer-request.js +34 -1
  203. package/node/lib/fbs/transport/close-producer-request.js +34 -1
  204. package/node/lib/fbs/transport/consume-data-request.d.ts +1 -1
  205. package/node/lib/fbs/transport/consume-data-request.js +35 -2
  206. package/node/lib/fbs/transport/consume-request.js +34 -1
  207. package/node/lib/fbs/transport/consume-response.js +34 -1
  208. package/node/lib/fbs/transport/dump.d.ts +7 -4
  209. package/node/lib/fbs/transport/dump.d.ts.map +1 -1
  210. package/node/lib/fbs/transport/dump.js +66 -22
  211. package/node/lib/fbs/transport/enable-trace-event-request.js +34 -1
  212. package/node/lib/fbs/transport/listen-info.js +34 -1
  213. package/node/lib/fbs/transport/options.d.ts +14 -14
  214. package/node/lib/fbs/transport/options.d.ts.map +1 -1
  215. package/node/lib/fbs/transport/options.js +92 -51
  216. package/node/lib/fbs/transport/port-range.js +34 -1
  217. package/node/lib/fbs/transport/produce-data-request.js +34 -1
  218. package/node/lib/fbs/transport/produce-request.js +34 -1
  219. package/node/lib/fbs/transport/produce-response.js +34 -1
  220. package/node/lib/fbs/transport/recv-rtp-header-extensions.js +34 -1
  221. package/node/lib/fbs/transport/restart-ice-response.js +34 -1
  222. package/node/lib/fbs/transport/rtp-listener.js +34 -1
  223. package/node/lib/fbs/transport/sctp-listener.js +34 -1
  224. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts +22 -0
  225. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts.map +1 -0
  226. package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.js +93 -0
  227. package/node/lib/fbs/transport/sctp-state-change-notification.js +34 -1
  228. package/node/lib/fbs/transport/send-rtcp-notification.js +34 -1
  229. package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +34 -1
  230. package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +34 -1
  231. package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +34 -1
  232. package/node/lib/fbs/transport/socket-flags.js +34 -1
  233. package/node/lib/fbs/transport/stats.js +34 -1
  234. package/node/lib/fbs/transport/trace-notification.js +34 -1
  235. package/node/lib/fbs/transport/tuple.js +34 -1
  236. package/node/lib/fbs/transport.d.ts +1 -0
  237. package/node/lib/fbs/transport.d.ts.map +1 -1
  238. package/node/lib/fbs/transport.js +5 -2
  239. package/node/lib/fbs/web-rtc-server/dump-response.js +34 -1
  240. package/node/lib/fbs/web-rtc-server/ice-user-name-fragment.js +34 -1
  241. package/node/lib/fbs/web-rtc-server/ip-port.js +34 -1
  242. package/node/lib/fbs/web-rtc-server/tuple-hash.js +34 -1
  243. package/node/lib/fbs/web-rtc-transport/connect-request.js +34 -1
  244. package/node/lib/fbs/web-rtc-transport/connect-response.js +34 -1
  245. package/node/lib/fbs/web-rtc-transport/dtls-parameters.js +34 -1
  246. package/node/lib/fbs/web-rtc-transport/dtls-state-change-notification.js +34 -1
  247. package/node/lib/fbs/web-rtc-transport/dump-response.js +34 -1
  248. package/node/lib/fbs/web-rtc-transport/fingerprint.js +34 -1
  249. package/node/lib/fbs/web-rtc-transport/get-stats-response.js +34 -1
  250. package/node/lib/fbs/web-rtc-transport/ice-candidate.js +34 -1
  251. package/node/lib/fbs/web-rtc-transport/ice-parameters.js +34 -1
  252. package/node/lib/fbs/web-rtc-transport/ice-selected-tuple-change-notification.js +34 -1
  253. package/node/lib/fbs/web-rtc-transport/ice-state-change-notification.js +34 -1
  254. package/node/lib/fbs/web-rtc-transport/listen-individual.js +34 -1
  255. package/node/lib/fbs/web-rtc-transport/listen-server.js +34 -1
  256. package/node/lib/fbs/web-rtc-transport/web-rtc-transport-options.js +34 -1
  257. package/node/lib/fbs/worker/channel-message-handlers.js +34 -1
  258. package/node/lib/fbs/worker/close-router-request.js +34 -1
  259. package/node/lib/fbs/worker/close-web-rtc-server-request.js +34 -1
  260. package/node/lib/fbs/worker/create-router-request.js +34 -1
  261. package/node/lib/fbs/worker/create-web-rtc-server-request.js +34 -1
  262. package/node/lib/fbs/worker/dump-response.js +34 -1
  263. package/node/lib/fbs/worker/resource-usage-response.js +34 -1
  264. package/node/lib/fbs/worker/update-settings-request.js +34 -1
  265. package/node/lib/index.d.ts +1 -1
  266. package/node/lib/index.d.ts.map +1 -1
  267. package/node/lib/index.js +37 -5
  268. package/node/lib/ortc.js +36 -3
  269. package/node/lib/rtpParametersFbsUtils.js +34 -1
  270. package/node/lib/rtpStreamStatsFbsUtils.js +35 -2
  271. package/node/lib/sctpParametersFbsUtils.d.ts +2 -2
  272. package/node/lib/sctpParametersFbsUtils.d.ts.map +1 -1
  273. package/node/lib/sctpParametersFbsUtils.js +44 -7
  274. package/node/lib/sctpParametersTypes.d.ts +10 -46
  275. package/node/lib/sctpParametersTypes.d.ts.map +1 -1
  276. package/node/lib/srtpParametersFbsUtils.js +34 -1
  277. package/node/lib/test/test-ActiveSpeakerObserver.js +35 -2
  278. package/node/lib/test/test-AudioLevelObserver.js +35 -2
  279. package/node/lib/test/test-Consumer.js +37 -4
  280. package/node/lib/test/test-DataConsumer.js +35 -2
  281. package/node/lib/test/test-DataProducer.js +35 -2
  282. package/node/lib/test/test-DirectTransport.js +36 -8
  283. package/node/lib/test/test-PipeTransport.js +35 -2
  284. package/node/lib/test/test-PlainTransport.js +45 -12
  285. package/node/lib/test/test-Producer.js +37 -4
  286. package/node/lib/test/test-Router.js +35 -2
  287. package/node/lib/test/test-WebRtcServer.js +34 -1
  288. package/node/lib/test/test-WebRtcTransport.js +51 -22
  289. package/node/lib/test/test-Worker.js +37 -4
  290. package/node/lib/test/test-mediasoup.js +36 -3
  291. package/node/lib/test/test-multiopus.js +35 -2
  292. package/node/lib/test/test-ortc.js +34 -1
  293. package/node/lib/test/test-werift-sctp.js +39 -5
  294. package/npm-scripts.mjs +2 -2
  295. package/package.json +11 -11
  296. package/worker/deps/libwebrtc/LICENSE +5 -0
  297. package/worker/deps/libwebrtc/README.md +3 -3
  298. package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +13 -10
  299. package/worker/fbs/dataConsumer.fbs +7 -2
  300. package/worker/fbs/dataProducer.fbs +1 -0
  301. package/worker/fbs/notification.fbs +2 -0
  302. package/worker/fbs/sctpAssociation.fbs +4 -0
  303. package/worker/fbs/sctpParameters.fbs +5 -12
  304. package/worker/fbs/transport.fbs +12 -8
  305. package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +5 -1
  306. package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +2 -2
  307. package/worker/fuzzer/src/RTC/FuzzerSeqManager.cpp +1 -1
  308. package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +5 -5
  309. package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +9 -6
  310. package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +1 -1
  311. package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +6 -2
  312. package/worker/fuzzer/src/RTC/SCTP/association/FuzzerStateCookie.cpp +1 -1
  313. package/worker/fuzzer/src/RTC/SCTP/packet/FuzzerPacket.cpp +5 -2
  314. package/worker/fuzzer/src/fuzzer.cpp +3 -10
  315. package/worker/include/Channel/ChannelRequest.hpp +1 -1
  316. package/worker/include/DepLibUV.hpp +1 -1
  317. package/worker/include/DepLibUring.hpp +3 -3
  318. package/worker/include/Logger.hpp +4 -4
  319. package/worker/include/MediaSoupErrors.hpp +1 -1
  320. package/worker/include/RTC/ActiveSpeakerObserver.hpp +6 -4
  321. package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
  322. package/worker/include/RTC/Consumer.hpp +1 -1
  323. package/worker/include/RTC/DataConsumer.hpp +11 -15
  324. package/worker/include/RTC/DataProducer.hpp +4 -7
  325. package/worker/include/RTC/DirectTransport.hpp +3 -5
  326. package/worker/include/RTC/DtlsTransport.hpp +7 -7
  327. package/worker/include/RTC/ICE/IceServer.hpp +2 -2
  328. package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
  329. package/worker/include/RTC/KeyFrameRequestManager.hpp +1 -1
  330. package/worker/include/RTC/NackGenerator.hpp +3 -2
  331. package/worker/include/RTC/PipeTransport.hpp +3 -5
  332. package/worker/include/RTC/PlainTransport.hpp +3 -5
  333. package/worker/include/RTC/PortManager.hpp +1 -1
  334. package/worker/include/RTC/Producer.hpp +1 -1
  335. package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
  336. package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
  337. package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
  338. package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
  339. package/worker/include/RTC/RTP/Packet.hpp +2 -2
  340. package/worker/include/RTC/RTP/RtpStream.hpp +11 -12
  341. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +3 -2
  342. package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
  343. package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
  344. package/worker/include/RTC/RateCalculator.hpp +5 -2
  345. package/worker/include/RTC/Router.hpp +5 -6
  346. package/worker/include/RTC/RtpObserver.hpp +1 -1
  347. package/worker/include/RTC/SCTP/association/Association.hpp +46 -15
  348. package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
  349. package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +12 -11
  350. package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
  351. package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
  352. package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +26 -26
  353. package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +58 -48
  354. package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +11 -6
  355. package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
  356. package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
  357. package/worker/include/RTC/SCTP/packet/UserData.hpp +39 -31
  358. package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
  359. package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
  360. package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
  361. package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
  362. package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
  363. package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
  364. package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
  365. package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
  366. package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
  367. package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
  368. package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
  369. package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
  370. package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
  371. package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
  372. package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
  373. package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
  374. package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
  375. package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
  376. package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
  377. package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
  378. package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
  379. package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
  380. package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
  381. package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
  382. package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
  383. package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
  384. package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
  385. package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
  386. package/worker/include/RTC/SCTP/public/SctpOptions.hpp +29 -21
  387. package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
  388. package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
  389. package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
  390. package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
  391. package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
  392. package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
  393. package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +48 -57
  394. package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
  395. package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +36 -43
  396. package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +6 -6
  397. package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
  398. package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
  399. package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
  400. package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
  401. package/worker/include/RTC/Serializable.hpp +3 -3
  402. package/worker/include/RTC/TcpServer.hpp +2 -2
  403. package/worker/include/RTC/Transport.hpp +59 -80
  404. package/worker/include/RTC/TransportCongestionControlClient.hpp +2 -2
  405. package/worker/include/RTC/TransportCongestionControlServer.hpp +2 -2
  406. package/worker/include/RTC/TransportTuple.hpp +1 -1
  407. package/worker/include/RTC/UdpSocket.hpp +1 -1
  408. package/worker/include/RTC/WebRtcServer.hpp +1 -1
  409. package/worker/include/RTC/WebRtcTransport.hpp +3 -5
  410. package/worker/include/Settings.hpp +2 -3
  411. package/worker/include/Shared.hpp +31 -7
  412. package/worker/include/SharedInterface.hpp +37 -4
  413. package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
  414. package/worker/include/Utils.hpp +4 -4
  415. package/worker/include/Worker.hpp +4 -4
  416. package/worker/include/common.hpp +12 -12
  417. package/worker/include/handles/BackoffTimerHandle.hpp +8 -9
  418. package/worker/include/handles/BackoffTimerHandleInterface.hpp +10 -3
  419. package/worker/include/handles/TimerHandle.hpp +0 -7
  420. package/worker/meson.build +33 -34
  421. package/worker/mocks/include/MockShared.hpp +56 -9
  422. package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
  423. package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
  424. package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
  425. package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
  426. package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
  427. package/worker/mocks/include/mockTypes.hpp +15 -0
  428. package/worker/mocks/src/MockShared.cpp +30 -10
  429. package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
  430. package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
  431. package/worker/scripts/clang-scripts.mjs +1 -0
  432. package/worker/scripts/package-lock.json +6 -7
  433. package/worker/src/Channel/ChannelSocket.cpp +2 -3
  434. package/worker/src/DepLibUV.cpp +1 -1
  435. package/worker/src/DepLibUring.cpp +3 -1
  436. package/worker/src/Logger.cpp +1 -1
  437. package/worker/src/MediaSoupErrors.cpp +2 -0
  438. package/worker/src/RTC/ActiveSpeakerObserver.cpp +7 -7
  439. package/worker/src/RTC/Consumer.cpp +5 -6
  440. package/worker/src/RTC/DataConsumer.cpp +54 -64
  441. package/worker/src/RTC/DataProducer.cpp +13 -8
  442. package/worker/src/RTC/DirectTransport.cpp +7 -6
  443. package/worker/src/RTC/ICE/IceServer.cpp +2 -2
  444. package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
  445. package/worker/src/RTC/NackGenerator.cpp +3 -3
  446. package/worker/src/RTC/PipeConsumer.cpp +1 -1
  447. package/worker/src/RTC/PipeTransport.cpp +6 -19
  448. package/worker/src/RTC/PlainTransport.cpp +6 -19
  449. package/worker/src/RTC/Producer.cpp +10 -11
  450. package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
  451. package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
  452. package/worker/src/RTC/RTCP/XR.cpp +1 -1
  453. package/worker/src/RTC/RTP/Packet.cpp +3 -1
  454. package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
  455. package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
  456. package/worker/src/RTC/RTP/RtpStream.cpp +9 -9
  457. package/worker/src/RTC/RTP/RtpStreamRecv.cpp +11 -10
  458. package/worker/src/RTC/RTP/RtpStreamSend.cpp +7 -7
  459. package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
  460. package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
  461. package/worker/src/RTC/RateCalculator.cpp +1 -2
  462. package/worker/src/RTC/Router.cpp +58 -35
  463. package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
  464. package/worker/src/RTC/SCTP/LICENSE +44 -0
  465. package/worker/src/RTC/SCTP/association/Association.cpp +348 -322
  466. package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
  467. package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +26 -28
  468. package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
  469. package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +71 -56
  470. package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +176 -66
  471. package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
  472. package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
  473. package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
  474. package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
  475. package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
  476. package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
  477. package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
  478. package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
  479. package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
  480. package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
  481. package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
  482. package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
  483. package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
  484. package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
  485. package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
  486. package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
  487. package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
  488. package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +81 -74
  489. package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +85 -98
  490. package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +1 -1
  491. package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
  492. package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
  493. package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
  494. package/worker/src/RTC/SimpleConsumer.cpp +3 -4
  495. package/worker/src/RTC/SimulcastConsumer.cpp +5 -6
  496. package/worker/src/RTC/SrtpSession.cpp +1 -1
  497. package/worker/src/RTC/SvcConsumer.cpp +5 -6
  498. package/worker/src/RTC/TcpConnection.cpp +1 -1
  499. package/worker/src/RTC/Transport.cpp +475 -551
  500. package/worker/src/RTC/TransportCongestionControlClient.cpp +5 -6
  501. package/worker/src/RTC/TransportCongestionControlServer.cpp +1 -2
  502. package/worker/src/RTC/WebRtcServer.cpp +1 -1
  503. package/worker/src/RTC/WebRtcTransport.cpp +5 -13
  504. package/worker/src/Settings.cpp +9 -28
  505. package/worker/src/Shared.cpp +3 -3
  506. package/worker/src/Utils/Crypto.cpp +1 -1
  507. package/worker/src/Utils/String.cpp +1 -1
  508. package/worker/src/Worker.cpp +10 -26
  509. package/worker/src/handles/BackoffTimerHandle.cpp +24 -6
  510. package/worker/src/handles/UdpSocketHandle.cpp +1 -1
  511. package/worker/src/lib.cpp +5 -17
  512. package/worker/subprojects/catch2.wrap +6 -6
  513. package/worker/test/include/RTC/ICE/iceCommon.hpp +7 -7
  514. package/worker/test/include/RTC/RTP/rtpCommon.hpp +6 -6
  515. package/worker/test/include/RTC/SCTP/sctpCommon.hpp +10 -10
  516. package/worker/test/include/catch2Macros.hpp +31 -0
  517. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
  518. package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
  519. package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
  520. package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
  521. package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
  522. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +6 -6
  523. package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +6 -2
  524. package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
  525. package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
  526. package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
  527. package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
  528. package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
  529. package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
  530. package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
  531. package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
  532. package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
  533. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
  534. package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
  535. package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
  536. package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
  537. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
  538. package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
  539. package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
  540. package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
  541. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
  542. package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
  543. package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
  544. package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
  545. package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
  546. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
  547. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
  548. package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
  549. package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
  550. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
  551. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
  552. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
  553. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
  554. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
  555. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
  556. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
  557. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
  558. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
  559. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
  560. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
  561. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
  562. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
  563. package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
  564. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
  565. package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
  566. package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
  567. package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
  568. package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
  569. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
  570. package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
  571. package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
  572. package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
  573. package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
  574. package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
  575. package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
  576. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
  577. package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
  578. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
  579. package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
  580. package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
  581. package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
  582. package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
  583. package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
  584. package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
  585. package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
  586. package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +475 -423
  587. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
  588. package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
  589. package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
  590. package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
  591. package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +9 -27
  592. package/worker/test/src/RTC/TestNackGenerator.cpp +7 -8
  593. package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
  594. package/worker/test/src/RTC/TestSimpleConsumer.cpp +7 -3
  595. package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +8 -3
  596. package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
  597. package/worker/test/src/testHelpers.cpp +1 -1
  598. package/worker/test/src/tests.cpp +0 -12
  599. package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
  600. package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
  601. package/node/lib/fbs/consumer/degrade-request.js +0 -91
  602. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
  603. package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
  604. package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
  605. package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
  606. package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
  607. package/node/lib/fbs/producer/degrade-request.js +0 -91
  608. package/node/lib/fbs/worker/close-notification.d.ts +0 -18
  609. package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
  610. package/node/lib/fbs/worker/close-notification.js +0 -45
  611. package/node/lib/fbs/worker/close-request.d.ts +0 -18
  612. package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
  613. package/node/lib/fbs/worker/close-request.js +0 -45
  614. package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
  615. package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
  616. package/node/lib/fbs/worker/close-worker-notification.js +0 -45
  617. package/worker/include/DepUsrSCTP.hpp +0 -49
  618. package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -55
  619. package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
  620. package/worker/include/RTC/SctpAssociation.hpp +0 -147
  621. package/worker/src/DepUsrSCTP.cpp +0 -283
  622. package/worker/src/RTC/SctpAssociation.cpp +0 -1175
  623. package/worker/subprojects/usrsctp.wrap +0 -8
@@ -1,42 +1,89 @@
1
1
  #ifndef MS_MOCKS_MOCK_SHARED_HPP
2
2
  #define MS_MOCKS_MOCK_SHARED_HPP
3
3
 
4
- #include "SharedInterface.hpp"
5
- #include "mocks/include/Channel/MockChannelMessageRegistrator.hpp"
6
4
  #include "Channel/ChannelNotifier.hpp"
7
5
  #include "Channel/ChannelSocket.hpp"
8
- #include "handles/BackoffTimerHandleInterface.hpp"
9
- #include "handles/TimerHandleInterface.hpp"
6
+ #include "SharedInterface.hpp"
7
+ #include "mocks/include/Channel/MockChannelMessageRegistrator.hpp"
8
+ #include "mocks/include/handles/MockBackoffTimerHandle.hpp"
9
+ #include <map>
10
+ #include <string>
11
+ #include <string_view>
10
12
 
11
13
  namespace mocks
12
14
  {
13
15
  class MockShared : public SharedInterface
14
16
  {
15
17
  public:
16
- explicit MockShared();
18
+ explicit MockShared(std::function<uint64_t()> getTimeMs);
17
19
 
18
20
  ~MockShared() override = default;
19
21
 
20
22
  public:
21
- ::Channel::ChannelMessageRegistratorInterface* GetChannelMessageRegistrator() const override
23
+ ::Channel::ChannelMessageRegistratorInterface* GetChannelMessageRegistrator() override
22
24
  {
23
25
  return this->channelMessageRegistrator.get();
24
26
  }
25
27
 
26
- ::Channel::ChannelNotifier* GetChannelNotifier() const override
28
+ ::Channel::ChannelNotifier* GetChannelNotifier() override
27
29
  {
28
30
  return this->channelNotifier.get();
29
31
  }
30
32
 
31
- TimerHandleInterface* CreateTimer(TimerHandleInterface::Listener* listener) const override;
33
+ TimerHandleInterface* CreateTimer(TimerHandleInterface::Listener* listener) override;
32
34
 
33
35
  BackoffTimerHandleInterface* CreateBackoffTimer(
34
- const BackoffTimerHandleInterface::BackoffTimerHandleOptions& options) const override;
36
+ const BackoffTimerHandleInterface::BackoffTimerHandleOptions& options) override;
37
+
38
+ uint64_t GetTimeMs() override
39
+ {
40
+ return this->getTimeMs();
41
+ }
42
+
43
+ uint64_t GetTimeUs() override
44
+ {
45
+ return GetTimeMs() * 1000;
46
+ }
47
+
48
+ uint64_t GetTimeNs() override
49
+ {
50
+ return GetTimeMs() * 1000 * 1000;
51
+ }
52
+
53
+ int64_t GetTimeMsInt64() override
54
+ {
55
+ return static_cast<int64_t>(GetTimeMs());
56
+ }
57
+
58
+ int64_t GetTimeUsInt64() override
59
+ {
60
+ return static_cast<int64_t>(GetTimeUs());
61
+ }
62
+
63
+ // Methods for testing.
64
+ public:
65
+ MockBackoffTimerHandle* GetBackoffTimer(const std::string_view label) const
66
+ {
67
+ const auto it = this->backoffTimers.find(std::string(label));
68
+
69
+ if (it != this->backoffTimers.end())
70
+ {
71
+ return it->second;
72
+ }
73
+ else
74
+ {
75
+ return nullptr;
76
+ }
77
+ }
35
78
 
36
79
  private:
80
+ // Given by argument.
81
+ const std::function<uint64_t()> getTimeMs;
82
+ // Others.
37
83
  std::unique_ptr<::Channel::ChannelSocket> channelSocket;
38
84
  std::unique_ptr<mocks::Channel::MockChannelMessageRegistrator> channelMessageRegistrator;
39
85
  std::unique_ptr<::Channel::ChannelNotifier> channelNotifier;
86
+ std::map<std::string /*label*/, MockBackoffTimerHandle* /*backoffTimer*/> backoffTimers;
40
87
  };
41
88
  } // namespace mocks
42
89
 
@@ -0,0 +1,308 @@
1
+ #ifndef MS_MOCKS_RTC_SCTP_MOCK_ASSOCIATION_LISTENER_HPP
2
+ #define MS_MOCKS_RTC_SCTP_MOCK_ASSOCIATION_LISTENER_HPP
3
+
4
+ #include "RTC/SCTP/public/AssociationListenerInterface.hpp"
5
+ #include <deque>
6
+ #include <map>
7
+ #include <set>
8
+ #include <string>
9
+ #include <vector>
10
+
11
+ namespace mocks
12
+ {
13
+ namespace RTC
14
+ {
15
+ namespace SCTP
16
+ {
17
+ class MockAssociationListener : public ::RTC::SCTP::AssociationListenerInterface
18
+ {
19
+ public:
20
+ bool OnAssociationSendData(const uint8_t* data, size_t len) override
21
+ {
22
+ this->sentPackets.emplace_back(data, data + len);
23
+
24
+ return true;
25
+ }
26
+
27
+ void OnAssociationConnecting() override
28
+ {
29
+ this->connecting = true;
30
+ }
31
+
32
+ void OnAssociationConnected() override
33
+ {
34
+ this->connecting = false;
35
+ this->connected = true;
36
+ }
37
+
38
+ void OnAssociationFailed(
39
+ ::RTC::SCTP::Types::ErrorKind errorKind, std::string_view errorMessage) override
40
+ {
41
+ this->connecting = false;
42
+ this->connected = false;
43
+ this->failed = true;
44
+ this->failedErrorKind = errorKind;
45
+ this->failedErrorMessage = errorMessage;
46
+ }
47
+
48
+ void OnAssociationClosed(
49
+ ::RTC::SCTP::Types::ErrorKind errorKind, std::string_view errorMessage) override
50
+ {
51
+ this->connecting = false;
52
+ this->connected = false;
53
+ this->closed = true;
54
+ this->closedErrorKind = errorKind;
55
+ this->closedErrorMessage = errorMessage;
56
+ }
57
+
58
+ void OnAssociationRestarted() override
59
+ {
60
+ this->restarted = true;
61
+ }
62
+
63
+ void OnAssociationError(
64
+ ::RTC::SCTP::Types::ErrorKind errorKind, std::string_view errorMessage) override
65
+ {
66
+ this->connecting = false;
67
+ this->connected = false;
68
+ this->errored = true;
69
+ this->erroredErrorKind = errorKind;
70
+ this->erroredErrorMessage = errorMessage;
71
+ }
72
+
73
+ void OnAssociationMessageReceived(::RTC::SCTP::Message message) override
74
+ {
75
+ this->receivedMessages.emplace_back(std::move(message));
76
+ }
77
+
78
+ void OnAssociationStreamsResetPerformed(std::span<const uint16_t> /*outboundStreamIds*/) override
79
+ {
80
+ // TODO: Do something here for tests.
81
+ }
82
+
83
+ void OnAssociationStreamsResetFailed(
84
+ std::span<const uint16_t> /*outboundStreamIds*/, std::string_view /*errorMessage*/) override
85
+ {
86
+ // TODO: Do something here for tests.
87
+ }
88
+
89
+ void OnAssociationInboundStreamsReset(std::span<const uint16_t> /*inboundStreamIds*/) override
90
+ {
91
+ // TODO: Do something here for tests.
92
+ }
93
+
94
+ void OnAssociationStreamBufferedAmountLow(uint16_t streamId) override
95
+ {
96
+ ++this->onStreamBufferedAmountLowCalls[streamId];
97
+ }
98
+
99
+ void OnAssociationTotalBufferedAmountLow() override
100
+ {
101
+ ++this->onTotalBufferedAmountLowCalls;
102
+ }
103
+
104
+ bool OnAssociationIsTransportReadyForSctp() override
105
+ {
106
+ return this->transportReady;
107
+ }
108
+
109
+ void OnAssociationLifecycleMessageFullySent(uint64_t lifecycleId) override
110
+ {
111
+ this->onAssociationLifecycleMessageFullySentCalls.insert(lifecycleId);
112
+ }
113
+
114
+ void OnAssociationLifecycleMessageExpired(uint64_t lifecycleId, bool maybeDelivered) override
115
+ {
116
+ this->onAssociationLifecycleMessageExpiredCalls[lifecycleId] = maybeDelivered;
117
+ }
118
+
119
+ void OnAssociationLifecycleMessageDelivered(uint64_t lifecycleId) override
120
+ {
121
+ this->onAssociationLifecycleMessageDeliveredCalls.insert(lifecycleId);
122
+ }
123
+
124
+ void OnAssociationLifecycleMessageEnd(uint64_t lifecycleId) override
125
+ {
126
+ this->onAssociationLifecycleMessageEndCalls.insert(lifecycleId);
127
+ }
128
+
129
+ // Methods for testing.
130
+ public:
131
+ bool IsConnecting() const
132
+ {
133
+ return this->connecting;
134
+ }
135
+
136
+ bool IsConnected() const
137
+ {
138
+ return this->connected;
139
+ }
140
+
141
+ bool HasRestarted() const
142
+ {
143
+ return this->restarted;
144
+ }
145
+
146
+ bool HasFailed() const
147
+ {
148
+ return this->failed;
149
+ }
150
+
151
+ ::RTC::SCTP::Types::ErrorKind GetFailedErrorKind() const
152
+ {
153
+ return this->failedErrorKind;
154
+ }
155
+
156
+ const std::string& GetFailedErrorMessage() const
157
+ {
158
+ return this->failedErrorMessage;
159
+ }
160
+
161
+ bool IsClosed() const
162
+ {
163
+ return this->closed;
164
+ }
165
+
166
+ ::RTC::SCTP::Types::ErrorKind GetClosedErrorKind() const
167
+ {
168
+ return this->closedErrorKind;
169
+ }
170
+
171
+ const std::string& GetClosedErrorMessage() const
172
+ {
173
+ return this->closedErrorMessage;
174
+ }
175
+
176
+ bool HasErrored() const
177
+ {
178
+ return this->errored;
179
+ }
180
+
181
+ ::RTC::SCTP::Types::ErrorKind GetErroredErrorKind() const
182
+ {
183
+ return this->erroredErrorKind;
184
+ }
185
+
186
+ const std::string& GetErroredErrorMessage() const
187
+ {
188
+ return this->erroredErrorMessage;
189
+ }
190
+
191
+ bool HasOnStreamBufferedAmountLowBeenCalledWithStreamId(uint64_t streamId) const
192
+ {
193
+ return this->onStreamBufferedAmountLowCalls.contains(streamId);
194
+ }
195
+
196
+ size_t CountOnStreamBufferedAmountLowCallsWithStreamId(uint64_t streamId) const
197
+ {
198
+ if (!this->onStreamBufferedAmountLowCalls.contains(streamId))
199
+ {
200
+ return 0;
201
+ }
202
+
203
+ return this->onStreamBufferedAmountLowCalls.at(streamId);
204
+ }
205
+
206
+ size_t CountOnTotalBufferedAmountLowCalls() const
207
+ {
208
+ return this->onTotalBufferedAmountLowCalls;
209
+ }
210
+
211
+ bool HasSentPackets() const
212
+ {
213
+ return !this->sentPackets.empty();
214
+ }
215
+
216
+ bool HasReceivedMessages() const
217
+ {
218
+ return !this->receivedMessages.empty();
219
+ }
220
+
221
+ std::vector<uint8_t> ConsumeFirstSentPacket()
222
+ {
223
+ if (this->sentPackets.empty())
224
+ {
225
+ return {};
226
+ }
227
+
228
+ const auto packet = std::move(this->sentPackets.front());
229
+
230
+ this->sentPackets.pop_front();
231
+
232
+ return packet;
233
+ }
234
+
235
+ std::optional<::RTC::SCTP::Message> ConsumeFirstReceivedMessage()
236
+ {
237
+ if (this->receivedMessages.empty())
238
+ {
239
+ return std::nullopt;
240
+ }
241
+
242
+ auto message = std::move(this->receivedMessages.front());
243
+
244
+ this->receivedMessages.pop_front();
245
+
246
+ return message;
247
+ }
248
+
249
+ bool IsTransportReady() const
250
+ {
251
+ return this->transportReady;
252
+ }
253
+
254
+ bool HasOnAssociationLifecycleMessageFullySentBeenCalledWithLifecycleId(uint64_t lifecycleId) const
255
+ {
256
+ return this->onAssociationLifecycleMessageFullySentCalls.contains(lifecycleId);
257
+ }
258
+
259
+ bool HasOnAssociationLifecycleMessageExpiredSentBeenCalledWithLifecycleId(
260
+ uint64_t lifecycleId, bool maybeDelivered) const
261
+ {
262
+ if (!this->onAssociationLifecycleMessageExpiredCalls.contains(lifecycleId))
263
+ {
264
+ return false;
265
+ }
266
+
267
+ return this->onAssociationLifecycleMessageExpiredCalls.at(lifecycleId) == maybeDelivered;
268
+ }
269
+
270
+ bool HasOnAssociationLifecycleMessageDeliveredBeenCalledWithLifecycleId(uint64_t lifecycleId) const
271
+ {
272
+ return this->onAssociationLifecycleMessageDeliveredCalls.contains(lifecycleId);
273
+ }
274
+
275
+ bool HasOnAssociationLifecycleMessageEndBeenCalledWithLifecycleId(uint64_t lifecycleId) const
276
+ {
277
+ return this->onAssociationLifecycleMessageEndCalls.contains(lifecycleId);
278
+ }
279
+
280
+ private:
281
+ // Observable state for tests.
282
+ bool connecting{ false };
283
+ bool connected{ false };
284
+ bool restarted{ false };
285
+ bool failed{ false };
286
+ ::RTC::SCTP::Types::ErrorKind failedErrorKind;
287
+ std::string failedErrorMessage;
288
+ bool closed{ false };
289
+ ::RTC::SCTP::Types::ErrorKind closedErrorKind;
290
+ std::string closedErrorMessage;
291
+ bool errored{ false };
292
+ ::RTC::SCTP::Types::ErrorKind erroredErrorKind;
293
+ std::string erroredErrorMessage;
294
+ std::map<uint16_t /*streamId*/, size_t /*count*/> onStreamBufferedAmountLowCalls;
295
+ size_t onTotalBufferedAmountLowCalls{ 0 };
296
+ std::deque<std::vector<uint8_t>> sentPackets;
297
+ std::deque<::RTC::SCTP::Message> receivedMessages;
298
+ bool transportReady{ true };
299
+ std::set<uint64_t /*lifecycleId*/> onAssociationLifecycleMessageFullySentCalls;
300
+ std::map<uint64_t /*lifecycleId*/, bool /*maybeDelivered*/> onAssociationLifecycleMessageExpiredCalls;
301
+ std::set<uint64_t /*lifecycleId*/> onAssociationLifecycleMessageDeliveredCalls;
302
+ std::set<uint64_t /*lifecycleId*/> onAssociationLifecycleMessageEndCalls;
303
+ };
304
+ } // namespace SCTP
305
+ } // namespace RTC
306
+ } // namespace mocks
307
+
308
+ #endif
@@ -0,0 +1,183 @@
1
+ #ifndef MS_MOCKS_RTC_SCTP_MOCK_TRANSMISSION_CONTROL_BLOCK_HPP
2
+ #define MS_MOCKS_RTC_SCTP_MOCK_TRANSMISSION_CONTROL_BLOCK_HPP
3
+
4
+ #include "common.hpp"
5
+ #include "RTC/SCTP/association/TransmissionControlBlockContextInterface.hpp"
6
+ #include "RTC/SCTP/packet/Packet.hpp"
7
+ #include "RTC/SCTP/public/AssociationListenerInterface.hpp"
8
+ #include "RTC/SCTP/public/SctpOptions.hpp"
9
+ #include "mocks/include/mockTypes.hpp"
10
+ #include <queue>
11
+ #include <stdexcept>
12
+ #include <string>
13
+
14
+ namespace mocks
15
+ {
16
+ namespace RTC
17
+ {
18
+ namespace SCTP
19
+ {
20
+ class MockTransmissionControlBlockContext
21
+ : public ::RTC::SCTP::TransmissionControlBlockContextInterface
22
+ {
23
+ public:
24
+ using GetCurrentRtoMsAction = std::function<uint64_t()>;
25
+
26
+ public:
27
+ explicit MockTransmissionControlBlockContext(
28
+ ::RTC::SCTP::AssociationListenerInterface& associationListener,
29
+ const ::RTC::SCTP::SctpOptions& sctpOptions)
30
+ : associationListener(associationListener), sctpOptions(sctpOptions)
31
+ {
32
+ }
33
+
34
+ public:
35
+ bool IsAssociationEstablished() const override
36
+ {
37
+ return this->associationEstablished;
38
+ }
39
+
40
+ uint32_t GetLocalInitialTsn() const override
41
+ {
42
+ // TODO: Implement this.
43
+ return 0;
44
+ }
45
+
46
+ uint32_t GetRemoteInitialTsn() const override
47
+ {
48
+ // TODO: Implement this.
49
+ return 0;
50
+ }
51
+
52
+ void ObserveRttMs(uint64_t rttMs) override
53
+ {
54
+ this->observeRttMsCallCount++;
55
+ }
56
+
57
+ uint64_t GetCurrentRtoMs() const override
58
+ {
59
+ if (!this->getCurrentRtoMsOnceActions.empty())
60
+ {
61
+ auto action = std::move(this->getCurrentRtoMsOnceActions.front());
62
+
63
+ this->getCurrentRtoMsOnceActions.pop();
64
+
65
+ return action();
66
+ }
67
+ else
68
+ {
69
+ return 0;
70
+ }
71
+ }
72
+
73
+ bool IncrementTxErrorCounter(std::string_view /*reason*/) override
74
+ {
75
+ this->incrementTxErrorCounterCallCount++;
76
+
77
+ return false;
78
+ }
79
+
80
+ void ClearTxErrorCounter() override
81
+ {
82
+ this->incrementTxErrorCounterCallCount = 0;
83
+ }
84
+
85
+ bool HasTooManyTxErrors() const override
86
+ {
87
+ // TODO: Implement this.
88
+ return false;
89
+ }
90
+
91
+ std::unique_ptr<::RTC::SCTP::Packet> CreatePacket() const override;
92
+
93
+ bool SendPacket(::RTC::SCTP::Packet* packet) override;
94
+
95
+ // Methods for testing.
96
+ public:
97
+ void SetAssociationEstablished(bool associationEstablished)
98
+ {
99
+ this->associationEstablished = associationEstablished;
100
+ }
101
+
102
+ /**
103
+ * @remarks
104
+ * - Must be called before expecting calls to `ObserveRttMs()`.
105
+ */
106
+ MockTransmissionControlBlockContext& ExpectObserveRttMsCalledTimes(size_t times)
107
+ {
108
+ this->observeRttMsCallCount = 0;
109
+ this->expectedObserveRttMsCallCount = times;
110
+
111
+ return *this;
112
+ }
113
+
114
+ /**
115
+ * @remarks
116
+ * - Must be called before expecting calls to `IncrementTxErrorCounter()`.
117
+ */
118
+ MockTransmissionControlBlockContext& ExpectIncrementTxErrorCounterCalledTimes(size_t times)
119
+ {
120
+ this->incrementTxErrorCounterCallCount = 0;
121
+ this->expectedIncrementTxErrorCounterCallCount = times;
122
+
123
+ return *this;
124
+ }
125
+
126
+ MockTransmissionControlBlockContext& WillGetCurrentRtoMsOnce(GetCurrentRtoMsAction action)
127
+ {
128
+ this->getCurrentRtoMsOnceActions.push(std::move(action));
129
+
130
+ return *this;
131
+ }
132
+
133
+ mocks::VerificationResult VerifyExpectations() const
134
+ {
135
+ if (
136
+ this->expectedObserveRttMsCallCount.has_value() &&
137
+ this->observeRttMsCallCount != this->expectedObserveRttMsCallCount.value())
138
+ {
139
+ return { .ok = false,
140
+ .errorMessage = "ObserveRttMs() call count mismatch [expected:" +
141
+ std::to_string(this->expectedObserveRttMsCallCount.value()) +
142
+ ", got:" + std::to_string(this->observeRttMsCallCount) + "]" };
143
+ }
144
+
145
+ if (
146
+ this->expectedIncrementTxErrorCounterCallCount.has_value() &&
147
+ this->incrementTxErrorCounterCallCount !=
148
+ this->expectedIncrementTxErrorCounterCallCount.value())
149
+ {
150
+ return { .ok = false,
151
+ .errorMessage =
152
+ "IncrementTxErrorCounter() call count mismatch [expected:" +
153
+ std::to_string(this->expectedIncrementTxErrorCounterCallCount.value()) +
154
+ ", got:" + std::to_string(this->incrementTxErrorCounterCallCount) + "]" };
155
+ }
156
+
157
+ return { .ok = true, .errorMessage = "" };
158
+ }
159
+
160
+ private:
161
+ // Passed by argument.
162
+ ::RTC::SCTP::AssociationListenerInterface& associationListener;
163
+ const ::RTC::SCTP::SctpOptions sctpOptions;
164
+
165
+ // ObserveRttMs().
166
+ size_t observeRttMsCallCount{ 0 };
167
+ std::optional<size_t> expectedObserveRttMsCallCount;
168
+
169
+ // GetCurrentRtoMs().
170
+ mutable std::queue<GetCurrentRtoMsAction> getCurrentRtoMsOnceActions;
171
+
172
+ // IncrementTxErrorCounter().
173
+ size_t incrementTxErrorCounterCallCount{ 0 };
174
+ std::optional<size_t> expectedIncrementTxErrorCounterCallCount;
175
+
176
+ // Others.
177
+ bool associationEstablished{ false };
178
+ };
179
+ } // namespace SCTP
180
+ } // namespace RTC
181
+ } // namespace mocks
182
+
183
+ #endif