fix(unix): disable GSO after probing - #2584
Merged
Merged
Conversation
After probing the given socket for GSO support, we need to disable this option again to ensure we can selectively enable it via our cmsg codepaths.
thomaseizinger
requested review from
Ralith,
djc,
gretchenfrage and
mxinden
as code owners
March 24, 2026 01:20
Ralith
approved these changes
Mar 24, 2026
djc
approved these changes
Mar 24, 2026
Member
|
@thomaseizinger thanks for all your contributions! Would you like to join as a quinn-udp maintainer? |
Collaborator
|
Not that my opinion is worth much here, but I am in favor! :) |
Collaborator
Author
Yes that would be great! |
dignifiedquire
added a commit
to n0-computer/noq
that referenced
this pull request
Apr 22, 2026
Synced up to quinn-rs/quinn@07ce61c Closes #602 ### Commits applied in this PR | upstream SHA | PR | subject | noq commit | |---|---|---|---| | 06f7f7d | [#2611](quinn-rs/quinn#2611) | Take boxed connection ID generator factories | `167c709c7` | | 404db1b | [#2495](quinn-rs/quinn#2495) | Move the ref counts out | `e6772ea9f` (bundled) | | 4b7a039 | [#2495](quinn-rs/quinn#2495) | Fix the (pre-existing) rightward drift by inverting conditions | `e6772ea9f` (bundled) | | 475b55b | [#2495](quinn-rs/quinn#2495) | Early return in `RecvStream::drop()` | `e6772ea9f` (bundled) | | 803c814 | [#2541](quinn-rs/quinn#2541) | Remove `RecvStream`s from `blocked_readers` on `stop` | `e6772ea9f` (bundled) | | 37625fe | [#2609](quinn-rs/quinn#2609) | quinn: fix ref count logic for ConnectionRef and EndpointRef | `e6772ea9f` (bundled) | | 07ce61c | [#2612](quinn-rs/quinn#2612) | Test cleanup of connections/endpoints when all references are dropped | `e6772ea9f` (bundled) | | 42de9dd | [#2469](quinn-rs/quinn#2469) | refactor(quinn-udp): extract `decode_socket_addr` helper | `2e4effbe4` | | 4742a70 | [#2469](quinn-rs/quinn#2469) | refactor(quinn-udp): extract `ControlMetadata` helper | `6f5904350` | | 2964782 | [#2472](quinn-rs/quinn#2472) | refactor(quinn-udp): split fast&slow send/recv paths | `a17058e80` | | 459c347 | [#2549](quinn-rs/quinn#2549) | add metric for spurious congestion events | `0c78d6435` | | f853e5e | [#2550](quinn-rs/quinn#2550) | fix(perf): suppress table output in JSON mode | `0155ee3f6` | | a0ec97a | [#2463](quinn-rs/quinn#2463) | feat(quinn-udp): make Apple fast datapath opt-in | `412dc6684` | | bb00530 | [#2560](quinn-rs/quinn#2560) | docs: fix book build with mdbook 0.5.2 | `98cb0ad67` | | ee8f946 | [#2565](quinn-rs/quinn#2565) | fix: reuse existing socket for probing GRO/GSO support | `012530527` | | 56bba7c | [#2565](quinn-rs/quinn#2565) | refactor: remove `gro` module | `1174207fa` | | 04ba57c | [#2565](quinn-rs/quinn#2565) | fix: remove opportunistic GRO syscall | `35400c04e` | | f0905db | [#2570](quinn-rs/quinn#2570) | docs(quinn): improve `Connection::close_reason()` documentation | `287fd2b63` | | 0adcd20 | [#2573](quinn-rs/quinn#2573) | docs: clarify that `Event::ConnectionLost` is not emitted on local close | `7f34b4517` | | b8e4d3b | [#2572](quinn-rs/quinn#2572) | quinn: Make Endpoint::server dual-stack V6 by default | `461fe7f28` | | 52c7ad1 | [#2583](quinn-rs/quinn#2583) | refactor(quinn-udp): add `retry_if_interrupted` helper | `348b91383` | | 8acb578 | [#2584](quinn-rs/quinn#2584) | fix(unix): disable GSO after probing | `85c022d75` | | e01f99e | [#2571](quinn-rs/quinn#2571) | fix: Resolve `sendmsg_x`/`recvmsg_x` via `dlsym` | `881d6f151` | | eff5572 | [#2579](quinn-rs/quinn#2579) | proto: send STREAMS_BLOCKED when stream limit is hit | `e64abef10` | | dc86400 | [#2556](quinn-rs/quinn#2556) | Introduce `max_outgoing_bytes_per_second` option | `ffe5a5474` | | bda24fd | [#2602](quinn-rs/quinn#2602) | Upgrade rustls-platform-verifier to 0.7 | `e4570ea71` | ### Already present in noq | upstream SHA | PR | subject | |---|---|---| | 16e1aaa | [#2511](quinn-rs/quinn#2511) | Fix unused_mut warning from Rust 1.93 | | e96c279 | [#2533](quinn-rs/quinn#2533) | quinn-proto: make cids_exhausted overflow-safe on 32-bit | | 5db36fe | [#2534](quinn-rs/quinn#2534) | docs: fix typo in EndpointStats | | d305440 | [#2540](quinn-rs/quinn#2540) | Upgrade fastbloom to 0.17 | | 57b9d0a | [#2558](quinn-rs/quinn#2558) | fuzz: add fuzzing target for parsing transport parameters | | 655a8ad | [#2558](quinn-rs/quinn#2558) | proto: avoid unwrapping varint decoding during parameters parsing | | 7f7d9ea | [#2610](quinn-rs/quinn#2610) | Fix clippy warnings from 1.95 ### Skipped | upstream SHA | PR | subject | reason | |---|---|---|---| | e5b30f5 | [#2532](quinn-rs/quinn#2532) | quinn-udp: make ECN best-effort on Windows (Wine/Proton) | noq already has its own Wine/Proton ECN handling using `AtomicBool` runtime-detection (noq PR [#414](#414)); upstream's static-bool approach would be redundant. | | 70d083b | [#2540](quinn-rs/quinn#2540) | Upgrade to qlog 0.16 | noq uses its own `n0-qlog` fork with a different API. | | d8db7a0 | [#2599](quinn-rs/quinn#2599) | Upgrade to qlog 0.17 | Same reason as above. | | 41bf1db | [#2564](quinn-rs/quinn#2564) | fix: evaluate `max_gso_segments` for every socket on Windows | noq already tracks `max_gso_segments` per-socket on an `AtomicUsize`. | | 905e109 | [#2599](quinn-rs/quinn#2599) | Bump MSRV to 1.82 (for qlog -> serde_with) | noq is already at MSRV 1.88. | | 95863af | [#2602](quinn-rs/quinn#2602) | Bump MSRV to 1.85 (for rustls-platform-verifier) | Same reason as above. | --------- Co-authored-by: Benjamin Saunders <ben.e.saunders@gmail.com> Co-authored-by: Lars Eggert <lars@eggert.org> Co-authored-by: Fabien SAVY <fabien.savy@stormshield.eu> Co-authored-by: Zotyamester <szatmary.zoltan1222@gmail.com> Co-authored-by: Dirkjan Ochtman <dirkjan@ochtman.nl> Co-authored-by: Thomas Eizinger <thomas@eizinger.io> Co-authored-by: zphrs <z@zephiris.dev> Co-authored-by: alexchenai <alexchenai@users.noreply.github.com> Co-authored-by: Romain Roffé <r2@kyber.media> Co-authored-by: cong-or <conchubhar.gannon@gmail.com> Co-authored-by: Adolfo Ochagavía <github@adolfo.ochagavia.nl>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves: #2575