[Babel-users] Tweaks to smoothing algorithm

Juliusz Chroboczek jch at pps.univ-paris-diderot.fr
Wed Mar 13 18:21:46 UTC 2013


After an exciting week-end of debugging, we've found a bug in the
smoothing algorithm that could significantly slow down convergence in
some cases.  If you're running head with smoothing enabled, I strongly
recommend upgrading.

  http://git.wifi.pps.univ-paris-diderot.fr/?p=babeld.git;a=commit;h=e8fe07

Many thanks to the person who found the issue and suggested the fix.

The issue is as follows.  Suppose we have a nice, stable route R1:

  R1: metric = 256, smoothed_metric = 256

Now the current node moves away, and a new route appears, while the
old one gets retracted:

  R1: metric = infinity, smoothed_metric = 256
  R2: metric = 1024,     smoothed_metric = 32768

In this case, we want to switch to R2 straight away, without waiting
for the smoothed metric to converge.  So upon a retraction, we now
slam the smoothed metric to infinity straight away:

  R1: metric = infinity, smoothed_metric = infinity
  R2: metric = 1024,     smoothed_metric = 32768

Since we only do that when a metric reaches infinity, it will only
inhibit smoothing for retracted routes, not for routes that oscillate
with finite metric.

-- Juliusz



More information about the Babel-users mailing list