[Olsr-users] Sticky gateway
Juliusz Chroboczek
(spam-protected)
Wed Jan 21 21:33:57 CET 2009
Phew, a lot of reactions here.
Henning:
> Yes, theoretically this can happen if the "sticky" threshhold is too large.
> That's the reason why we suggest a default of 0.3, which is much lower than
> the cost of a single hop.
By reducing the threshold, you reduce the likelihood of the loop happening.
You don't reduce the time for which it persists once established, which
remains unbounded.
Sven-Ola:
> b) the feature minimizes _gateway switching_(*)
I'm not arguing with the advantages of the feature, which I fully
understand (as a matter of fact, I do have hysteresis in Babel). I'm
saying that *in a link-state framework*, it has some very significant
issues, and hence should not be recommended unless people fully understand
its flaws.
There's no reason, by the way, why OLSR shouldn't be extended to become
a hybrid protocol, which uses link state for internal routes and
distance-vector for external ones. See OSPF.
Aaron:
> First of all, I want to ask you to elaborate a bit on your claim.
> Can you give an example?
Yes, I can. But do I really need to construct an example whenever
I express a doubt about any of the features you're introducing? I'd expect
the duty of proof to be on the proponent's side.
Consider the following topology:
3 3 1 2 2
0.0.0.0/0 --- A --- B --- C --- D --- 0.0.0.0/0
Both B and C go through D for reaching the Internet. Suppose now that it
stops raining around A, and the link costs change:
1 1 1 2 2
0.0.0.0/0 --- A --- B --- C --- D --- 0.0.0.0/0
C, which is configured without a sticky gateway, switches to going through
A. However B, which is using the sticky gateway feature, sticks to going
through D. You have a routing loop between B and C.
A few points that I make without proof:
- the routing loop will never be cleared -- it will remain until the link
costs change again;
- in the example above, I assumed that B had a sticky gateway factor of
3; however, by tweaking the values above, you can build a routing loop
whatever B's stickyness factor as long as it's > 0;
- in the example above, I assumed that the configuration of your nodes
was not uniform (B is sticky, C is not); it is possible to construct an
example where all nodes are configured the same.
Sorry for the lack of proof for the points above, but it's been a hard day.
Juliusz
More information about the Olsr-users
mailing list