[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #23101 [Core Tor/Tor]: Predict and build specific HS purpose circuits (rather than GENERAL)
#23101: Predict and build specific HS purpose circuits (rather than GENERAL)
-------------------------------------------------+-------------------------
Reporter: mikeperry | Owner: (none)
Type: enhancement | Status: new
Priority: Medium | Milestone: Tor:
| 0.3.3.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: tor-hs, tor-guard, guard-discovery- | Actual Points:
prop247-controller |
Parent ID: #13837 | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by asn):
Replying to [comment:5 mikeperry]:
> Asn - you are right to worry about trying to alter how we deal with
existing purposes, especially in a way that changes the HS state machine.
However, adding a whole new circuit purpose is quite easy. I have done it
several times before (including in my draft patch for parent ticket
#13837). I know how to do it without issue. Aside from a couple asserts
and checks here and there, new purposes get ignored by existing code.
That's what circuit purposes are for.
>
> How about this: instead of messing with the existing HS purpose state
machine(s), we create a new purpose (say CIRCUIT_PURPOSE_HS_GENERAL), and
then in circuit_predict_and_launch_new() we launch new circuits of that
type when we predict we need any hidden service circuits. Then we should
be able to make just a few changes to circuit_get_open_circ_or_launch(),
circuit_launch_by_extend_info(), and circuit_find_to_cannibalize() to use
this new circuit type for hidden service circuits (instead of using
CIRCUIT_PURPOSE_C_GENERAL for them).
>
> That way circuits with this new purpose will otherwise be ignored unless
we are looking to build a new one. And that mechanism for reusing them
will be very similar as it is today, just drawing from
CIRCUIT_PURPOSE_HS_GENERAL instead of CIRCUIT_PURPOSE_C_GENERAL, and we
also don't have to change our current rephist prediction code.
>
> Sound like a plan?
Plausible plan. I'm still a bit concerned but I don't have a better plan
tbh.
What would be the interaction between `CIRCUIT_PURPOSE_C_GENERAL` and
`CIRCUIT_PURPOSE_HS_GENERAL`? e.g. would you be able to cannibalize a
`C_GENERAL` circuit to an `HS_GENERAL` circuit if we find that we have
idle general circuits and we need HS ones (or the opposite)?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/23101#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs