diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-11-04 16:28:28 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-11-04 16:28:28 -0500 |
commit | e1cdca2e4f58c108539fe4c36205b16caca8d44f (patch) | |
tree | dad67eb14d7ea8e1b7293d6ce8645db64b21760e /src/core/or | |
parent | 607b1ff776b5a5e5c9ba0197b5768751e5b9c68c (diff) | |
download | tor-e1cdca2e4f58c108539fe4c36205b16caca8d44f.tar.gz tor-e1cdca2e4f58c108539fe4c36205b16caca8d44f.zip |
directory-level doxygen for "src/core"
Diffstat (limited to 'src/core/or')
-rw-r--r-- | src/core/or/core_or.dox | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/src/core/or/core_or.dox b/src/core/or/core_or.dox index 754690e008..705e9b5436 100644 --- a/src/core/or/core_or.dox +++ b/src/core/or/core_or.dox @@ -1,4 +1,62 @@ /** @dir /core/or -@brief core/or -**/ +@brief core/or: *Onion routing happens here*. + +This is the central part of Tor that handles the core tasks of onion routing: +building circuit, handling circuits, attaching circuit to streams, moving +data around, and so forth. + +Some aspects of this module should probably be refactored into others. + +Notable files here include: + +`channel.c` +: Generic channel implementation. Channels handle sending and receiving cells +among tor nodes. + +`channeltls.c` +: Channel implementation for TLS-based OR connections. Uses `connection_or.c`. + +`circuitbuild.c` +: Code for constructing circuits and choosing their paths. (*Note*: +this module could plausibly be split into handling the client side, +the server side, and the path generation aspects of circuit building.) + +`circuitlist.c` +: Code for maintaining and navigating the global list of circuits. + +`circuitmux.c` +: Generic circuitmux implementation. A circuitmux handles deciding, for a +particular channel, which circuit should write next. + +`circuitmux_ewma.c` +: A circuitmux implementation based on the EWMA (exponentially +weighted moving average) algorithm. + +`circuituse.c` +: Code to actually send and receive data on circuits. + +`command.c` +: Handles incoming cells on channels. + +`connection.c` +: Generic and common connection tools, and implementation for the simpler +connection types. + +`connection_edge.c` +: Implementation for entry and exit connections. + +`connection_or.c` +: Implementation for OR connections (the ones that send cells over TLS). + +`onion.c` +: Generic code for generating and responding to CREATE and CREATED +cells, and performing the appropriate onion handshakes. Also contains +code to manage the server-side onion queue. + +`relay.c` +: Handles particular types of relay cells, and provides code to receive, +encrypt, route, and interpret relay cells. + +`scheduler.c` +: Decides which channel/circuit pair is ready to receive the next cell. |