summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge branch 'more-tunnel-id' into 'main'David Goulet2025-06-163-10/+29
|\| | | | |/ / |/| | | | | | | | tor-proto: Fix up the circuit's tunnel ID after inserting into conflux set. See merge request tpo/core/arti!3050
| * | tor-proto: Update doc links post-renaming.Gabriela Moldovan2025-06-131-1/+1
| | |
| * | tor-proto: Group conflux imports for consistency.Gabriela Moldovan2025-06-131-2/+1
| | |
| * | tor-proto: Rename function to clarify transition to a new tunnel (fmt).Gabriela Moldovan2025-06-132-2/+9
| | |
| * | tor-proto: Rename function to clarify transition to a new tunnel.Gabriela Moldovan2025-06-132-3/+4
| | |
| * | tor-proto: Fix up the circuit's tunnel ID after inserting into conflux set.Gabriela Moldovan2025-06-132-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | When adding new circuits to an existing tunnel, we need to fixup the internal TunnelId of those circuits (otherwise they will have the TunnelId of the old single-path "tunnel" reactor they were extracted from using `CtrlCmd::ShutdownAndReturnCircuit`). Spotted while writing some tests.
| * | tor-proto: Give ConfluxSet a TunnelId for logging purposes.Gabriela Moldovan2025-06-132-4/+14
|/ /
* | Merge branch 'tunnel-ids' into 'main'gabi-2502025-06-1210-86/+164
|\ \ | |/ |/| | | | | tor-proto: Assign tunnels unique IDs, update logs to include these IDs See merge request tpo/core/arti!3048
| * tor-proto: Use TunnelScopedCircId instead of UniqId for logging.Gabriela Moldovan2025-06-124-10/+12
| |
| * tor-proto: Add an identifier for a circuit within a tunnel.Gabriela Moldovan2025-06-121-0/+27
| | | | | | | | | | | | This type will help produce better logs (logging just the circuit ID would make it impossible to correlate said circuit with the tunnel it belongs to).
| * tor-proto: Assign a separate identifier to the tunnel reactor.Gabriela Moldovan2025-06-122-20/+17
| | | | | | | | | | | | The plan is to reuse this identifier for the future tunnel reactor updates channel (a channel for sending tunnel status updates to a central consumer).
| * tor-proto: Log channel, circuit, stream identifiers as structured fields.Gabriela Moldovan2025-06-129-72/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the `tor-proto` logs to not be prefixed with a channel/circuit/stream ID, but rather to have these IDs attached to the log as structured fields. This change is in preparation for the switch to using `TunnelId`s in the tunnel reactor instead of circuit `UniqId`s. The reason for the change to use structured fields is because future logs will likely need to log the `UniqId`s of the circuits in a tunnel, which will need to either be formatted somehow in the logs, or logged as a structured field (the latter seems like the better option, hence this preparatory change). IMO we should favor structured fields over formatted strings in the logs in general, but that is a bigger project, so I am only doing a spot fix for now.
| * tor-proto: Add a new identifier type for tunnels.Gabriela Moldovan2025-06-121-0/+22
|/ | | | | | | | | | Currently, a tunnel is uniquely identified by the `UniqId` of the first circuit added to the tunnel. This works, but the double-meaning of the `UniqId` is bound to cause confusion in the future (because it blurs the distinction between tunnels and circuits). This introduces a new `TunnelId` type which will replace `UniqId` in the tunnel reactor.
* Merge branch 'gsoc-list' into 'main'gabi-2502025-06-1229-13/+616
|\ | | | | | | | | arti: Add keys list and keys list-keystores See merge request tpo/core/arti!3023
| * arti: Add keys list and keys list-keystoreshjrgrn2025-06-1229-13/+616
|/
* Merge branch 'conflux-check-cc' into 'main'David Goulet2025-06-118-53/+102
|\ | | | | | | | | tor-proto: Validate cc algorithm of the join point See merge request tpo/core/arti!3046
| * tor-proto: Write test for conflux cc algorithm validation.Gabriela Moldovan2025-06-111-12/+20
| |
| * tor-proto: Make conflux test CircParams configurable (fmt).Gabriela Moldovan2025-06-111-10/+7
| |
| * tor-proto: Make conflux test CircParams configurable.Gabriela Moldovan2025-06-111-5/+7
| | | | | | | | | | We're about to add a test that involves circuits built using non-vegas `CircParams`.
| * tor-proto: Check we negotiated the right cc algorithm for conflux.Gabriela Moldovan2025-06-112-6/+25
| |
| * tor-proto: Simplify leg_is_valid() implementation.Gabriela Moldovan2025-06-111-10/+10
| | | | | | | | | | | | This is about to become slightly more complex (we need to add a check for the cc algorithm of the last hop). This refactoring is in preparation for that.
| * tor-proto: Add an accessor for the cc algorithm.Gabriela Moldovan2025-06-113-4/+27
| | | | | | | | | | | | Conflux is only supported when prop324 congestion control is enabled, so we need an accessor for the cc algorithm of a given circuit hop in order for the conflux code to be able to check *which* cc algorithm is in use.
| * tor-proto: Remove no-longer needed clone()s.Gabriela Moldovan2025-06-114-7/+7
| | | | | | | | | | | | This doesn't really change anything, but removing the `.clone()` makes it a bit more obvious that copying the `*Params` is a lightweight operation.
| * tor-proto: Derive Copy for FixedWindowParams.Gabriela Moldovan2025-06-111-1/+1
| |
| * tor-proto: Derive Copy for VegasParams.Gabriela Moldovan2025-06-111-2/+2
|/
* Merge branch 'conflux-todos2' into 'main'David Goulet2025-06-114-44/+102
|\ | | | | | | | | tor-proto: Address a handful of conflux TODOs See merge request tpo/core/arti!3045
| * tor-proto: Remove TODO about keeping empty conflux tunnel alive.Gabriela Moldovan2025-06-111-2/+0
| | | | | | | | | | We don't plan to implement resumption any time soon, so let's just remove the TODO for now.
| * tor-proto: Do not allow incoming streams on multipath tunnels.Gabriela Moldovan2025-06-111-13/+66
| | | | | | | | As mentioned in #2002, we don't yet support conflux for onion services.
| * tor-proto: Remove unnecessary TODO(conflux).Gabriela Moldovan2025-06-111-1/+2
| | | | | | | | | | It is the responsibility of the caller to wait until at least one of the legs completes the handshake.
| * tor-proto: Address TODO about rejecting conflux cells on non-conflux circuits.Gabriela Moldovan2025-06-112-2/+34
| |
| * tor-proto: Remove TODO about SWITCH validation.Gabriela Moldovan2025-06-111-2/+0
| | | | | | | | | | This will be covered by #2031 (we'll implement prop349 as part of the p112 work).
| * tor-proto: Remove dead code from test.Gabriela Moldovan2025-06-111-24/+0
| | | | | | | | | | | | All of this is not needed, the actual test is in the loop below. (I accidentally left this in after refactoring the test in my last MR)
* | Merge branch 'new-rusqlite' into 'main'opara2025-06-112-17/+8
|\ \ | |/ |/| | | | | Bump rusqlite dependency to 0.36.0 See merge request tpo/core/arti!3041
| * Bump rusqlite dependency to 0.36.0Nick Mathewson2025-06-102-17/+8
| |
* | Merge branch 'hs-interval-min' into 'main'Nick Mathewson2025-06-101-1/+1
|\ \ | | | | | | | | | | | | tor-netdir: decrease minimum hsdir_interval from 30 to 5 See merge request tpo/core/arti!3042
| * | tor-netdir: decrease minimum hsdir_interval from 30 to 5Jim Newsome2025-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This matches the spec change: <https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/406> Progress on: <https://gitlab.torproject.org/tpo/core/chutney/-/issues/40038>
* | | Merge branch 'hickory-upgrade' into 'main'Nick Mathewson2025-06-103-6/+16
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | Upgrade dependency to hickory-proto 0.25.2 Closes #1982 See merge request tpo/core/arti!3038
| * | Remove yoke from downgrade-dependencies.Nick Mathewson2025-06-101-1/+0
| | |
| * | Upgrade dependency to hickory-proto 0.25.2Nick Mathewson2025-06-092-5/+16
| | | | | | | | | | | | Closes #1982.
* | | Merge branch 'circhop-refactor' into 'main'gabi-2502025-06-108-578/+1636
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: Write conflux tests, fix bugs, address TODOs Closes #2011 See merge request tpo/core/arti!3034
| * | | tor-proto: Do not use fallback cc algorithm when testing.Gabriela Moldovan2025-06-101-3/+7
| | | | | | | | | | | | | | | | For conflux, we need to test against vegas.
| * | | tor-proto: Get rid of unnecessary boolean param.Gabriela Moldovan2025-06-103-33/+15
| | | |
| * | | tor-proto: Link to ticket about forcing leg switching periodically.Gabriela Moldovan2025-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | I think this is going to be more of a tuning matter, so it's probably best tackled after we have a working conflux implementation.
| * | | tor-proto: Link to ticket about making conflux UX configurable.Gabriela Moldovan2025-06-101-1/+1
| | | |
| * | | tor-proto: Shut down the reactor on conflux handshake proto violation.Gabriela Moldovan2025-06-102-24/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of only shutting down the leg on which the protocol violation occurred, it seems better to shut down the entire tunnel (because the other endpoint, i.e. the exit, is the cause of the violation, so we should probably avoid using it entirely).
| * | | tor-proto: Convert some TODO(conflux)s to TODO(#2031).Gabriela Moldovan2025-06-102-3/+3
| | | |
| * | | tor-proto: Add tests for conflux handling in the circuit reactor.Gabriela Moldovan2025-06-102-1/+755
| | | |
| * | | tor-proto: Pass CircParameters to newcirc_ext (fmt).Gabriela Moldovan2025-06-101-2/+18
| | | |
| * | | tor-proto: Pass CircParameters to newcirc_ext.Gabriela Moldovan2025-06-101-4/+4
| | | |
| * | | tor-proto: Make the test circuit UniqId configurable.Gabriela Moldovan2025-06-101-3/+5
| | | | | | | | | | | | | | | | The `UniqId` matters for multipath tunnels.