On Thursday 17 November 2011 16:15:42 Daniele Furlan wrote:
This series of patches introduce a correction in tq metric and forwarding rules of ogm packets.
In the current configuration routing loops scenario can emerge due to some conceptual errors such the global tq window and the forwarding of ogm coming from sub-optimal paths substituting ogm tq with the average of current router. An example scenario has been realized also in simulation using qemu.
Interesting statement but maybe it would also be interesting for others to provide examples and explanations.
Can be demonstrated as already done for DSDV[1], that is a protocol very similar to batman, that a proper forwarding policy together with a strict control on metric monotonicity (as suggested in [2]) are sufficient to guarantee loop-freeness for the protocol.
I apologize in advance if the source style is not the best possible, but I hope that the ideas will applied after a phase of code revision.
Please read and understand http://www.open-mesh.org/wiki/open-mesh/Contribute#Submitting-patches
I refer here to checking of your patches using simple static analyzers and the documentation part.
Also things like
+ /* update last originator seqno received from this neighbour */ + if ((set_mark) && + (batman_ogm_packet->seqno > tmp_neigh_node->last_seqno)) + tmp_neigh_node->last_seqno = batman_ogm_packet->seqno; +
are simply wrong. Have you thought about overflow of sequence numbers (hint: seq_before/after)? Ok, forget about the code and look at the rest.
You don't give any hints about implications of your changes in the commit messages (no, something like "everything will be better because I say it" doesn't count).
Take for example the stuff prepared by Simon. He gathered information, talked to the people and prepared documentation. I can now use this stuff to discuss with him at a higher level than with the stuff you provided. And his stuff is only a "small" optional feature, but your patches changes things in the path selection and information propagation code.
Maybe you should contact everyone (marec, d0tslash, ordex, ...) on IRC and talk about the actual concepts (and also their concepts... ttvn *hinthinthint*) and prepare actual documentation based on that.
Kind regards, Sven