Prop 311: 3. Allow Relay IPv6 Extends
Relays may make a new connection over IPv6 when:
- they have an IPv6 ORPort,
- there is no existing authenticated connection to the requested relay, and
- the extend cell contains an IPv6 ORPort.
If these conditions are satisfied, and the extend cell also contains an IPv4 ORPort, we propose that the relay choose between an IPv4 and an IPv6 connection at random.
If the extend cell does not contain an IPv4 ORPort, we propose that the relay connects over IPv6. (Relays should support IPv6-only extend cells, even though they are not used to test relay reachability in this proposal.)
A successful IPv6 connection also requires that:
- the requested relay has an IPv6 ORPort.
But extending relays must not check the consensus for other relays' IPv6 information. Consensuses may be out of date, particularly when relays are doing reachability checks for new IPv6 ORPorts.
From proposal 311, section 3: https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt#n112