3256 Commits

Author SHA1 Message Date
Benjamin Saunders 023f10376d Reduce default maximum UDP payload size to the ethernet MTU
Drastically reduces the size and sparsity of the quinn receive buffer
for no performance cost in typical applications.
0.10.2
2023-07-31 14:02:21 -07:00
Lijun Wang ab9bbe3342 bump versions to 0.10.2 (#1606) 2023-07-20 09:46:42 +02:00
Benjamin Saunders 72e9e3bbcc Replace .rev().next() with .next_back() 2023-07-19 23:37:24 +02:00
Lijun Wang 53083f4c48 Backport supress stateless packet to 0.10.x (#1598) 2023-07-12 18:02:36 -07:00
Dirk Stolle c700d2ff34 Replace unmaintained actions-rs/* actions in CI workflows
Basically all of the `actions-rs/*` actions are unmaintained. See
<https://github.com/actions-rs/toolchain/issues/216> for more
information. Due to their age they generate several warnings in
CI runs.

To get rid of those warnings the occurrences of
`actions-rs/toolchain` are replaced by `dtolnay/rust-toolchain`,
and the occurrences of `actions-rs/cargo` are replaced by direct
invocations of `cargo`.
2023-06-13 11:05:09 -07:00
Dirk Stolle 6bb36a217c Update actions/checkout in GitHub Actions workflows to v3 2023-06-13 11:05:09 -07:00
Benjamin Saunders 57c1c24e52 Merge redundant impl Connecting blocks 2023-06-13 11:05:09 -07:00
Benjamin Saunders 3bd6f93a28 Fix panic on redundant finish calls 2023-06-13 11:05:09 -07:00
Jonathan Johnson 723218727e Added Endpoint::reject_new_connections (#1585)
This commit adds a new function that refuses new connections without
impacting existing connections. Internally, this just sets the
connection limit to 0, which causes incoming connections to be rejected.
This is the same approach that was taken in 0.8.5 when `Incoming` was
dropped.
2023-06-13 11:05:09 -07:00
Benjamin Saunders 1d8ba9b513 Remove redundant/obsolete Endpoint::reject_new_connections
This was previously used by the `quinn` layer to stop accepting
connections when the `Incoming` stream was dropped. That stream has
since been replaced by an async function. Users who still want this
can use set_server_config directly.
2023-06-13 11:05:09 -07:00
Daniel McCarney 4b309cd46b bump quinn, quinn-proto crate versions. 0.10.1 2023-05-11 23:06:29 +02:00
Daniel McCarney 2f72a5b847 deps: remove webpki dependency.
This commit updates the existing Quinn sub-crate dependencies to remove
the explicit `webpki` v0.22 dependency. It's not used by directly
anywhere and can be a transitive dependency through rustls as required.
2023-05-11 23:06:29 +02:00
ljedrz c0b9d4233e docs: update the MSRV in the README
Signed-off-by: ljedrz <ljedrz@gmail.com>
2023-05-11 14:49:44 +02:00
Benjamin Saunders 044eab53ff Update clap 2023-05-11 14:10:19 +02:00
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