Hello Juliusz,

thanks for your comments. As already pointed out, some of the problems
have already been adressed in further development and are already
solved in batman-0.3 which implements BATMAN IV. I'll discuss only one
thing that was not pointed out yet.

I'm forwarding this mail to olsr and babel because you did so too, but
would like to invite everyone who reads this to join the discussion on
b.a.t.m....@open-mesh.net (there is no need to scatter the discussion on
various mailinglists).

@marek, @elektra: please also forward your answers to the batman-ml.

On Tue, Aug 05, 2008 at 05:02:19PM +0200, Juliusz Chroboczek wrote:
 
> 2. Persistent loops
> -------------------
> 
> BATMAN does not contain any loop avoidance mechanisms, nor any for
> loop detection.  Because of that, BATMAN will cause routing loops in
> some cases which will last up to PURGE_TIMEOUT seconds (256 seconds by
> default).
> 
> Indeed, consider the following topology:
> 
>                 A
>              l1/|
>               / |
>              S  |l3
>               \ |
>              l2\|
>                 B
> 
> Suppose also that l2 is a very lossy link, so that B has selected A as
> its next hop for S.
> 
> S crashes, and A switches to B as its next hop for S.  At this point,
> B is still using A as its next hop, so we have a temporary routing loop.

That is wrong. Why should A switch its route to B? S is dead, so it
won't emit OGMs. Without receiving OGMs from S, A will not reconsider
it's routes to S. Routes are only updated when an OGM from S is
received. So the routes will be frozen with the last received
OGM of S, and the routing loop you describe will not occur.

This is different from protocols like RIP, where information B would 
probably send information about S after S' death. This will not happen 
in BATMAN. 

> 
> After one window time, both A and B are performing opportunistic
> routing (Section 6.3.1 of the draft) and hence form a routing loop.
> I may be missing something, but as far as I can tell, the loop will
> only be eliminated after a PURGE_TIMEOUT.
> 
> Due to the convergence issues outlined in point (1) above, BATMAN
> needs the opportunistic routing mechanism.  However, even in the
> absence of opportunistic routing, transient loop will arise for up to
> one window time.

Could you construct an example for a transient loop?

best regards,
        Simon

Attachment: signature.asc
Description: Digital signature

Reply via email to