[Olsr-dev] process unspec. link quality information
Peter Tarjan
(spam-protected)
Tue Mar 31 16:43:44 CEST 2009
Hello,
I've downloaded, compiled and tested the recently released OLSRd version 0
.5.6-r4.
In most situations it worked perfeclty, but olsrd behaved not as I expected
in the following scenario:
- two computers (A and B) having 1 and 2 network cards (respectively)
involved in routing algorithm;
- the packets from A to B arriving on B's 1st interface are dropped
(asymmetric link emulation), while packets received on B's 2nd interface are
accepted and processed.
A -> B/1 dropped
A -> B/2, B/1 -> A, B/2 -> A - OK.
In this situation A measures two perfect links (ETX=1), even from B/1, so
the A -> B/1 neighbor link quality is considered flawless.
I think I found its cause: we got link quality information from our
neighbours, but we memorize it even if it is marked as UNSPECIFIED.
The unexpected behaviour can be fixed by the following patch:
--- a/src/process_package.c 2009-03-31 16:12:14.215112467 +0200
+++ b/src/process_package.c 2009-03-31 16:13:05.643112066 +0200
@@ -424,7 +424,9 @@
@@ -424,7 +424,9 @@
/* find the input interface in the list of neighbor interfaces */
for (walker = message->neighbors; walker != NULL; walker =
walker->next)
- if (ipequal(&walker->address, &in_if->ip_addr))
+ if (ipequal(&walker->address, &in_if->ip_addr) &&
+ walker->link != UNSPEC_LINK)
+
break;
// memorize our neighbour's idea of the link quality, so that we
-----------------------------------------------------------------------
Péter Tarján
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.olsr.org/pipermail/olsr-dev/attachments/20090331/c13f390f/attachment.html>
More information about the Olsr-dev
mailing list