summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | proto: Pass the cwnd params to the conflux message handler.Gabriela Moldovan2025-09-043-2/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These will be used for validating SWITCH cells. Part of #2031
| * | | | | | proto: Pass owned CongestionWindowParams to CongestionControl::new.Gabriela Moldovan2025-09-043-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer need to clone `CongestionWindowParams` now that it implements `Copy`. Resolves a clippy warning.
| * | | | | | proto: Derive Copy for CongestionWindowParams.Gabriela Moldovan2025-09-041-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | These will likely always just be a collection of integers (lightweight to copy).
* | | | | | Merge branch 'maybenot-triggers' into 'main'Nick Mathewson2025-09-0311-136/+384
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Circuit padding: note when cells are sent and received See merge request tpo/core/arti!3222
| * | | | | Whoops; let chains _still_ aren't stable in 1.85.Nick Mathewson2025-09-031-2/+1
| | | | | |
| * | | | | padding: Fix compilation with padding disabled.Nick Mathewson2025-09-031-1/+16
| | | | | |
| * | | | | padding cleanup: use QueuedCellPaddingInfo one more place.Nick Mathewson2025-09-031-5/+3
| | | | | |
| * | | | | padding: Report when we have received padding or data.Nick Mathewson2025-09-023-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | (This was so much easier than reporting on the send side.)
| * | | | | padding: Report when outbound cells are flushed.Nick Mathewson2025-09-022-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This is what required us to stick a padding controller handle in each CircEnt, and what required us to accompany each queued cell with a QueuedPaddingCellInfo. Ouch!)
| * | | | | padding: Give CircEnt in a Channel a handle for the PaddingController.Nick Mathewson2025-09-027-99/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires some annoying plumbing to make sure that the right types wind up in the right places.
| * | | | | proto: Turn CircEnt variants into struct-like format.Nick Mathewson2025-09-022-29/+72
| | | | | | | | | | | | | | | | | | | | | | | | (I'm about to add more fields.)
| * | | | | padding: Install a PaddingController in each circuit.Nick Mathewson2025-09-023-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | Also, use it to report that we have queued normal data.
| * | | | | padding: track which hop each queued cell is for.Nick Mathewson2025-09-026-31/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll need this so that we can tell the right padding machine(s) which of them just had a queue flush. This is not yet 100% done; the unfinished parts are marked with XXXXs.
* | | | | | Merge branch 'fix-congestion-signals' into 'main'opara2025-09-031-1/+3
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-proto: Fix bug in `congestion_signals` Closes #2128 See merge request tpo/core/arti!3223
| * | | | | tor-proto: fix bug in `congestion_signals`Steven Engler2025-09-031-1/+3
|/ / / / /
* | | | | Merge branch 'randomize-seeds' into 'main'Jim Newsome2025-09-038-16/+31
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | shadow tests: mitigate flakiness See merge request tpo/core/arti!3227
| * | | | | shadow CI: decrease onion service xfer sizesJim Newsome2025-09-037-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This partially reverts b223d504f6a033600c61e81a0b0a0eea3e43fd44 from arti!3047. Increasing the transfer size exacerbates the failure rate of the onion services too much. We should increase it again once arti#2109 is resolved.
| * | | | | shadow tests: use a randomized simulation seedJim Newsome2025-09-031-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mitigates #2154 The determinism inside CI is of limited usefulness since a CI seed generally won't perfectly replicate the behavior when debugging locally. Arguably it's a feature that when there's some flakiness it does replicate inside of CI, but it leads to some confusion about blame (e.g. as in #2154 where an unrelated MR probably perturbed the PRNG to trigger some pre-existing flakiness), and means that we can't just rerun the job if we get really unlucky. i.e. even if we set a lower success threshold, a sufficiently unlucky MR can still fail and keep failing as long as it runs with the same seed.
* | | | | | Merge branch 'hsc-docs' into 'main'gabi-2502025-09-031-0/+8
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | doc/hsc.md: Mention that `--batch` suppresses the prompting. See merge request tpo/core/arti!3215
| * | | | | | doc/hsc.md: Mention that `--batch` suppresses the prompting.Gabriela Moldovan2025-09-031-0/+8
| | |_|/ / / | |/| | | |
* | | | | | Merge branch 'tor-dircommon' into 'main'Ian Jackson2025-09-0312-35/+234
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | tor-dircommon: Initial commit See merge request tpo/core/arti!3205
| * | | | | tor-dircommon: Update to 0.34.0Clara Engler2025-09-024-7/+7
| | | | | |
| * | | | | tor-dircommon: Add dirports field to authorityClara Engler2025-09-022-18/+107
| | | | | |
| * | | | | tor-dircommon: Initial commitClara Engler2025-09-0212-17/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit initializes the `tor-dircommon` crate: A crate serving the purpose to form an umbrella for the lowest common denominator primitives found across crates implementing (parts of) the directory specification. For now, the only such primitive is the found within the `authority` module, which has been refactored from `tor-dirmgr` into this crate, alongside additional getter functions due to the lack of `pub(crate)` in this context. In the future, we may move further primitives away from `tor-dirmgr` into `tor-dircommon`.
* | | | | | Merge branch 'the-bell-tolls-for-once_cell' into 'main'wesleyac2025-09-033-21/+3
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | various crates: Updated MSRV TODOs for `once_cell` removal See merge request tpo/core/arti!2953
| * | | | | arti-client: Modified MSRV TODO for `once_cell` removalhashcatHitman2025-08-201-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Shortened the TODO added in a42413626abb57ad5610c8a73bfdd09ac68ac472 in the style of [this maintainer request] for consistency. [this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719 Signed-off-by: hashcatHitman <[email protected]>
| * | | | | tor-circmgr: Modified MSRV TODOs for `once_cell` removalhashcatHitman2025-08-201-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Shortened the TODO added in e9ef7bea96c2860fa81d03e8d8da2605d0661425 in the style of [this maintainer request] for consistency. [this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719 Signed-off-by: hashcatHitman <[email protected]>
| * | | | | tor-hsservice: Modified MSRV TODO for `once_cell` removalhashcatHitman2025-08-201-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Shortened the TODO added in cad6f9054a5ff4d16e953fd4617d3893639deeef in the style of [this maintainer request] for consistency. [this maintainer request]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2953#note_3197719 Signed-off-by: hashcatHitman <[email protected]>
* | | | | | Merge branch 'parse2-type-error-2' into 'main'Ian Jackson2025-09-032-1/+39
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: parse2: Produce better error messages from bad field types See merge request tpo/core/arti!3220
| * | | | | | Produce better error messages from bad field types (fmt)Ian Jackson2025-09-022-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Worsify formatting as demanded by rustfmt.
| * | | | | | Produce better error messages from bad field typesIan Jackson2025-09-022-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, this diff > --- a/crates/tor-netdoc/src/parse2/poc/netstatus.rs > +++ b/crates/tor-netdoc/src/parse2/poc/netstatus.rs > @@ -24,5 +24,4 @@ pub enum NdaNetworkStatusVersion { > /// `params` value > #[derive(Clone, Debug, Default, Deftly)] > -#[derive_deftly(ItemValueParseable)] > #[non_exhaustive] > pub struct NdiParams { gives the errors below. So the first reported error points to the errant field, albeit with the slightly mendacious phrasing "this call". Previously there was only the 2nd message. Disagnosing that requires hunting through the document struct looking for fields of the right type, which can be seriously awkward when there are type aliases involved as there often are in tor-netdoc. > error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied > --> crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10 > | > 27 | #[derive(Deftly, Clone, Debug)] > | ^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams` > ... > 55 | pub params: NdiParams, > | ------ required by a bound introduced by this call > | > = help: the following other types implement trait `parse2::traits::ItemValueParseable`: > () > (T0, T1) > (T0, T1, T2) > (T0, T1, T2, T3) > (T0, T1, T2, T3, T4) > (T0, T1, T2, T3, T4, T5) > (T0, T1, T2, T3, T4, T5, T6) > (T0, T1, T2, T3, T4, T5, T6, T7) > and 16 others > note: required by a bound in `parse2::multiplicity::ItemSetMethods::check_item_value_parseable` > --> crates/tor-netdoc/src/parse2/multiplicity.rs:109:59 > | > 109 | fn check_item_value_parseable(self) where Self::Each: ItemValueParseable {} > | ^^^^^^^^^^^^^^^^^^ required by this bound in `ItemSetMethods::check_item_value_parseable` > > error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied > --> crates/tor-netdoc/src/parse2/derive.rs:438:34 > | > 438 | let item = ItemValueParseable::from_unparsed(item)?; > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams` > | > ::: crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10 > | > 27 | #[derive(Deftly, Clone, Debug)] > | ------ in this derive macro expansion > | > = help: the following other types implement trait `parse2::traits::ItemValueParseable`: > () > (T0, T1) > (T0, T1, T2) > (T0, T1, T2, T3) > (T0, T1, T2, T3, T4) > (T0, T1, T2, T3, T4, T5) > (T0, T1, T2, T3, T4, T5, T6) > (T0, T1, T2, T3, T4, T5, T6, T7) > and 16 others > = note: this error originates in the macro `derive_deftly_template_NetdocParseable` which comes from the expansion of the derive macro `Deftly` (in Nightly builds, run with -Z macro-backtrace for more info)
| * | | | | | tor-netdoc: parse2: Bind a `selector` localIan Jackson2025-09-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We're going to reuse this.
* | | | | | | Merge branch 'maybenot-backend' into 'main'Nick Mathewson2025-09-027-2/+1414
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | / / / | | |_|/ / / | |/| | | | Define and implement a backend padding API, based on maybenot. See merge request tpo/core/arti!3185
| * | | | | padding: document when we set next_scheduled_wakeupNick Mathewson2025-09-021-0/+3
| | | | | |
| * | | | | padding: Call hops "target" rather than "final" for clarityNick Mathewson2025-09-021-4/+6
| | | | | |
| * | | | | padding: s/can_bypass/is_bypassable/ for clarity.Nick Mathewson2025-09-022-10/+11
| | | | | |
| * | | | | padding: Clarify next_expiration vs next_scheduled_wakeupNick Mathewson2025-09-021-4/+9
| | | | | |
| * | | | | padding: Several comment/style fixes from @gabi-250Nick Mathewson2025-09-024-8/+11
| | | | | |
| * | | | | Define and implement a backend padding API, based on maybenot.Nick Mathewson2025-09-027-2/+1400
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are incomplete pieces, marked with "TODO circpad". There is no integration into the circuit reactor code yet. Part of #63
* | | | | Merge branch 'chan-handshake-refactor' into 'main'David Goulet2025-09-021-121/+262
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | proto: Refactor channel handshake code for upcoming relay handshake See merge request tpo/core/arti!3182
| * | | | proto: Move is_authenticating() into the base initiator handshake traitDavid Goulet2025-09-021-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initiator always know if they will authenticate or not. Responder is different as a relay doesn't know until the end of the handshake if it is responding to a relay or a client. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Various channel handshake fixesDavid Goulet2025-09-021-21/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are following the review of MR 3182. They are put in a single commit because the git absorb has a large amount of conflicts on rebase and this commit allows the reviewers to see what happened. The base branch was rebased on main due to the need for 3184. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Fix unit tests after changesDavid Goulet2025-09-021-5/+5
| | | | | | | | | | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Add a helper to calculate the handshake clock skewDavid Goulet2025-09-021-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the spirit of avoidin code duplication. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Add a channel initiator handshake base traitDavid Goulet2025-09-021-76/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All initiator handshake will implement this in order to get access to the helper function to receive the relay responder cells. Relay will implement this in future commits. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Introduce a ChannelBaseHandshake traitDavid Goulet2025-09-021-37/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client and relay handhsake share a lot of code because they both send/recv the same cells, just handles them differently for verification. This is the base trait for all handshake implementing basic getters and VERSIONS cell handling. This will allow the RelayInitiatorHandshake and RelayResponderHandshake to use this common code. See, traits are fun. Win-win-win. Signed-off-by: David Goulet <[email protected]>
| * | | | proto: Put in a ChannelFrame<T> into the client handshakeDavid Goulet2025-09-021-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ClientInitiatorHandshake holds a "tls" sink but the very first thing we do is transform it to a ChannelFrame<T>. Instead, just store the frame to the object directly so we can then use a channel frame uniformily accross its lifetime. This will be useful for the future refactoring paving the way for relay channel authentication. Signed-off-by: David Goulet <[email protected]>
* | | | | Merge branch 'rustsec-2025-0055' into 'main'Nick Mathewson2025-09-0214-48/+26
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Require tracing-subscriber 0.3.20 See merge request tpo/core/arti!3221
| * | | | | Require tracing-subscriber 0.3.20Nick Mathewson2025-09-0214-48/+26
| |/ / / / | | | | | | | | | | | | | | | Fixes RUSTSEC-2025-0055.
* | | | | Merge branch 'const-assert-cleanly' into 'main'Nick Mathewson2025-09-026-11/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | various crates: Switch to "assert in const" pattern See merge request tpo/core/arti!3217