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