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