<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr"><div><br></div></div><div dir="ltr">On 5 Mar 2019, at 02:24, Neel Chauhan <<a href="mailto:neel@neelc.org">neel@neelc.org</a>> wrote:<br><br></div><blockquote type="cite"><div dir="ltr"><span>Hi tor-dev@ mailing list,</span><br><span></span><br><span>I have Proposal 299, also known as "Preferring IPv4 or IPv6 based on IP Version Failure Count" which makes ClientAutoIPv6ORPort take into account IPv4 and IPv6 failures.</span><br><span></span><br><span>An older version of this document is available here: <a href="https://gitweb.torproject.org/torspec.git/tree/proposals/299-ip-failure-count.txt">https://gitweb.torproject.org/torspec.git/tree/proposals/299-ip-failure-count.txt</a></span><br><span></span><br><span>I have attached an updated copy of this proposal to this message. This includes the changes recommended by teor at <a href="https://lists.torproject.org/pipermail/tor-dev/2019-February/013673.html">https://lists.torproject.org/pipermail/tor-dev/2019-February/013673.html</a>.</span><br><span></span><br><span>Would someone be able to update torspec to include the updated (and attached) proposal?</span><br></div></blockquote><div><br></div><div>Sure. We usually do torspec changes using GitHub pull requests.</div><div>Can you open a pull request on <a href="https://github.com/torproject/torspec">https://github.com/torproject/torspec</a> ?</div><div>Then link to the pull request from #27491 or in an email reply.</div><br><blockquote type="cite"><div dir="ltr"><span>Also, if any of you have opinions on this proposal, please share them with me.</span><br></div></blockquote><div><br></div>Just so you know:<br><br><div>Tor Browser is going to test the #27940 version of <span style="background-color: rgba(255, 255, 255, 0);">ClientAutoIPv6ORPort</span></div><div>in their alpha series, as a potential fix for IPv6 failures:</div><div><a href="https://trac.torproject.org/projects/tor/ticket/29641#comment:4">https://trac.torproject.org/projects/tor/ticket/29641#comment:4</a></div><div><br></div><div>I expect that #27940 will trigger some bugs in the guard code, because all</div><div>connections for an entire IP version will fail. Then we can teach the guard</div><div>code to ignore those kinds of failures.</div><div><br></div><div>But that will mean that Tor Browser is depending on <span style="background-color: rgba(255, 255, 255, 0);">ClientAutoIPv6ORPort.</span></div><div>So we will also need to add a new option to activate the code for this proposal.</div><div>(Otherwise, we won't know if this proposal is better or worse!)</div><div><br></div><div>Here's one way we could do that:</div><div><br></div><div>Add a new option <span style="background-color: rgba(255, 255, 255, 0);">ClientAutoIPv6ORPortStrategy, which takes some flags.</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">When no flags are set (the default), we use the original ClientAutoIPv6ORPort.</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Then we add a flag for this proposal:</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">  - TrackFailures</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div>Then other tickets can use other flags:</div><div>  - CheckLocalAddresses for</div><div>     #27492 Try IPv4 or IPv6 more often based on public or private IP addresses</div><div>  - CheckConsensus for</div><div>    #27647 When randomly choosing IPv4 or IPv6, set IPv6 probability based on IPv6 weight</div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">What do you think?</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">Would you like to make these changes to this proposal?</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">T</span></div></body></html>