You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Features/Bugfix
feat: redundant mode ([Multipath] Redundant = on, Android "Redundant Mode"): send copies of live UDP streams such as SRT over more than one connection, which usually keeps them going when a connection drops for a few seconds (#388)
breaking: the dgram reinjection mode is removed; a config file that still sets Reinjection = dgram warns and falls back to off, and the library's JSON API rejects it (use redundant mode instead) (#388)
feat: Android: with Redundant Mode on, the app sends with CC = bbr, which keeps its speed on connections that lose a few packets (#408)
feat: a client can ask the server for its own scheduler (RequestServerScheduler), which the server applies when AllowClientScheduler is on, and get_status reports each client's scheduler; Android gets a "Scheduler" setting (#387, #389)
feat: PathMTU sizes QUIC packets for the underlying path, so a clean 1500-byte path gets a 1402-byte tunnel MTU (#391 by @w453y)
feat: Linux: TSO/USO reads and TCP GRO writes on the TUN device, controlled by TunOffload and TunGro (#392 by @pylaterreur, #396)
fix: fewer lost packets while a connection slows down, from congestion control and WLB fixes in the xquic fork (mp0rta/xquic#85, mp0rta/xquic#87), plus no retransmission of a DATAGRAM packet that carries an ACK_MP (mp0rta/xquic#88) (#406)
fix: CC = bbr no longer slows down on a connection whose delay varies widely (mp0rta/xquic#91) (#407)
fix: the reorder buffer now waits the full MaxWaitMs for a missing packet (#385)
fix: the reorder header is taken out of the tunnel MTU only when the server negotiated reorder (#381 by @pylaterreur)
fix: the server counts only sent bytes in a client's bytes_tx (#401 by @pylaterreur)
note: redundant mode can lose more packets than Redundant = off when the stream comes close to a connection's capacity; use it where every connection carries the stream with room to spare, and set CC = bbr on the client (#406, #408)