Commit Graph

3833 Commits

Author SHA1 Message Date
Floris Bruynooghe f96aba243d fixup comment 2025-02-27 15:38:48 +01:00
Floris Bruynooghe 68205a54e1 obsolete todo 2025-02-27 15:33:41 +01:00
Floris Bruynooghe ea23a93080 Add cid len check to enable multipath 2025-02-27 15:27:36 +01:00
Floris Bruynooghe 67ccddb860 Use FxHashMap for CID tracking 2025-02-27 12:52:16 +01:00
Floris Bruynooghe 01592b6dda Keep CIDs per path in the endpoint (#48)
This makes sure that the sequence numbers of the CIDs are sequential
per path.  Which is what it needs to be.
2025-02-27 12:48:29 +01:00
Floris Bruynooghe 2f19f389b8 Keep CIDs per path in the endpoint
This makes sure that the sequence numbers of the CIDs are sequential
per path.  Which is what it needs to be.
2025-02-27 12:36:34 +01:00
Floris Bruynooghe 1e3b7e8e59 WIP: issue per-path CIDs and keep track of them (#47) 2025-02-26 19:08:28 +01:00
Floris Bruynooghe 08ac43f5e9 clippy demands brackets 2025-02-26 18:55:14 +01:00
Floris Bruynooghe 04a7b0e08d format 2025-02-26 18:49:15 +01:00
Floris Bruynooghe 9ed01454bb and use the correct pathid in test as well now 2025-02-26 18:47:51 +01:00
Floris Bruynooghe 57800f0def fixup 2025-02-26 18:45:38 +01:00
Floris Bruynooghe 3b1f89bcf2 do the CID -> PathId mapping in the endpoint
It already has this entire index thing for connection IDs.  It only
needs to be extended there to add PathId and lots of things just fall
into place!
2025-02-26 18:37:55 +01:00
Floris Bruynooghe 65256dafc0 some more todos 2025-02-25 18:15:30 +01:00
Floris Bruynooghe 5760c603c2 the missing bits 2025-02-25 18:06:15 +01:00
Floris Bruynooghe 882fdf2370 WIP: issue per-path CIDs and keep track of them 2025-02-24 14:07:29 +01:00
Floris Bruynooghe 85b2427614 Start adding CID-PathId mapping (#46) 2025-02-20 11:08:25 +01:00
Floris Bruynooghe 32e86ce119 some smaller cleanups 2025-02-19 15:16:05 +01:00
Floris Bruynooghe 4757c7ac63 fix tests 2025-02-18 18:08:20 +01:00
Floris Bruynooghe 1b927a10a8 compiles 2025-02-18 17:04:00 +01:00
Floris Bruynooghe b30f7eb92b Start adding CID-PathId mapping 2025-02-18 16:25:26 +01:00
Floris Bruynooghe a8a25714e5 Add the multipath transport error codes (#45) 2025-02-12 12:28:12 +01:00
Floris Bruynooghe 4a05a4a2f0 Kind of do tail-loss probes correctly (#44)
This is a bit sad because it splits the use in poll_transmit.  It will
need more adjustments once poll_transmit starts sending on multiple
paths though.
2025-02-11 17:47:02 +01:00
Floris Bruynooghe 2481c5871e Add the multipath transport error codes 2025-02-11 17:43:19 +01:00
Floris Bruynooghe 6fd280bf62 Kind of do tail-loss probes correctly
This is a bit sad because it splits the use in poll_transmit.  It will
need more adjustments once poll_transmit starts sending on multiple
paths though.
2025-02-11 17:30:15 +01:00
Floris Bruynooghe 6ee9d1e0be Fixup lints so we can have clean CI (#43) 2025-02-10 19:36:22 +01:00
Floris Bruynooghe f943a71211 more licenses 2025-02-10 17:54:09 +01:00
Floris Bruynooghe 9eb4ffed0a remove legacy numeric import 2025-02-10 17:50:03 +01:00
Floris Bruynooghe a0d3323741 sources and licenses tweaks 2025-02-10 17:43:44 +01:00
Floris Bruynooghe a40bc688f5 Clippy lints 2025-02-10 17:43:33 +01:00
Floris Bruynooghe 43877d2913 Different approach: add a PacketNumberSpace (#41) 2025-02-10 17:20:29 +01:00
Floris Bruynooghe ff38a2ace3 add some todos 2025-02-10 16:35:07 +01:00
Floris Bruynooghe 2b5297dbad rename the iterators too 2025-02-10 14:47:42 +01:00
Floris Bruynooghe 23ae6226a1 Use the PathId stored in the PacketBuilder 2025-02-10 14:38:19 +01:00
Floris Bruynooghe 5739c711c0 Rename to for_path 2025-02-10 14:22:57 +01:00
Floris Bruynooghe 47299fbdd5 Always use the data space here, for... reasons? 2025-02-07 16:18:02 +01:00
Floris Bruynooghe 8e94b6958c it compiles 2025-02-07 12:58:23 +01:00
Floris Bruynooghe ab8f0abfd4 stuff 2025-02-05 18:28:32 +01:00
Floris Bruynooghe 618c25c74f more stuff 2025-02-04 17:14:30 +01:00
Floris Bruynooghe e5321d1bab whatever this is 2025-02-04 10:15:19 +01:00
Floris Bruynooghe 989e875342 Most in spaces.rs is done 2025-01-29 18:33:38 +01:00
Floris Bruynooghe 30ca274a2a Different approach: add a PacketNumberSpace 2025-01-28 18:00:17 +01: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
Floris Bruynooghe 0f1df20413 Address ToDo about packet protection and 0rtt validation (#38)
This addresses 3 ToDos that don't actually change the code:
1. what path should be used to attempt to remove packet protection when
receiving the first packet?
  None. The extension has not been successfully negotiated
2. what path should be used for packet protection of an initial close?
None. Initial close is done before the handshake is completed and the
extension has not been negotiated.
3. 0-rtt multipath validations:
None: Section 7 of rfc9000 states that extensions must declare what
happens with 0-rtt transport parameters and the draft states that
`initial_max_path_id` must not be remembered. This is (to me) equivalent
to silently ignoring any 0-rtt params as what comes from finalizing the
handshake is used

All of this needs some review from someone else
2025-01-27 10:21:59 +01:00
Diva M b5a4f464cd progress in addressing some ToDos 2025-01-26 23:52:26 -05:00
Divma eaaeadabf0 update transport parameter for draft 12 (#37) 2025-01-26 22:56:48 -05:00
Divma af1b428d4e include path_id in packet protection (#36) 2025-01-24 11:29:06 -05:00
Divma 16f341524d create NewConnectionId with method instead of inlined code (#35)
* create NewConnectionId with method instead of inlined code

* apply related lint
2025-01-24 11:08:42 -05:00
Divma 37df8d0c24 Associate each ConnectionId to a PathId (#31) 2025-01-16 11:19:01 -05:00
Diva M 24d33a7103 add saturating_add for PathId 2025-01-16 10:31:14 -05:00
Floris Bruynooghe b6b7312907 Add a test that check multipath gets negotiated properly. (#30) 2025-01-16 09:36:01 -05:00