Some things are probably broken when we advertise multiple ORPorts and only some are reachable
Observations on reachability testing made while fixing legacy/trac#12160 (moved):
We only have a 1-bit notion of reachability; if we get an incoming non-local connection, we assume reachability in onionskin_answer() and call router_orport_found_reachable() to publish a descriptor.
We should have a reachability bit per advertised ORPort to determine its inclusion in the published descriptor, and publish if and only if we have one or more reachable ORPorts.
To implement this, we need a way to link incoming testing circuits to a particular advertised ORPort; we don't know this from the port the underlying channel was listening on because reverse proxies might make this not one-to-one in general.
Arma suggests in IRC that netinfo cells know the IP the connection was attempted on and if they were extended with a port number they might provide a sufficient mechanism.