Adolfo Ochagavía
2d48482180
Use PLPMTUD in bench, perf and examples
...
Sponsored by Stormshield
2023-04-04 17:40:20 -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
Dirkjan Ochtman
cbe4b4604d
Consistently set rust-version in Cargo metadata
2023-02-27 07:34:35 +01:00
Dirkjan Ochtman
3cc7efbe55
Apply remaining clippy suggestions from clippy 1.67
2023-02-27 07:34:35 +01:00
Damien Deville
390f2ebeba
Add a special crypto session to perf binaries to disable packet
...
encryption / decryption. It can be enabled using --no-protection
command line option. This can be use when doing performance
tests to reveal other hotspots than packet encryption and
decryption.
2023-01-26 22:47:53 -08:00
Dezhi Wu
6e1442370b
Fix usage message
2023-01-26 22:38:52 -08:00
Dirkjan Ochtman
2c6aa43610
Apply clippy suggestions from Rust 1.66
2022-12-19 10:13:01 -08:00
Damien Deville
b80baa008d
Add --initial-max-udp-payload-size command line option for perf
...
client and server binaries to change the initial size of UDP
packet payload.
2022-10-28 09:24:03 +02:00
Damien Deville
cebfb270f6
Add --keylog command line option for perf client and server
...
binaries. This allow dumping crypto keys to disk using
SSLKEYLOGFILE env var.
2022-10-27 17:49:28 -07:00
Benjamin Saunders
7d51d2e57e
Remove Incoming stream in favor of Endpoint::accept
2022-10-23 08:18:42 +02:00
dependabot[bot]
f86dd7596d
Update rcgen requirement from 0.9.1 to 0.10.0
...
Updates the requirements on [rcgen](https://github.com/est31/rcgen ) to permit the latest version.
- [Release notes](https://github.com/est31/rcgen/releases )
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md )
- [Commits](https://github.com/est31/rcgen/compare/v0.9.1...v0.10.0 )
---
updated-dependencies:
- dependency-name: rcgen
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-10-03 15:29:41 +02:00
Benjamin Saunders
6e4bcbb2fc
Drop NewConnection in favor of simpler API
2022-09-27 11:08:26 +02:00
Benjamin Saunders
ffa85f2c43
Abstract out async runtime
...
Co-authored-by: Yureka <yuka@yuka.dev >
2022-07-05 09:06:31 -07:00
Benjamin Saunders
fe93a68108
Replace structopt with its successor, clap 3
2022-07-03 21:02:33 +02:00
dependabot[bot]
16769e3fa9
Update rustls-pemfile requirement from 0.3.0 to 1.0.0
...
Updates the requirements on [rustls-pemfile](https://github.com/rustls/pemfile ) to permit the latest version.
- [Release notes](https://github.com/rustls/pemfile/releases )
- [Commits](https://github.com/rustls/pemfile/compare/v/0.3.0...v/1.0.0 )
---
updated-dependencies:
- dependency-name: rustls-pemfile
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-04-18 15:28:52 +02:00
Benjamin Saunders
c1bd43f3a6
Satisfy clippy
2022-04-08 17:51:22 +02:00
Dirkjan Ochtman
5f394099ec
Upgrade rcgen to 0.9.1
2022-02-11 13:48:07 -08:00
dependabot[bot]
d8615d9c2b
Update rustls-pemfile requirement from 0.2.1 to 0.3.0
...
Updates the requirements on [rustls-pemfile](https://github.com/rustls/pemfile ) to permit the latest version.
- [Release notes](https://github.com/rustls/pemfile/releases )
- [Commits](https://github.com/rustls/pemfile/compare/v/0.2.1...v/0.3.0 )
---
updated-dependencies:
- dependency-name: rustls-pemfile
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-02-07 14:31:13 +01:00
Benjamin Saunders
b2c24d957a
Drop futures-util dep from benchmarking tools
2021-12-29 07:34:22 +01:00
Benjamin Saunders
7ed94be3e4
Provide inherent next methods on streams
...
Allows for convenient use in async blocks by downstream code without a
futures_util dependency.
2021-12-21 07:03:27 +01:00
Dirkjan Ochtman
ee6bbf1d2a
Fix clippy suggestions from 1.57
2021-12-10 10:29:12 -08:00
Benjamin Saunders
1159ae3c65
Non-exhaustive ClientConfig
2021-11-10 11:25:19 +01:00
Benjamin Saunders
b923c4c8b0
Pass SocketAddr by value
...
We always consume this by value in the end, and it's a little more
ergonomic.
2021-10-29 20:12:45 +02:00
Benjamin Saunders
5d1b6a101b
Remove EndpointBuilder
...
Now that rustls configuration is more straightforward, this is not
adding significant value.
2021-10-29 20:12:45 +02:00
Dirkjan Ochtman
78dc23614f
Disable default features for rustls
...
In rustls 0.20, TLS 1.2 is optional but enabled by default. We also
don't need to depend on rustls enabling logging.
2021-10-26 11:05:30 -07:00
Dirkjan Ochtman
9daaa15da2
Upgrade to rustls 0.20
2021-10-26 11:05:30 -07:00
Dirkjan Ochtman
5be1824901
Upgrade to tracing-subscriber 0.3
2021-10-25 10:50:32 -07:00
Dirkjan Ochtman
72b99b0372
Drop authors from Cargo manifests
...
Following RFC 3052.
2021-10-07 09:47:04 +02:00
Dirkjan Ochtman
fed3c5cb39
Require explicit construction of ServerConfigs
2021-09-29 10:12:44 -07:00
Dirkjan Ochtman
a7efd92044
Require explicit construction of ClientConfigs
2021-09-29 10:12:44 -07:00
Wesley Rosenblum
2d30749e97
Make json output an optional feature
2021-08-19 15:23:31 +02:00
Wesley Rosenblum
48b094cca8
Add json module to output results in json format
2021-08-19 15:23:31 +02:00
Wesley Rosenblum
566d10f914
Add OpenStreamStats to track statistics per stream
2021-08-19 15:23:31 +02:00
Wesley Rosenblum
6997d2d2a9
Move stats types into a separate module
2021-08-19 15:23:31 +02:00
Marcel Märtens
b224d1d0fa
switch to futures_utils in tests and benches, also use futures_utils isntead of futures_core
2021-08-11 10:27:32 +02:00
Dirkjan Ochtman
d78b3187a9
Apply clippy suggestions from Rust 1.54
2021-07-30 13:29:32 -07:00
Matthias Einwag
e3060d3ff2
Print connection statistics in perf client and server
...
This adds the `--conn-stats` flag to both CLI tools, which will print
the connection statistics together with other data every 2s.
2021-05-28 09:05:53 +02:00
Luca Barbato
5ab895ba19
Add a mean to set the local address in the perf_client
2021-05-24 13:20:38 +02:00
Luca Barbato
bd2a795dd9
Bind to the right ip family the local socket
2021-05-20 11:14:13 -07:00
Thomas de Zeeuw
49475c22b2
Update to socket2 v0.4
2021-03-21 14:39:11 +01:00
Matthias Einwag
ff79550cd8
Print perf_client RPS in floating point format
...
For large requests and high latency connections the number
showed 0 most of the time which isn't too helpful.
2021-03-18 13:43:21 -07:00
Matthias Einwag
2870519f6e
perf: Use dual stack socket for endpoints
...
Users found it rather confusing that binding to the default address
(::0) doesn't allow incoming connections via IPv4 on windows.
This change will allow for this, by using a IPv6 socket and
disabling IPv6-only on all platforms. This lets the windows and unix
implementations behave equally.
2021-03-08 06:38:34 +01:00
Matthias Einwag
fe03f7d2de
Rename perf server and client
...
The executable names conflicted with the interop server:
> The bin target `server` in package `perf v0.1.0 (C:\Users\matth\Code\rust\quinn\perf)` has the same output filename as the bin target `server` in package `interop v0.1.0 (C:\Users\matth\Code\rust\quinn\interop)`.
> Colliding filename is: C:\Users\matth\Code\rust\quinn\target\debug\server.pdb
> The targets should have unique names.
2021-03-08 06:38:34 +01:00
Dirkjan Ochtman
0f285bd751
perf: tweak style in bind_socket()
2021-03-04 12:36:49 -08:00
Dirkjan Ochtman
85dde101bd
perf: adopt more convential crate layout
2021-03-04 12:36:49 -08:00
Matthias Einwag
da1014c913
Allow to set send and receive buffer sizes in perf application
...
Also default to 2MB, which provides reasonable baseline performance.
2021-03-04 11:01:42 +01:00
Matthias Einwag
f38a877b76
Print perf server errors with context
...
This avoids losing error context
2021-03-04 11:01:42 +01:00
Matthias Einwag
516dcd8885
Use debug instead of trace messages in the perf server
...
This provides basic output without seeing all the quic packet info in between.
2021-03-04 11:01:42 +01:00
Matthias Einwag
312c0f041c
Perf: Use owned buffers
...
Use zero-copy APIs when sending data in perf application.
Performance difference:
1. First line is before
2. Second line is after (but with only the download write change)
```
│ Duration │ FBL | Upload Throughput | Download Throughput
──────┼───────────┼───────────┼───────────────────┼────────────────────
AVG │ 5.00ms │ 1.00ms │ 332.82 MiB/s │ 334.20 MiB/s
AVG │ 5.00ms │ 0.00ns │ 332.64 MiB/s │ 335.96 MiB/s
```
=> Makes less than 1%. Still neat to have
2021-03-02 09:13:00 +01:00
Matthias Einwag
3de2727b94
Perf: Prefer more efficient cipher suites
...
Prefer AES128 in order to maximize throughput
2021-03-02 07:01:16 +01:00