A client node take its decision about chosing a gateway in a unilateral way, that is chosing gateway on a ranking basis (or wathever else) checking the path "node-->gateway" or "node-->hop-->gateway" (also if the second is not always preferred, chosing a poor link "node-->gateway" rather then best links "node-->hop-->gateway").
Presuming the node has a bouquet of canditate gateways: we can think to use an udp packet polling the candidate gateways and asking them "how you see me?" so the the node itself can obtain a path evaluation computed at gateway side and not only at node side. For example presuming node A can chose among gateways G1 and G2 (the candidate gateways) it will make its choice upon path evaluation:
A --> hops --> G1 A --> hops --> G1 where [hops] can be also 0 (no hops between A and Gn)
and computing OGMs coming from neighboors.
Well, node A can send two udp packet (same format as OGM but different op-code in payload||different dest port) to G1 and G2 asking to send their path evaluation like "G1 --> hops --> A" evaluation (received from candidate G1) and "G2 --> hops --> A" evaluation (received from candidate G2). In this way node A has a more clear vision about the entire path A <--> G_candidate and can take a more serious decision.
Using udp requests we introduce low latency than tcp and with a separate thread on gateway (with a poor resources consumpion) we can manage this task without effetcing the main.
What are you thoughts about?
-- Antonio