In param-spec, not all of the parameters for onion services had
their ranges and defaults listed; I've added those from the code.
Also I clarified the units for hsdir_interval, which were not
intuitively obvious.
This commit fixes an ambitious formulation within the definition of the
VERSIONS cells. It says, that a VERSIONS cell with an odd number of
bytes is invalid. This statement is not true, because the CircID (2
bytes for VERSIONS cells), Command (1 byte) and Length (2 byte) make up
5 bytes, which is an odd number. Adding an odd number to an even number
of bytes (the payload in this case) always results in an odd number.
- Allow a gap between inflight and cwnd before declaring the cwnd not full.
- Parameterize how often a cwnd must be full
- Clean up vegas algorithm for variable scoping and clarity
All supported versions for relays on the Tor network support v3
onion services. As such, we can mark the sections about "how do I
use an 0.2.9.x relay as my intro/rend point?" as obsolete.
This NL isn't so easy to remove in Tor, since some older
control-port code depends on it IIRC. But not having documented it
caused arti#637: let's explain that, so that the next unfortunate
implementor doesn't hit it.
Corresponds to the bugfixes for bugs 40698 and 40700.
Also, document our MeasuredButAuthority= keyword that we include instead
(but that nothing uses).
since some of them didn't have it, other Tor specs don't have them and
a KeyValue is already defined with an `=` as the separator between the
Key and the Value.
In addition, this commit also changes the spec so no destroy reasons
(error code) are propagated down or up the circuit in order to mitigate
potential side channel risks.
See https://gitlab.torproject.org/tpo/core/tor/-/issues/40649 for more
details on why.
Related to tor/#40623
Signed-off-by: David Goulet <dgoulet@torproject.org>
The formula used for N_EWMA is actually rearranged in the C tor
implementation, in a way that caused the arti reimplementation to be off
by a small rounding error until it was corrected.
In order to ensure other implementations don't have this issue, mention
the rearranged form and add a requirement that it be used.
(background:
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/525#note_2807244)
Arti has a "dormant mode" which means that it might need to reenable
channel padding after hving disabled it.
How to do this, paarticularly in the face of possibly changing
consensus parameters, is an edge case.