The `socket2` imports are only used by the feature flagged `client` function.
Move the imports into the function to be feature flagged as well.
Avoids the following warning:
```
--> quinn/src/endpoint.rs:28:15
|
28 | use socket2::{Domain, Protocol, Socket, Type};
| ^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^
|
= note: `#[warn(unused_imports)]` on by default
```
Attempting to parse frames from these non-frame-bearing packets was
responsible for some spurious connection failures in interop testing
under high packet loss.
8712910a made `tracing` optional and added optional `log`, but forgot to update
`quinn-udp/src/windows.rs`. This commit fixes the oversight and bumps the
`quinn-udp` version to `v0.5.4`.
This commit makes the `tracing` dependency in `quinn-udp` optional, but enabled
by default. In additional it adds optional logging via the `log` crate, enabled
through the `direct-log` feature. `tracing` takes precedence over `native-log`.
This commit adds a basic benchmark, measuring the time to transfer 10
MiB with and without GSO on localhost.
```
gso_false/throughput time: [23.455 ms 25.230 ms 27.004 ms]
thrpt: [370.31 MiB/s 396.35 MiB/s 426.35 MiB/s]
gso_true/throughput time: [1.0168 ms 1.1239 ms 1.2496 ms]
thrpt: [7.8153 GiB/s 8.6889 GiB/s 9.6044 GiB/s]
```
```
$ cat /proc/cpuinfo
model name : 12th Gen Intel(R) Core(TM) i9-12900HK
```
---
Given various optimizations for `localhost` traffic on Linux, we were
wondering whether GSO actually has an impact on `localhost`. According
to this benchmark: Yes it does.
For what a `localhost` network benchmark is worth, here it is. Feel free
to close in case it isn't useful.
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.