Commit Graph

112 Commits

Author SHA1 Message Date
Diva M 1b79bec886 Merge commit '3194714f6fa1c78108b2a6353bd3e2af95ce1152' into multipath-quinn-0.11.x-b2b930a-merges 2025-09-30 09:58:30 -05:00
Damien Deville 3194714f6f perf: rename perf binary to quinn-perf to prevent name clash with linux perf 2025-08-26 20:21:41 +00:00
Dreamacro f5632ce2ee perf: move client and server on one binary 2025-08-26 05:36:31 +00:00
Dreamacro c7bdfa2b8f perf: add max udp payload size option 2025-08-25 02:36:16 +00:00
Damien Deville 8ba63e4d71 perf: allow setting send / receive connection or stream windows 2025-08-22 13:28:08 +00:00
Damien Deville 325b4e0e42 perf: support SI units for the various size parameters 2025-08-22 13:28:08 +00:00
Damien Deville 7d59865ffe perf: factorize init of tracing 2025-08-20 10:51:43 +00:00
Damien Deville 7825e9d39e perf: used buffered writer for qlog stream 2025-08-20 10:51:43 +00:00
Damien Deville 0c8b65fd42 perf: factorize socket binding 2025-08-20 10:51:43 +00:00
Damien Deville c5da14658a perf: factorize common options 2025-08-20 10:51:43 +00:00
Floris Bruynooghe 143eb1b815 Merge branch 'main' into multipath-quinn-0.11.x 2025-08-02 17:14:02 +02:00
Benjamin Saunders 1c6aecc683 Stabilize qlog feature 2025-07-22 00:53:03 +00:00
Benjamin Saunders 25b5dcd569 Configure qlog in TransportConfig 2025-07-22 00:53:03 +00:00
Fabien Savy 56b68df635 add qlog option to perf 2025-07-04 07:57:47 +00:00
Dirkjan Ochtman 8339ef3ccc Upgrade rcgen to 0.14 2025-07-02 19:27:49 +00:00
Damien Deville 62bc881b9a perf: leave async tasks early 2025-06-30 08:12:54 +00:00
Damien Deville a8eba3ada6 perf: allow selecting congestion algorithm 2025-06-30 08:12:54 +00:00
Damien Deville 1678ada26d perf: allow configuring ack frequency 2025-06-30 08:12:54 +00:00
Damien Deville abd1be051b perf: allow setting initial round trip time 2025-06-30 08:12:54 +00:00
Floris Bruynooghe deba4ee85f Merge branch 'main' into multipath-quinn-0.11.x 2025-04-10 12:36:01 +02:00
Lars Eggert 83b48b5b87 feat: Allow changing the UDP send/receive buffer sizes
Also includes getters for the current sizes and a test.
Bump version to 0.5.11.
2025-03-25 08:20:27 +00:00
Dirkjan Ochtman a8807131e4 Switch to 2024 style 2025-02-23 11:52:46 +00:00
Divma c04b6a9fbb take advantage of the fact that packet protection with and without multipath is equivalent for Path(0) (#39) 2025-01-27 11:56:27 -05:00
Divma af1b428d4e include path_id in packet protection (#36) 2025-01-24 11:29:06 -05:00
Carl Dong cc1cf6ff96 Add comments w/re keeping features in sync 2025-01-18 20:56:41 +00:00
Diva M a935ad4df0 Merge commit '6ee883a2' into iroh-0.11.x 2025-01-14 23:05:01 -05:00
Dirkjan Ochtman 43b74b658b proto: replace hidden field with From impl 2024-12-20 19:34:28 +00:00
Lars Eggert f8b8c5032e chore: Fix cargo clippy issues 2024-11-18 23:31:18 +00:00
Floris Bruynooghe 4e95af240e Merge commit '2d06eef43fec927b0cf8f960bedb814bf3e4cc79' into iroh-0.11.x 2024-08-07 09:27:20 +02:00
Dirkjan Ochtman 3f489e2eab Use workspace dependencies for all external dependencies 2024-07-14 22:17:01 -07:00
Floris Bruynooghe f13a28921a Rename to iroh-quinn
This does the rename to iroh-quinn for the 0.11.2 release code.
2024-06-21 13:00:40 +02:00
Max Inden 9e2272a477 refactor: use workspace dependency for tracing and tracing-subscriber 2024-06-20 18:23:04 -07:00
Max Inden 8f3f8242c9 fix: remove unused dependency tracing-attributes
Various `quinn*` crates depend on `tracing`. `tracing` in its default feature
set includes `tracing-attributes` in order to expose `#[instrument]` procedural
macro in `tracing::instrument`.

None of `quinn*` make use of the `#[instrument]` macro. Thus the
`tracing-attributes` dependency is unused.

To remove the dependency from the tree, this commit restricts `tracing`'s
`features` to `std`, effectively removing the `attributes` feature.
2024-06-20 18:23:04 -07:00
Benjamin Saunders b42e21e74d Make SendStream::finish synchronous
`await`ing on this was error-prone and not very useful, since it gave
little insight into application state, and was redundant to `stopped`.
2024-05-03 11:52:44 -07:00
gabrik ce13559778 proto: validate ServerConfig crypto provider
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
2024-04-22 09:45:53 +02:00
Dirkjan Ochtman e6d48970af proto: validate ClientConfig crypto provider
Co-authored-by: gabrik <gabriele.baldoni@gmail.com>
2024-04-22 09:45:53 +02:00
Dirkjan Ochtman 3be1ab5ab2 Upgrade to rcgen 0.13 2024-04-22 09:45:53 +02:00
Dirkjan Ochtman a85a4c12ee Update rustls to 0.23 and ring to 0.17 2024-04-22 09:45:53 +02:00
Dirkjan Ochtman f0d1a45639 perf: hoist config construction out of conditionals 2024-04-22 09:45:53 +02:00
Dirkjan Ochtman 85351bc399 proto: remove the Side argument from ServerConfig::initial_keys() 2024-04-22 09:45:53 +02:00
Damien Deville 90118e76b3 perf: change throughput units from MiB/s into Mb/s. 2024-04-18 19:26:36 +02:00
Phoenix Kahlo 54d5d60b42 Allow accept/refuse/retry before handshake begins
This commit removes use_retry from the server config and provides a
public API for the user to manually accept/refuse/retry incoming
connections before a handshake begins, and inspect properties such as
an incoming connection's remote address and whether that address is
validated when doing so.

In quinn-proto, Incoming is made public, as well as Endpoint's accept/
refuse/retry methods which operate on it. The
DatagramEvent::NewConnection event is modified to return an incoming
but not yet accepted connection.

In quinn, awaiting Endpoint::accept now yields a new
quinn::Incoming type, rather than quinn::Connecting. The new
quinn::Incoming type has all the methods its quinn_proto equivalent has,
as well as an accept method to (fallibly) transition it into a
Connecting, and also refuse, retry, and ignore methods.

Furthermore, quinn::Incoming implements IntoFuture with the output type
Result<Connection, ConnectionError>>, which is the same as the Future
output type of Connecting. This lets server code which was
straightforwardly awaiting the result of quinn::Endpoint::accept work
with little to no modification.

The test accept_after_close was removed because the functionality it
was testing for no longer exists.
2024-04-03 10:02:29 +02:00
dependabot[bot] d2e9c58044 Update rcgen requirement from 0.11.1 to 0.12.0
Updates the requirements on [rcgen](https://github.com/rustls/rcgen) to permit the latest version.
- [Commits](https://github.com/rustls/rcgen/compare/v0.11.1...v0.12.0)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 13:06:24 -08:00
Benjamin Saunders e1e1e6e392 Remove explicit rust-version requirement from unpublished crates 2023-09-24 14:22:14 -07:00
Benjamin Saunders e51f848296 Bump MSRV to 1.65 for let-else 2023-09-24 14:22:14 -07:00
dependabot[bot] 790ff720a9 Update rcgen requirement from 0.10.0 to 0.11.1
Updates the requirements on [rcgen](https://github.com/est31/rcgen) to permit the latest version.
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/est31/rcgen/compare/v0.10.0...v0.11.1)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 16:20:46 +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
Benjamin Saunders 044eab53ff Update clap 2023-05-11 14:10:19 +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