Support sims with different Fast and Guard flag cutoffs
The Guard and Fast cutoffs in Tor appear be too low for congestion control. Fast in should be top 7/8 of relays, but is overridden by an ancient torrc default value of 100KB (AuthDirFastGuarantee
). The Guard cutoff is the minimum of the 3/4 point of Guards that are Exits or Guards that are non-Exits. The function that calculates all of this in the live network is dirserv_compute_performance_thresholds()
.
Because we have seen large queues on a small subset of Guard relays in the simulator that caused us to make the congestion control parameters more conservative, I want to see if changing this Guard and Fast cutoff improves performance and/or allows us to raise the congestion control parameters.
Basically, I want to run some sims that experiment with setting the Guard and Fast cutoffs at different percentile values than 3/4 and 7/8.
I can and will patch dirserv_compute_performance_thresholds()
in a Tor branch for the sim, to fix the AuthDirFastGuarantee
value and set different percentile values. The problem is that Shadow takes in the current Guard and Fast information from the consensus set when it builds its network model. It sets TestingDirAuthVoteGuard
, TestingMinFastFlagThreshold
, and TestingMinExitFlagThreshold
, which makes tuning this more difficult.
So we need to figure out the best way to alter tornettools to allow us to specify different cutoffs and different cutoff algorithms.