Re: [B.A.T.M.A.N.] Suggestion for routing improvement on poor links

Marek Lindner
2014-02-20T10:33:49Z

[-- Attachment #1: Type: text/plain, Size: 2154 bytes --]

On Thursday 20 February 2014 10:44:37 Antonio Quartulli wrote:
> The missing degradation is the part where I don't agree.
>
> Just to be sure we are understanding each other, I am talking about the
> scenario depicted in this picture:
>
> http://www.open-mesh.org/attachments/download/52/triangle.png
>
> 'A' is the source node and 'B' is our destination. B moves and breaks
> the line-of-sight with A, thus making the A<->B link unusable at all (we
> assume that now packet loss on A<->B is 100%).
>
> At this point A still receives B's OGMs via N1.
>
> According to batadv_iv_ogm_orig_update() (in bat_iv_ogm.c) each time a
> packet with a _new_seqno_ is received the global window of _each_
> neighbour for the given originator is shifted by one slot and the
> averages are computed again.
>
> This operation makes the average degrade because we are now averaging
> N-1 old values and one 0 (with N being the size of the global window).
> On the next OGM it will be worse: average on N-2 values and two 0s. And
> so on..
>
> Doesn't this mean that the metric is degrading (consider that the metric
> is the average)?

Your explanation is mostly correct - one minor objection though: Values of '0'
are not considered when the global average is computed (bat_iv_ogm.c line 73).
The idea being: The unilateral degradation of TQ values without any network
event will eventually lead to loops.
Nonetheless, the general idea of your statement still holds true: Since new
sequence numbers keep coming in via an alternative, albeit less optimal route,
the stale route will be purged as soon as the global TQ window has elapsed
(default: 5 seqnos). Long before the neighbor timeout has had the time to
purge the neighbor entirely.

@Andrew: The algorithm always worked that way. In fact, it was your suggestion
to reduce the global window to 5 seqnos in order to speed it up.
Furthermore, ELP only improves reaction time on a local basis (single hop
neighborhood). Network-wide route updates are as slow as before which is why
we had to devise yet-another-improvement: RIP
http://www.open-mesh.org/projects/batman-adv/wiki/RIP

Cheers,
Marek

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]