Commit Graph

4597 Commits

Author SHA1 Message Date
Ruediger Klaehn fbee2ab236 Merge branch 'main' into batch-sending 2025-12-19 14:44:09 +02:00
Ruediger Klaehn 9ff5ed3dc2 fnt and fix quinn-udp bench 2025-12-19 14:30:37 +02:00
Ruediger Klaehn bb55a44959 Batch proto::ConnectionEvent in poll_socket.
This means fewer context switches in case we get a batch for the same connection,
which should be frequent.
2025-12-19 14:28:59 +02:00
Ruediger Klaehn 0d024abc3f log 2025-12-19 13:45:17 +02:00
Floris Bruynooghe 9a29a461e8 Log connection states explicitly (#284)
## Description

Improves the debugging experience.

## Breaking Changes

n/a

## Notes & open questions

n/a
2025-12-19 11:22:17 +00:00
Floris Bruynooghe c287b891b3 log some fields for close state 2025-12-19 12:18:36 +01:00
Ruediger Klaehn d3d4034b8b Implement batch send
apple-slow: just send 1
apple-fast: send up to BATCH_SIZE
2025-12-19 13:10:48 +02:00
Friedel Ziegelmayer d3cdbd425b refactor!: use NonZeroUsize for segment sizes (#251)
## Description

Start introducing more type safety for implicit assumptions, step by
step

## Breaking Changes

This breaks a couple of places, so going to wait a bit for merging this
2025-12-19 10:58:10 +00:00
dignifiedquire ceab1a9f20 fixup 2025-12-19 11:53:42 +01:00
dignifiedquire c0333c545d CR 2025-12-19 11:53:42 +01:00
dignifiedquire fa72f4e64c fixups 2025-12-19 11:53:42 +01:00
dignifiedquire 40fffcb74b refactor!: use NonZeroUsize for segments sizes
Start introducing more type safety for implicit assumptions, step by step
2025-12-19 11:53:40 +01:00
Floris Bruynooghe c84198f54d cargo make format 2025-12-19 10:13:35 +01:00
Floris Bruynooghe 8b6f76cc0e Log connection states explicitly 2025-12-19 09:51:11 +01:00
Diva Martínez c8f55101b5 feat(quinn-proto): Retry client sent probes when the failures might be spurious (#271)
## Description

<!-- A summary of what this pull request achieves and a rough list of
changes. -->

## Breaking Changes

<!-- Optional, if there are any breaking changes document them,
including how to migrate older code. -->

## Notes & open questions

<!-- Any notes, remarks or open questions you have to make about the PR.
-->
2025-12-18 17:14:37 +00:00
Diva Martínez a27b408d3a Merge branch 'main' into hole-punch-try-harder 2025-12-18 11:22:28 -05:00
Ruediger Klaehn 657a53d47d Merge branch 'bulk-choose-runtime' into batch-sending 2025-12-18 18:10:15 +02:00
Ruediger Klaehn 49b93e61c9 Add the possibility of sending multiple transmits in drive_transmit 2025-12-18 18:08:49 +02:00
Ruediger Klaehn 60145f8c7c Introduce an accessor fn for Transmit to compute number of datagrams. 2025-12-18 17:58:46 +02:00
Ruediger Klaehn 9387836a23 Change UdpSender trait to allow sending a batch
Fix the other code by sending an 1-slice for now.
2025-12-18 17:54:18 +02:00
Diva Martínez da63d58ae3 keep now as first arg 2025-12-18 10:44:55 -05:00
Philipp Krüger 9d73ec4a94 fix(proto): Send the close frame on the available path (#274)
## Description

Without this change, it's possible that we send the close frame on a
broken path only, if the broken path happens to have a path ID lower
than the available path.

## Notes & open questions

Setting `path_should_send` to true if `can_send.close` would make sense,
if we sent a close on every path, but we don't, we stop sending after
we've sent the close on one path.

I think it's possible to fix this in either direction, but IMO we should
send the close on the path we usually use for application data in
general.
2025-12-18 15:42:18 +00:00
Diva Martínez 9df126caf7 Merge branch 'main' into hole-punch-try-harder 2025-12-18 10:42:12 -05:00
Diva Martínez 0b93d82c74 address review 2025-12-18 10:42:15 -05:00
Floris Bruynooghe cd4ce43df1 Improve logging of path challenge and response frames (#281)
## Description

The display impl was not being triggered where it was, so the frames
could once again not be grepped on their frame types PATH_CHALLENGE
and PATH_RESPONSE. Which is a critical workflow for me.

Fixing their display so they show up sensibly when being written meant
that the challenge itself was now being logged differently on the send
and receive side again: hex on the send size, decimal on the receive
side. So I fixed this by starting to log frames as their proper frame
types on the receive side too.

However I'm not backfilling all the frames yet with these impls. Will
probably add them later as we improve logging.

## Breaking Changes

n/a

## Notes & open questions

We eventually need to end up with a way of consistently logging frames
both when writing and reading. But let's get there in small steps,
because doing it all at once is a bit of a pain.
2025-12-18 13:12:49 +00:00
Floris Bruynooghe 6902f3efbe clippy 2025-12-18 12:53:58 +01:00
Floris Bruynooghe 44e445343e Improve logging of path challenge and response frames
The display impl was not being triggered where it was, so the frames
could once again not be grepped on their frame types PATH_CHALLENGE
and PATH_RESPONSE. Which is a critical workflow for me.

Fixing their display so they show up sensibly when being written meant
that the challenge itself was now being logged differently on the send
and receive side again: hex on the send size, decimal on the receive
side. So I fixed this by starting to log frames as their proper frame
types on the receive side too.

However I'm not backfilling all the frames yet with these impls. Will
probably add them later as we improve logging.
2025-12-18 12:43:44 +01:00
Ruediger Klaehn b689450931 Allow configuring the runtime type in the bulk bench
Also switch the default to the multithreaded runtime. I think that is more
representative of actual use.
2025-12-18 11:48:20 +02:00
Diva Martínez 9fac9dd3ce clippy 2025-12-17 12:07:32 -05:00
Diva Martínez 6ce31b7bba retry on max path id 2025-12-17 12:05:53 -05:00
Diva Martínez 48a14ad1ca retry pending nat probes on new cids 2025-12-17 11:51:44 -05:00
Diva Martínez 697192c0ed Merge remote-tracking branch 'n0/main' into hole-punch-try-harder 2025-12-17 10:05:15 -05:00
Philipp Krüger cfd7bbebeb fix(proto): Send the close frame on the available path 2025-12-17 11:03:53 +01:00
Friedel Ziegelmayer 4dcb3a7f05 feat(proto): improve PTO calculations on shutdown (#269)
- PTO calculations now ignore paths that have not received, or sent
anything when calculating for shutdown
- we stop sending path challenges when we are already closing, to reduce
the chance of inflight packets that are not needed
2025-12-17 09:23:15 +00:00
dignifiedquire d320c63c06 cleanup 2025-12-17 10:07:04 +01:00
dignifiedquire 0cfc00d393 feat(proto): improve PTO calculations on shutdown 2025-12-17 10:07:04 +01:00
Asmir Avdicevic 9947dfa162 fix(ci): windows test build fix (#273)
## Description

Align the windows CI tests with the rest of the build env so we avoid
sproadic config issues against fips.

## Breaking Changes

<!-- Optional, if there are any breaking changes document them,
including how to migrate older code. -->

## Notes & open questions

<!-- Any notes, remarks or open questions you have to make about the PR.
-->
2025-12-17 08:56:09 +00:00
Asmir Avdicevic c4fb84b8c4 fix(ci): windows test build fix 2025-12-17 08:46:28 +01:00
Diva Martínez 25def0a194 mark failed addresses for retry 2025-12-16 17:01:04 -05:00
Diva Martínez 56294fe707 fix(quinn-proto): set the hole punching round 2025-12-16 22:48:22 +01:00
Diva Martínez fb807023d4 Merge branch 'main' into hole-punch-try-harder 2025-12-16 16:27:07 -05:00
Diva Martínez e33186d01f create state to keep track to retries for client sent probes 2025-12-16 16:05:00 -05:00
Friedel Ziegelmayer 7a3f33ecc1 fix(proto): do not attempt to initate NAT traversal on a closed connection (#268) 2025-12-16 17:34:59 +00:00
dignifiedquire 2bfe573f90 typing 2025-12-16 18:21:52 +01:00
dignifiedquire 1ac2c3c914 fix(proto): do not attempt to initate NAT traversal on a closed connection 2025-12-16 18:21:52 +01:00
Asmir Avdicevic d1a6b5a3d1 fix(ci): windows deps (#267)
## Description

<!-- A summary of what this pull request achieves and a rough list of
changes. -->

## Breaking Changes

<!-- Optional, if there are any breaking changes document them,
including how to migrate older code. -->

## Notes & open questions

<!-- Any notes, remarks or open questions you have to make about the PR.
-->
2025-12-16 17:20:52 +00:00
Asmir Avdicevic eb59f64ae5 fix(ci): windows deps 2025-12-16 18:01:20 +01:00
Diva Martínez caccc6754d fix: include off-path challenges in setting challenge lost timer (#261)
## Description

we need to take into account path challenges for remotes other than
received ones when stopping the challenge lost timer

## Breaking Changes

n/a

## Notes & open questions

n/a
2025-12-16 16:57:31 +00:00
Diva Martínez 5b6efe9944 add set_or_stop to connection timers 2025-12-16 11:52:36 -05:00
Diva Martínez 7ab9cb15c1 Merge branch 'main' into set-off-path-challenge-timers 2025-12-16 10:13:45 -05:00