Given a list of addresses for a target, how would an application pick
one that is assured to work at the receiver? Answer: it can't without
knowing the topology. The only way to keep the app from knowing
topology, and make the app work in the presence of a list is to pass the
label that was used to get the initial list, so the receiver can get its
own that is topologically appropriate.
Tony,
What you are essentially claiming is that an application that doesn't know
about network topology should defer choices that must be based on topology to
some other application. Of course, it's not any easier for that other
application to know about topology, and it's also less reliable and less
efficient. It might seem reasonable to isolate the topology-selection stuff
into a single application, but it's not - different applications have
different needs in this regard. Again this is from experience with an app
that needed to choose the closest of several alternate URLs for a resource -
doing all of the DNS lookups on all of the URLs and then trying to find the
closest one of those was just too slow. Finally, if you want any app -
even this "special" app, to be aware of topology, then the first thing you
need is globally scoped labels for points in the topology - which is exactly
what exposing site locals to applications denies you.
Keith