Commit 3ae87c3c authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Turn the "dataflow" document into a doxygen page.

parent 65013a69
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
/**
@tableofcontents

## Data flow in the Tor process ##
@page dataflow Data flow in the Tor process

We read bytes from the network, we write bytes to the network.  For the
most part, the bytes we write correspond roughly to bytes we have read,
@@ -7,9 +9,7 @@ with bits of cryptography added in.

The rest is a matter of details.

![Diagram of main data flows in Tor](./diagrams/02/02-dataflow.png "Diagram of main data flows in Tor")

### Connections and buffers: reading, writing, and interpreting. ###
### Connections and buffers: reading, writing, and interpreting.

At a low level, Tor's networking code is based on "connections".  Each
connection represents an object that can send or receive network-like
@@ -208,7 +208,7 @@ next channel in sequence with `append cell_to_circuit_queue()`. This
places the cell on a per-circuit queue for cells headed out on that
particular channel.

### Sending cells on circuits: the complicated bit. ###
### Sending cells on circuits: the complicated bit.

Relay cells are queued onto circuits from one of two (main) sources:
reading data from edge connections, and receiving a cell to be relayed
@@ -234,3 +234,5 @@ queue the next cell.

(This logic applies to outgoing relay cells only; incoming relay cells
are processed as they arrive.)

**/
+15 −1
Original line number Diff line number Diff line
/**
@mainpage Tor source reference

@section intro Welcome to Tor
@tableofcontents

@section welcome Welcome to Tor

This documentation describes the general structure of the Tor codebase, how
it fits together, what functionality is available for extending Tor, and
@@ -24,6 +26,18 @@ development tools, see
[doc/HACKING](https://gitweb.torproject.org/tor.git/tree/doc/HACKING) in the
Tor repository.

@section topics Topic-related documentation

@subpage intro

@subpage dataflow
**/

/**
@page intro A high-level overview

@tableofcontents

@section highlevel The very high level

Ultimately, Tor runs as an event-driven network daemon: it responds to