O1.1 - Propose and implement IPv6 ORPort reachability checks on relays
See Proposal 311: Tor Relay IPv6 Reachability: https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt The child tickets are in proposal section order, but they will probably be implemented in this order: Pre-Implementation Improvements: * Require IPv6 tests in Travis CI (O1.3, legacy/trac#33195) * Test IPv4 Reachability using Chutney (O1.3, legacy/trac#33232) Implementation: * Allow Relay IPv6 Extends * Declare Support for Subprotocol Version "Relay=3" * Check Relay and Bridge IPv6 ORPort Reachability Internal Testing: * Test IPv6 ORPort Reachability using Chutney (O1.3, legacy/trac#33228) * Test Legacy Relays Accept IPv6 Extends using Chutney (O1.3, legacy/trac#33231) Public Tor Network Testing: * Test IPv6 ORPort Reachability on the Tor Network * Ask Relay Operators to Test IPv6 Reachability Parent: * #33045 Increase the number of relays that support IPv6 Children: * [x] #33285 Make sure relay protocol lists are sorted * [x] #34445 Split assumereachable into self and authority components * [x] #34446 TestingTorNetwork should not set AssumeReachable 1 * [ ] #33043 Prop 306: Keep bridge IPv6 behaviour in sync with client behaviour * [x] #33817 Perform Basic Relay IPv6 Extends * [x] #33956 Define and use TOR_ADDRPORT_BUF_LEN * [x] #33220 Prop 311: 3. Allow Relay IPv6 Extends * [x] #33221 Prop 311: 4. Ensure Relay and Bridge IPv6 ORPorts are Reachable * [x] #33226 Prop 311: 5. Declare Support for Subprotocol Version "Relay=3" * [x] #32588 Setting ORPort [ipv6]:auto mistakenly advertises port 94 * [x] chutney#33229 Test IPv6 ORPort Reachability on the Tor Network * [x] chutney#33230 Ask Relay Operators to Test IPv6 Reachability * [x] #24403 Propose and implement IPv6 ORPort reachability checks on relays * [x] #33880 Confusing "Your relay has a very large number of connections to other relays" relay message * [x] #34137 Make sure inform_testing_reachability() reports the correct ports * [x] #33633 Move extend and reachability code to the relay module * [x] #33898 Stop modifying addr on connections, and delete real_addr * [x] #33899 Allow IPv6 addresses to be canonical * [x] #33900 Check for invalid zero IPv4 addresses and ports in extend cells * [x] #33901 Allow IPv6 extend cells * [x] #33905 Adjust "large number of connections to other relays" warnings * [x] #33917 Make IF_BUG_ONCE() support ALL_BUGS_ARE_FATAL * [x] #33919 Write unit tests for channel_matches_target_addr_for_extend()
issue