diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-03-26 14:07:59 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-03-26 14:07:59 +0000 |
commit | 38c0bb3a99956a0ff2e570bd8f2b900d46741992 (patch) | |
tree | 9a447e7b431abdc819d3ba1f30755f5b40678c79 /doc | |
parent | 6e51bdd5e4d5ab39fc1dca12e468b9a1c573cc1b (diff) | |
download | tor-38c0bb3a99956a0ff2e570bd8f2b900d46741992.tar.gz tor-38c0bb3a99956a0ff2e570bd8f2b900d46741992.zip |
r12651@Kushana: nickm | 2007-03-24 18:26:42 -0400
Initial version of circuit-based cell queues. Instead of hammering or_conns with piles of cells, queue cells on their corresponding circuits, and append them to the or_conn as needed. This seems to work so far, but needs a bit more work. This will break the memory-use-limitation patch for begin_dir conns: the solution will be a fun but fiddly.
svn:r9904
Diffstat (limited to 'doc')
-rw-r--r-- | doc/TODO | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -61,11 +61,21 @@ Things we'd like to do in 0.2.0.x: _on_ on a socks connection: have edge_connection_t and (say) dns_request_t both extend an edge_stream_t, and have p_streams and n_streams both be linked lists of edge_stream_t. - - Make cells get buffered on circuit, not on the or_conn. - - Don't move them into the target conn until there is space on the + . Make cells get buffered on circuit, not on the or_conn. + O Implement cell queues + o Keep doubly-linked list of active circuits on each or_conn. + o Put all relay data on the circuit cell queue, not on the outbuf. + o Don't move them into the target conn until there is space on the target conn's outbuf. + o When making a circuit active on a connection with an empty buf, + we need to "prime" the buffer, so that we can trigger the "I flushed + some" test. + - Change how directory-bridge-choking works: choke when circuit queue + is full, not when the orconn is "too full". + - Do we switch to arena-allocation for cells? + - Can we stop doing so many memcpys on cells? - Also, only package data from exitconns when there is space on the - target OR conn's outbuf. + target OR conn's outbuf? or when the circuit is not too full. - MAYBE kill stalled circuits rather than stalled connections; consider anonymity implications. - Move all status info out of routerinfo into local_routerstatus. Make |