This summer, Mashael, Kevin et al published the Defenestrator paper, where they proposed the N23 algorithm to improve Tor's flow control.
They did their simulations using ExperimenTor, and the paper says "we use the latest development branch of the Tor source code (version 0.2.3.0-alpha-dev)".
We should get a copy of their patch, and then update it to apply cleanly to current git.
The "n23" branch in my git repo is the result of yesterday's work.
I expect Ian will update it more, possibly including rebasing it. Beware.
If somebody wants to hack up a n23 that's rebased to maint-0.2.2 (or release-0.2.2), that would be grand -- then we could get some experiments going on it despite all the "testingtornetwork + 0.2.3" bugs.
Kevin said he tried it in Experimentor and his Tor crashed. No further details yet.
Kevin, can you distinguish between "seg fault" and "assert" when you say crash? If seg fault, any chance we can get a core the next time?
I just pushed a new "n23-2" branch (available at git://git.torproject.org/arma/tor) to fix compile warnings, rip out the (unfinished) adaptive n23 code, and change one assert to a return. I also rebased it onto master so it would get the fix for #5373 (moved).
I believe with some more hacking on the code we can make the "set circ and stream window really high so they never run out" hack obsolete. But I think we're not there yet.
In this case we're using N2 of 10 and initial N3 of 500. Are these plausible numbers?
I believe with some more hacking on the code we can make the "set circ and stream window really high so they never run out" hack obsolete. But I think we're not there yet.
I just pushed an update to my n23-2 branch that, I believe, makes the circwindow and streamwindow hack unnecessary.
If you're already simulating on the previous version of the branch, I believe there's no need to change.
I can't do any more fixing on the patch until Mashael answers the questions at the top of connection_or_consider_sending_flowcontrol_cell(), so I know what it's supposed to be doing. In particular,
/* IG: Mashael should explain the algorithm here: what it should do in * each case and why. */
Making this the new project ticket for Sponsor F: March 15, 2012 task 9. The task was to evaluate feasibility of simulating N23, not to run the simulations, which is blocking on simulator improvements independent of N23.
Trac: Milestone: Tor: unspecified to Sponsor F: March 15, 2012 Type: task to project
Roger and I discussed sponsor F deliverables at the Florence hackfest. This ticket was the ticket for sponsor F deliverable 9, but really, we should do its parent ticket #4506 (moved) for the November milestone.