| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | | proto: Use select not join | Gabriela Moldovan | 2025-10-21 | 1 | -4/+5 | |
| | | | | | | | | | | | I used `futures::join` by mistake: the intention here is to have `RelayReactor` exit when either one of the fwd/bwd reactors exits. | |||||
| * | | proto: Emphasize that we think 2 reactors are better for perf | Gabriela Moldovan | 2025-10-21 | 1 | -4/+8 | |
| | | | ||||||
| * | | proto: Add a TODO about splitting out fields out of BackwardReactor | Gabriela Moldovan | 2025-10-21 | 1 | -0/+9 | |
| | | | ||||||
| * | | proto: Move StreamMap split closer to cell_tx docs | Gabriela Moldovan | 2025-10-21 | 1 | -3/+5 | |
| | | | | | | | | | This also clarifies why we reroute cells to `BackwardReactor`. | |||||
| * | | proto: s/inbound_rx/input for consistency with other reactors | Gabriela Moldovan | 2025-10-21 | 1 | -2/+2 | |
| | | | | | | | | | | | Things will get very confusing if every reactor uses different variable names for this, so I am renaming it back to input. | |||||
| * | | proto: Move channel provider to ForwardReactor | Gabriela Moldovan | 2025-10-21 | 3 | -18/+18 | |
| | | | | | | | | | | | | | | | | | The channel provider is used to request outgoing channels from the `ChanMgr` in response to `EXTEND`/`EXTEND2` cells, so it belongs in the `ForwardReactor`. (This was leftover from the old circ reactor architecture) | |||||
| * | | proto: Remove no longer needed Mutex | Gabriela Moldovan | 2025-10-21 | 1 | -7/+5 | |
| | | | ||||||
| * | | proto: Remove stray words from docs | Gabriela Moldovan | 2025-10-21 | 1 | -1/+1 | |
| | | | ||||||
| * | | proto: Disambiguate "channel" and "stream" | Gabriela Moldovan | 2025-10-21 | 3 | -52/+52 | |
| | | | ||||||
| * | | proto: Say why there are two reactors instead of just one | Gabriela Moldovan | 2025-10-21 | 1 | -0/+23 | |
| | | | ||||||
| * | | proto: Clarify why we may need to forward cells to BackwardReactor | Gabriela Moldovan | 2025-10-21 | 1 | -2/+3 | |
| | | | ||||||
| * | | proto: Fix docs post-renaming | Gabriela Moldovan | 2025-10-21 | 1 | -3/+3 | |
| | | | ||||||
| * | | proto: Avoid calling BackwardReactor "primary" | Gabriela Moldovan | 2025-10-21 | 1 | -5/+1 | |
| | | | ||||||
| * | | proto: Replace select_biased! with PollAll | Gabriela Moldovan | 2025-10-21 | 1 | -32/+124 | |
| | | | | | | | | | | | This is the first step towards parallelizing stream reads and writes. | |||||
| * | | proto: Replace placeholder () with stream id and msg | Gabriela Moldovan | 2025-10-21 | 3 | -8/+16 | |
| | | | | | | | | | | | This makes it a bit clearer that `cell_rx` is for moving stream data between `ForwardReactor` and `BackwardReactor`. | |||||
| * | | proto: Replace inbound/outbound terminology | Gabriela Moldovan | 2025-10-21 | 2 | -42/+42 | |
| | | | | | | | | | The forward/backward terminology is clearer. | |||||
| * | | proto: Write a debug log when the reactor starts | Gabriela Moldovan | 2025-10-21 | 1 | -2/+12 | |
| | | | ||||||
| * | | proto: Restrict the visibility of BackwardReactor | Gabriela Moldovan | 2025-10-21 | 1 | -3/+3 | |
| | | | | | | | | | | | BackwardReactor is not meant to be used directly (the channel reactor is supposed to use the `RelayReactor` wrapper instead). | |||||
| * | | proto: Move BackwardReactor to its own module | Gabriela Moldovan | 2025-10-21 | 2 | -443/+466 | |
| | | | | | | | | | | | `BackwardReactor` now exists alongside `ForwardReactor`, to make it clearer that they are siblings. | |||||
| * | | proto: Add a constructor for BackwardReactor | Gabriela Moldovan | 2025-10-21 | 1 | -16/+54 | |
| | | | | | | | | | | | We are about to need this, because BackwardReactor will be moved to another module, and we want to keep its internals private. | |||||
| * | | proto: Remove no-longer needed Runtime argument | Gabriela Moldovan | 2025-10-21 | 1 | -13/+5 | |
| | | | | | | | | | | | | | | | This is no longer used, and not having it makes the code less generic and easier to read, so I'm removing it for now. If we ever need it again, we can add it back. | |||||
| * | | proto: Replace RelayReactor type-alias with struct | Gabriela Moldovan | 2025-10-21 | 1 | -23/+32 | |
| | | | | | | | | | | | | | This is the first step towards making `ForwardReactor` and `BackwardReactor` be siblings (rather than being in a primary-subordinate relationship). | |||||
| * | | proto: Add spaces in docs to satisfy clippy | Gabriela Moldovan | 2025-10-21 | 1 | -3/+3 | |
| | | | ||||||
| * | | proto: Fix doc links post-refactoring | Gabriela Moldovan | 2025-10-21 | 2 | -3/+7 | |
| | | | ||||||
| * | | proto: Add a basic implementation for the relay reactor(s) | Gabriela Moldovan | 2025-10-21 | 2 | -37/+695 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This sketches out the "dual" relay reactor implementation, which has: * a `ForwardReactor`, which forwards cells from the client to the exit * a `BackwardReactor`, which deals with streams, control messages, and forwarding cells from the exit to the client The `BackwardReactor` is actually the "primary" reactor. It's the interface we expose to the channel reactor (via the `RelayReactor` type-alias), and it is in charge of spawning the "secondary" `ForwardReactor` task (via its `run()` function). See the module-level docs from `tor_proto::relay::reactor` for more details on the inner workings of the two reactors. This commit also adds the incomplete skeleton of the circuit extension logic. Once #1599 is implemented, we'll be able to uncomment the commented code, or replace it, depending on what the corresponding channel reactor APIs look like. | |||||
| * | | proto: Remove explicit returns to appease clippy | Gabriela Moldovan | 2025-10-21 | 1 | -6/+5 | |
| | | | ||||||
| * | | proto: Boilerplate for control command handling | Gabriela Moldovan | 2025-10-21 | 1 | -7/+29 | |
| | | | | | | | | | | | We only have one command right now (`Shutdown`), so this is mostly just boilerplate. | |||||
| * | | proto: s/channel_id/circ_id | Gabriela Moldovan | 2025-10-21 | 1 | -1/+1 | |
| | | | ||||||
| * | | proto: Replace DynTimeProvider with Runtime | Gabriela Moldovan | 2025-10-21 | 1 | -7/+9 | |
| | | | | | | | | | | | We will need a handle to the runtime to spawn the "secondary" reactor from the main one. | |||||
| * | | proto: Require that chan_provider is Send | Gabriela Moldovan | 2025-10-21 | 1 | -2/+2 | |
| | | | ||||||
| * | | proto: Use a broadcast channel for the shutdown handle | Gabriela Moldovan | 2025-10-21 | 1 | -5/+6 | |
| | | | | | | | | | | | | | There will soon be multiple systems that need to be notified of reactor shut down, so it's time to change this to a channel type with a cloneable receiver. | |||||
| * | | proto: Move StreamMpsc{Sender,Receiver} to stream module (fmt) | Gabriela Moldovan | 2025-10-21 | 5 | -5/+5 | |
| | | | ||||||
| * | | proto: Move StreamMpsc{Sender,Receiver} to stream module | Gabriela Moldovan | 2025-10-21 | 8 | -11/+18 | |
| | | | | | | | | | These will be shared with the relay code. | |||||
| * | | proto: remove extraneous blank line | Gabriela Moldovan | 2025-10-21 | 1 | -1/+0 | |
| | | | ||||||
| * | | proto: Remove silly TODO about outgoing chan mgmt | Gabriela Moldovan | 2025-10-21 | 1 | -3/+1 | |
| | | | | | | | | | | | | | The TODO is silly, because there will be no "outgoing channel map". There will be at most *one* outgoing channel, and that is represented by `Option<Outbound>`. | |||||
| * | | proto: Move hop settings into a shared module | Gabriela Moldovan | 2025-10-21 | 7 | -306/+328 | |
| | | | ||||||
| * | | proto: Move streammap out of the client module (fmt) | Gabriela Moldovan | 2025-10-21 | 3 | -5/+3 | |
| | | | ||||||
| * | | proto: Add TODO about future code motion | Gabriela Moldovan | 2025-10-21 | 1 | -0/+4 | |
| | | | ||||||
| * | | proto: Move halfstream under streammap | Gabriela Moldovan | 2025-10-21 | 3 | -3/+4 | |
| | | | | | | | | | | | | | That way we don't need to make halfstream `pub(crate)` (we only really use it in streammap, and in the client reactor, because of the `handle_msg()` kludge). | |||||
| * | | proto: Move streammap out of the client module | Gabriela Moldovan | 2025-10-21 | 10 | -13/+15 | |
| | | | ||||||
| * | | proto: Move dumb pipes to top-lvl stream module (fmt) | Gabriela Moldovan | 2025-10-21 | 7 | -7/+7 | |
| | | | ||||||
| * | | proto: Move dumb pipes to top-lvl stream module | Gabriela Moldovan | 2025-10-21 | 10 | -9/+10 | |
| | | | ||||||
| * | | proto: Give the relay reactor a stream map | Gabriela Moldovan | 2025-10-21 | 3 | -4/+12 | |
| | | | | | | | | | | | | | We need it for exits and leaky pipe. Part of #2212 | |||||
| * | | proto: Rename RelayReactor to BackwardReactor | Gabriela Moldovan | 2025-10-21 | 1 | -5/+15 | |
| |/ | | | | | | | | | "Backward" because this reactor will deal with relaying cells in the backward direction (from exit to client). In addition, this reactor will deal with stream handling and control/command messages. We will soon have another, "forward", reactor, relaying cells in the forward direction. | |||||
| * | Cleanup: Remove a variable rename | Nick Mathewson | 2025-10-20 | 1 | -4/+2 | |
| | | ||||||
| * | Refactor: turn circ_extensions_from_settings into a method | Nick Mathewson | 2025-10-20 | 3 | -63/+62 | |
| | | | | | Closes #2067. | |||||
| * | proto: Rename data cmd checkers to {Inbound,Outbound}DataCmdChecker (fmt) | Gabriela Moldovan | 2025-10-16 | 1 | -1/+2 | |
| | | ||||||
| * | proto: Rename data cmd checkers to {Inbound,Outbound}DataCmdChecker | Gabriela Moldovan | 2025-10-16 | 7 | -19/+19 | |
| | | | | | | | The previous "incoming" terminology was rather ambiguous. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3348#note_3275337 | |||||
| * | proto: Fix docs to refer to the right stream:: paths. | Gabriela Moldovan | 2025-10-16 | 2 | -2/+2 | |
| | | ||||||
| * | proto: Move IncomingDataCmdChecker to top-level stream module. | Gabriela Moldovan | 2025-10-16 | 4 | -49/+55 | |
| | | | | | | | | This will be used by relays too (for validating incoming messages on streams). This is just code motion, so it's best reviewed with `--color-moved`. | |||||
