[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