3242 Commits

Author SHA1 Message Date
Dirkjan Ochtman a66ee19797 Only check libraries against MSRV 0.10.0 2023-05-11 04:47:59 +02:00
Dirkjan Ochtman 1dd88e6883 Update remaining crates to 2021 2023-05-11 04:47:59 +02:00
Dirkjan Ochtman 92ab791486 Upgrade socket2 to 0.5 2023-05-11 04:47:59 +02:00
Dirkjan Ochtman 9e26ea98bd Fix visibility warnings on non-Unix platforms 2023-05-11 04:47:59 +02:00
dignifiedquire 7d006c0d58 switch to Bytes to allow cheap cloning 2023-05-09 17:15:40 +02:00
dignifiedquire d08ad01e40 perf: specialize slice extension in Datagram::encode 2023-05-09 17:15:40 +02:00
dignifiedquire 89b527c9a1 feat: use BytesMut for Transmit content 2023-05-09 17:15:40 +02:00
Maksim Vykhota 37e7b742cb Fail FreeBSD CI if any step fails 2023-05-06 11:29:28 -07:00
Maksim Vykhota aeda2e2146 Fix build and tests on FreeBSD 2023-05-06 11:06:43 -07:00
Benjamin Saunders a55fd51c95 Delete redundant set_socket_option 2023-05-06 08:05:17 +02:00
Benjamin Saunders 092a7686a4 Enable PMTUD by default when appropriate 2023-05-06 08:05:17 +02:00
Benjamin Saunders f4384e6edb udp: expose whether IP_DONTFRAG semantics apply 2023-05-06 08:05:17 +02:00
Benjamin Saunders 23b1416a01 udp: improve fragmentation suppression on *nix 2023-05-06 08:05:17 +02:00
Benjamin Saunders f6c1bb3b93 Add missing exports of stats types 2023-05-04 10:26:24 +02:00
Benjamin Saunders 99e462f8c8 Rename min_guaranteed_mtu to min_mtu for clarity 2023-05-03 12:30:50 +02:00
Adolfo Ochagavía 030a0e8d72 Use mtu instead of max_udp_payload_size in names
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Adolfo Ochagavía 7e495e2909 Make max_guaranteed_udp_payload_size user-configurable
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Adolfo Ochagavía bef7198e96 Notify congestion controllers of MTU updates
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Adolfo Ochagavía f02dfc2f26 Detect black holes based on loss bursts for robustness
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Adolfo Ochagavía bbc13413b2 Use 65527 instead of 1480 as default max_udp_payload_size
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Adolfo Ochagavía 74d3689962 Fix no-protection option in perf crate
Sponsored by Stormshield
2023-04-26 13:18:42 -07:00
Benjamin Saunders f79b31babf Bump MSRV to 1.63
More than six months old, and required by time 0.3.20.
2023-04-24 07:58:42 +02:00
link2xt ec7a459174 Bump quinn-udp version to 0.4.0
It includes a fallback for old Linux and Android systems
which do not support setting ECN flag on UDP packets.
2023-04-19 19:50:13 +02:00
Dirkjan Ochtman aaa58fc501 udp: avoid warning about unused set_sendmsg_einval() method 2023-04-19 10:59:06 +02:00
Dirkjan Ochtman 297f875065 Duplicate Transmit and EcnCodepoint across -proto and -udp
This removes the dependency from -udp -> -proto, which seems more correct.
2023-04-19 10:59:06 +02:00
Dirkjan Ochtman 3eb26361db quinn: take Arc<dyn Runtime> directly 2023-04-14 16:08:01 -07:00
Benjamin Saunders bffa86dcfb Remove unnecessary pubs from quinn-udp fallback logic 2023-04-14 07:24:25 +02:00
Dirkjan Ochtman 1cd3343b73 Fix use_self suggestions for MTU discovery additions 2023-04-11 10:47:44 +02:00
Dirkjan Ochtman eab8728f05 udp: warn on unreachable_pub 2023-04-11 10:47:44 +02:00
Dirkjan Ochtman 4fd2df30b0 quinn: warn on unreachable_pub 2023-04-11 10:47:44 +02:00
Dirkjan Ochtman 134ef97bdd proto: warn on unreachable_pub
I have found this makes it easier to see whether changes affect the public
API, which can be hard especially in reviews when context is limited.
2023-04-11 10:47:44 +02:00
Dirkjan Ochtman e1674feb92 Warn on clippy's use_self lint 2023-04-05 10:08:26 +02:00
Adolfo Ochagavía 2d48482180 Use PLPMTUD in bench, perf and examples
Sponsored by Stormshield
2023-04-04 17:40:20 -07:00
Adolfo Ochagavía ddc7ee16b5 Implement PLPMTUD
Sponsored by Stormshield
2023-04-04 17:40:20 -07:00
Adolfo Ochagavía d3e752c32a Process all endpoint events in TestEndpoint::drive before returning
Sponsored by Stormshield
2023-04-04 17:40:20 -07:00
dependabot[bot] fdd590fecc Update hex-literal requirement from 0.3.0 to 0.4.0
Updates the requirements on [hex-literal](https://github.com/RustCrypto/utils) to permit the latest version.
- [Release notes](https://github.com/RustCrypto/utils/releases)
- [Commits](https://github.com/RustCrypto/utils/compare/hex-literal-v0.3.0...hex-literal-v0.4.0)

---
updated-dependencies:
- dependency-name: hex-literal
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 16:32:58 +02:00
dependabot[bot] 76d4405b20 Update windows-sys requirement from 0.45.0 to 0.48.0
Updates the requirements on [windows-sys](https://github.com/microsoft/windows-rs) to permit the latest version.
- [Release notes](https://github.com/microsoft/windows-rs/releases)
- [Commits](https://github.com/microsoft/windows-rs/compare/0.45.0...0.48.0)

---
updated-dependencies:
- dependency-name: windows-sys
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 16:31:34 +02:00
Benjamin Saunders 07b1405bbd Don't rely on sleeping in 0-RTT test
This is unnecessarily racy, at least in principle.
2023-04-03 13:43:50 +02:00
Daniel McCarney b56d60bbec quinn-proto: bump version 0.9.3 -> 0.10.0.
As part of upgrading the quinn-proto rustls dependency we must do
a semver incompatible version bump since rustls is exposed as part of
the public API.
2023-04-01 12:18:23 -07:00
Daniel McCarney 5d1f7bccf2 deps: upgrade rustls v0.20.3 -> v0.21.0.
This commit updates Quinn's dependency on Rustls from v0.20.3 to
v0.21.0.

This release includes a handful of small breaking changes which are
resolved alongside the upgrade.
2023-04-01 12:18:23 -07:00
Nathan Mittler ef20b50608 Bump quinn-proto version
Provides API changes needed by https://github.com/quinn-rs/quinn-boring/pull/2.
2023-03-28 09:32:23 +02:00
dignifiedquire 75524fcb0b refactor: do not require &mut self in AsyncUdpSocket::poll_send 2023-03-24 10:16:50 +01:00
Nathan Mittler 88897e7122 Support external crypto implementations.
These changes are needed for the BoringSSL crypto provider (#1488),
which will reside in a separate repository.
2023-03-22 10:39:43 +01:00
Florian Uekermann 93e726980e Getters for stream concurrency metrics and related documentation 2023-03-21 10:18:31 +01:00
link2xt 11b34a7b26 Fallback to not using ECN if IP_TOS is not supported (#1516)
On Linux <3.13 sendmsg/sendmmsg system calls
return EINVAL without sending anything if they encounter
an `IP_TOS` cmsg. To ensure we can still send
on such systems, remember if we got an EINVAL error
and switch to "fallback mode" in which we do not try
to transmit ECN at all and only use well-supported features.
2023-03-17 23:15:15 +01:00
Dirkjan Ochtman d31597f181 Apply suggestions from clippy 1.68 2023-03-15 18:11:11 -07:00
Dirkjan Ochtman 02037e72fa Switch CI coverage test to use cargo-llvm-cov 2023-03-08 10:26:54 -08:00
Dirkjan Ochtman 25a067bc88 Update maintenance branches in CI config 2023-03-08 10:26:54 -08:00
link2xt e6f184489e Implement fallback for sendmmsg and recvmmsg
Some Android phones use older 2.x kernels
and do not support `sendmmsg`
which is available only since Linux 3.0.

Similarly, `recvmmsg` is only available
since Linux 2.6.34.
2023-03-08 12:22:14 +01:00
Benjamin Saunders 7424372f49 Bump version 2023-03-05 08:52:31 +01:00