Hi,
there is also one concern bothering my mind since a while.
I think the protocol currently establishes routes between nodes, but optimizes
them the wrong way around. More concrete, the originatorMessages (OGMs)
initiated by each node install routing information for DOWN-link traffic in
the mesh which are actually optimized for UP-link traffic.
The following scenario and attached figure (is of course a little bit
constructed but it) may illustrate this. The figure shows 4 nodes (A,b,c,D)
and 4 existing links between them A-b, b-D, A-c, and c-D - thus, two
potential routes between node A and D. The links b-D and c-D are symmetric,
perfect links with 0% packet loss. The links A-b and A-c are asymmetric links
with 0% packet loss for A->b and A<-c, but 50% loss for A<-b and A->c (See
attached figure). However, each of the 4 links can be assumed as a
bidirectional link since at least every second OGM will reach the
corresponding link neighbor.
Now, node A would receive 100% of the OGMs initiated by D and rebroadcasted
via node c but wouldreceive only 50% via node b. Therefore A would select c
as its best nighbor towards D (obversely D would select b as its best
neighbortowards A).
However, in this case, that is not the best choice since every second packet
send via A-c-D needs to be retransmitted on the link A-c, which would not be
necessary if send via A-b-D .
Don't know if you agree, ...is that reasonable? Also I don't have any simple
approach in mind to solve this but it might be worth to reconsider.
ciao,
axel