Skip to main content

Module reactor

Module reactor 

Source
Expand description

Module exposing the relay circuit reactor subsystem.

See reactor for a description of the overall architecture.

§ForwardReactor

It handles

  • unrecognized RELAY cells, by moving them in the forward direction (towards the exit)
  • recognized RELAY cells, by splitting each cell into messages, and handling each message individually as described in the table below (Note: since prop340 is not yet implemented, in practice there is only 1 message per cell).
  • RELAY_EARLY cells (not yet implemented)
  • DESTROY cells (not yet implemented)
  • PADDING_NEGOTIATE cells (not yet implemented)

Legend: `F` = "forward reactor", `B` = "backward reactor", `S` = "stream reactor"

| RELAY cmd         | Received in | Handled in | Description                            |
|-------------------|-------------|------------|----------------------------------------|
| DROP              | F           | F          | Passed to PaddingController for        |
|                   |             |            | validation                             |
|-------------------|-------------|------------|----------------------------------------|
| EXTEND2           | F           |            | Handled by instructing the channel     |
|                   |             |            | provider to launch a new channel, and  |
|                   |             |            | waiting for the new channel on its     |
|                   |             |            | outgoing_chan_rx receiver              |
|                   |             |            | (**not yet implemented**)              |
|-------------------|-------------|------------|----------------------------------------|
| TRUNCATE          | F           | F          | (**not yet implemented**)              |
|                   |             |            |                                        |
|-------------------|-------------|------------|----------------------------------------|
| TODO              |             |            |                                        |
|                   |             |            |                                        |

Modules§

backward 🔒
A relay’s view of the backward (towards the client) state of a circuit.
forward 🔒
A relay’s view of the forward (away from the client, towards the exit) state of a circuit.

Structs§

Reactor 🔒
The entry point of the circuit reactor subsystem.
StreamHandler 🔒
A handler customizing the relay stream reactor.

Type Aliases§

RelayBaseReactor 🔒
Type-alias for the relay base reactor type.