summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | tor-proto: Derive Display for RemoveLegReason.Gabriela Moldovan2025-06-101-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | This will be needed for logging purposes.
| * | | | | tor-proto: Fix typo in comment.Gabriela Moldovan2025-06-101-1/+1
| | | | | |
| * | | | | tor-proto: Remove single-path check from primary_leg_mut.Gabriela Moldovan2025-06-101-3/+4
| | | | | |
| * | | | | tor-proto: Also count the *existing* unlinked legs.Gabriela Moldovan2025-06-102-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `num_legs` keeps track of the number of legs that have an in-progress conflux handshake. This updates the calculation to count the "initial" leg of the tunnel too (because when converting a single-path reactor to a multi-path one, the existing, "initial" circuit needs to complete the conflux handshake too).
| * | | | | tor-proto: Allow LINK to be sent regardless of conflux pendingness.Gabriela Moldovan2025-06-102-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we don't make an exception for LINK cells, we'll never be able to send them, and the circuits will be forever "pending conflux handshake".
| * | | | | tor-proto: Ensure the existing leg gets a ConfluxMsgHandler.Gabriela Moldovan2025-06-101-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug where we'd fail to set the `ConfluxMsgHandler` for the initial leg of the `ConfluxSet`, when converting the set from a single-path set to a multi-path one.
| * | | | | tor-proto: Relax conflux set leg validation.Gabriela Moldovan2025-06-101-47/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the replacement rules from prop354. Except we can't actually enforce the replacement rules at this level (they'll have to be enforced by the caller).
| * | | | | tor-proto: Update TODO to say it's about conflux tuning.Gabriela Moldovan2025-06-101-3/+5
| | | | | |
| * | | | | tor-proto: Downgrade a few more TODO(conflux) to TODO.Gabriela Moldovan2025-06-102-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to eventually tackle all of these, but none of them are critical, so I propose we downgrade them to `TODO`.
| * | | | | tor-proto: Ensure all conflux legs share the same join point stream map.Gabriela Moldovan2025-06-102-6/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I really dislike that we're exposing the stream map this way. Ideally we'd have some way of sharing the stream maps without exposing the `StreamMap` in `reactor::conflux`. Closes #2011
| * | | | | tor-proto: Add a TODO about a further refactoring.Gabriela Moldovan2025-06-101-0/+2
| | | | | |
| * | | | | tor-proto: Fixup CircHop docs post-refactoring.Gabriela Moldovan2025-06-101-5/+6
| | | | | |
| * | | | | tor-proto: Remove now-addressed TODO.Gabriela Moldovan2025-06-101-4/+0
| | | | | |
| * | | | | tor-proto: Introduce CircHopList, hide CircHop internals.Gabriela Moldovan2025-06-103-244/+399
| | | | | | | | | | | | | | | | | | | | | | | | Most of this is code motion, I recommend reviewing with `--color-moved`.
| * | | | | tor-proto: Move CircHop to a separate module.Gabriela Moldovan2025-06-102-163/+187
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps hide the `CircHop` internals, and is the first step towards providing a safer API that aims to reduce contention and prevent deadlocking on the stream map mutex. This change is also in preparation for implementing special handling for the join point of a conflux tunnel (which will involve adding a new `CircHop` API for sharing the stream map of another `CircHop`). I recommend reviewing this diff with `--color-moved`.
* | | | | Merge branch 'circparam_cleanup' into 'main'Nick Mathewson2025-06-1012-109/+214
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial refactoring on CircParameters Closes #1967 and #1968 See merge request tpo/core/arti!3021
| * | | | | HopSettings: Note relay usage.Nick Mathewson2025-06-101-0/+3
| | | | | |
| * | | | | Avoid a bug with HopSettingsNick Mathewson2025-06-102-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When negotiation won't occur, we need to represent the fact by disabling any settings that would depend on negotiation. Otherwise we'll wind up with the client thinking everything was supported, and the relay thinking that nothing is.
| * | | | | Clarify HopSettings documentation.Nick Mathewson2025-06-101-3/+7
| | | | | |
| * | | | | Renamed NegotiatedHopSettings -> HopSettingsNick Mathewson2025-06-104-36/+33
| | | | | |
| * | | | | Clarify documentation for from_params_and_caps.Nick Mathewson2025-06-101-1/+6
| | | | | |
| * | | | | Clarify per-circuitness of CircParametersNick Mathewson2025-06-101-1/+7
| | | | | |
| * | | | | proto: Rename a pair of internal functionsNick Mathewson2025-06-103-16/+14
| | | | | |
| * | | | | Add a semver file for tor-proto changesNick Mathewson2025-06-101-0/+4
| | | | | |
| * | | | | proto: Refactor cc fallback.Nick Mathewson2025-06-104-19/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fallback CC algorithm is _always_ fixed-window, and we should only use it when the selected CC algorithm is not supported.
| * | | | | Move responsibility for choosing extensions into tor-protoNick Mathewson2025-06-103-25/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now tor-circmgr no longer needs to check which Protover capabilities are enabled, or construct a separate CircParameters for each hop. Instead, tor-proto decides whether to use the fallback CC mode, based on whether the target supports FLOWCTRL_CC. Closes #1967.
| * | | | | proto: Move NegotiatedHopSettings to a higher levelNick Mathewson2025-06-108-61/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We will construct this object based on the circuit parameters _and_ on the target's supported protocol versions, so we need to do so when we have both pieces of info.
| * | | | | proto: Split CircParameters and NegotiatedHopSettingsNick Mathewson2025-06-106-32/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One type will now represent _the kind of hop we are asking tor-proto to negotiate_; the other will represent _the state of such negotiation_. This doesn't simplify the code much yet, but it will be helpful as we add more and more negotiable settings. Part of #1967
* | | | | | Merge branch 'yes-we-diff' into 'main'Nick Mathewson2025-06-101-2/+0
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Remove comment saying we do not implement consensus diffs See merge request tpo/core/arti!3039
| * | | | | Remove comment saying we do not implement consensus diffsNick Mathewson2025-06-101-2/+0
|/ / / / /
* | | | | Merge branch 'ticket1647' into 'main'gabi-2502025-06-102-5/+23
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | Un-pin version of typed-index-collections Closes #1647 See merge request tpo/core/arti!3037
| * | | | Un-pin version of typed-index-collectionsNick Mathewson2025-06-092-5/+23
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Now that our MSRV has been updated to 1.83, we should be able to get away with this. Closes #1647. Reverts !2471.
* | | | Merge branch 'fix-mockexecutor-spawn-blocking' into 'main'wesleyac2025-06-091-38/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-rtmock: Use subthread_spawn for spawn_blocking. Closes #2033 See merge request tpo/core/arti!3036
| * | | | tor-rtmock: Use subthread_spawn for spawn_blocking.Wesley Aptekar-Cassels2025-06-091-38/+6
| | | | | | | | | | | | | | | | | | | | Fixes: #2033
* | | | | Merge branch 'criterion-fix-aarch64' into 'main'Nick Mathewson2025-06-099-19/+54
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | proto: Let benchmarks build correctly on non-intel Closes #2029 See merge request tpo/core/arti!3032
| * | | | Run cargo sort on tor-protoNick Mathewson2025-06-091-7/+15
| | | | |
| * | | | proto: Let benchmarks build correctly on non-intelNick Mathewson2025-06-099-26/+53
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | (criterion-cycles-per-byte, though quite helpful, doesn't work on non-intel CPUs) Closes #2029.
* | | | Merge branch 'nightly-ice' into 'main'gabi-2502025-06-093-5/+5
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ci: Unpin nightly version Closes #2018 See merge request tpo/core/arti!3035
| * | | | tor-circmgr: fix docs failureSteven Engler2025-06-091-2/+2
| | | | |
| * | | | tor-llcrypto: fix feature name typoSteven Engler2025-06-091-1/+1
| | | | |
| * | | | Revert "CI: pin to a slightly older nightly to work around ICE"Steven Engler2025-06-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 586d57267d3a4fa698911b40d8799d5d3f248872. This is fixed in the latest rust/clippy nightly; tested with: rustc 1.89.0-nightly (6ccd44760 2025-06-08) ``` RUSTUP_TOOLCHAIN=nightly cargo clippy --tests -p tor-basic-utils ```
* | | | | Merge branch 'flow-ctrl' into 'main'David Goulet2025-06-096-3/+191
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | tor-cell: Add XON/XOFF cells See merge request tpo/core/arti!3031
| * | | | tor-proto: handle XON/XOFF messages in conflux seqno logicSteven Engler2025-06-091-1/+2
| | | | |
| * | | | tor-cell: add `Xon`/`Xoff` cellsSteven Engler2025-06-093-1/+185
| | | | |
| * | | | tor-cell: add experimental `flowctl-cc` featureSteven Engler2025-06-092-1/+4
| |/ / /
* | | | Merge branch 'rtcompat-rustls' into 'main'wesleyac2025-06-094-244/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-rtcompat: Remove rustls dependency in favor of futures-rustls See merge request tpo/core/arti!2943
| * | | | maint/downgrade_dependencies: Include `paste` crate for updateparazyd2025-06-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the removal of the hard `rustls` dependency and preferring `futures-rustls`, then `paste` crate gets downgraded to a too-low of a version so we should update it for our code to be able to compile correctly.
| * | | | tor-rtcompat: Remove rustls dependency in favor of futures-rustlsparazyd2025-06-063-243/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | futures-rustls provides and re-exports rustls and thus the rustls dependency is redundant. Additionally, this removes `aws-lc-rs` and its inherent dependencies from `Cargo.lock` and the entire project since they've been included because the rustls dependency did not use `default-features = false` and rustls by default now depends on `aws-lc-rs` as its crypto engine.
* | | | | Merge branch 'less-noisy-pick-n-relays' into 'main'David Goulet2025-06-091-3/+4
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | NetDir::pick_n_relays: avoid some unwarranted warnings See merge request tpo/core/arti!3028
| * | | | NetDir::pick_n_relays: avoid some unwarranted warningsJim Newsome2025-06-051-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we logged a warning whenever `choose_multiple_weighted` returns `Ok(iter)`, whenever `iter` contains fewer relays than requested. However, this is expected behavior of `choose_multiple_weighted` if the filtered list of relays doesn't have the requested number of relays, in which case it should return all of the relays in the filtered list. In particular, this condition occurs regularly in test networks when looking for candidate relays to add to the potential guard set while excluding those already in the potential guard set. We still warn if the returned list is fewer than requested, *and* fewer than available in the filtered list.