At 17:23 14/06/2005, Alia Atlas wrote:
At 11:47 AM 6/14/2005, mike shand wrote:
At 16:10 14/06/2005, Alia Atlas wrote:
What I was asking was whether you are seeing multi-hop micro-forwarding
loops using the symmetric condition & PLSN during the transition on the
real network topologies that you have.
Ah. I understand now. Yes I do see the occasional multi-hop loop in real
topologies using the symmetric condition.
OK. But the frequency (number of micro-loops * number of links affected)
is better with the symmetric condition than with the asymmetric?
Yes. We loose the multi-hop loops (in general... see below), but gain a lot
more single hop loops becuase the stricter condition results in more C-C pairs.
I was asking about the max-costing because that is something that does
occur in networks to cause asymmetric link costs.
If the networks with asymmetric link costs that you have seem to have
fewer unresolved micro-loops across fewer links using the symmetric
condition, then that's a good start to think that the symmetric
condition is the way to go. To be even more comfortable with that,
it'd be very good to see if similar behavior holds with links costed out
causing asymmetric costs. I imagine that the primary case to consider
might be when an entire router's links are all costed-out, as in
RFC3137. An operator taking a link out via costing would probably do it
in both directions; similarly, the costing out of a link due to lack of
an LDP session should occur in both directions - though it needn't.
Understand. So I should try going through each node, setting all its link
costs to be infinite in the direction from that node, and looking for
loops? Is that what you mean? I'll put it on the list of things to try.
I'm sure you've got a long list :-) That's basically what I mean/think
makes the most sense.
I just tried a randomly generated topology with all (very) asymmetric
links and managed to produce a 9 hop loop, which traversed 6 type C
nodes, 2 type As and a type B!!!
Excellent! I assume this was using the symmetric condition- because
there are type As and a type B in it?
Um... what am I missing here? It is still possible to get type A and B
with the asymmetric condition isn't it?
What does it look like using the asymmetric one?
I get the loop with both sym and asym conditions.
I'm a bit confused then. A multi-hop loop with the asymmetric condition
shouldn't go through type A or type B nodes. That's the point of
changing the condition to be stricter.
Yes, but it can still be fed back into it by a chain of C's
So in the example I gave, for a destination of node 7 (which is at the
other end of a link connected to node 22) we have nodes 3 & 19 which are
type A even with the asym condition.
After the failure 3's route to 7 is via 19 (and hence 19 is downstream),
but before the failure 19 is also downstream, since 19's route to 7 is via
nodes 2 and 26. hence 19 is a safe neighbor.
Similarly, after the failure 19's route to 7 is via 8 (hence 8 is
downstream). Before the failure 19's route is via 2 (as before), but 8 has
a path via 26. hence it is downstream of 19 both before and after the failure.
After the failure, 22's route to 7 is via 29,18,28,3,19,8,1,9,7.
BTW if I didn't mention it before the failing link is between 22 and 7.
If it helps, the following describes the topology
Much of it is irrelevant, but it is just what got randomly created.
link 2 to 12 cost 257 rev 4530
link 18 to 30 cost 265 rev 3480
link 19 to 2 cost 146 rev 30
link 22 to 7 cost 261 rev 2620
link 23 to 17 cost 368 rev 3830
link 24 to 17 cost 193 rev 2710
link 25 to 13 cost 142 rev 1720
link 26 to 11 cost 312 rev 1800
link 27 to 4 cost 356 rev 3450
link 28 to 10 cost 219 rev 4420
link 29 to 5 cost 246 rev 2450
link 1 to 9 cost 500 rev 2950
link 3 to 19 cost 408 rev 1200
link 6 to 14 cost 264 rev 320
link 8 to 26 cost 135 rev 4580
link 12 to 24 cost 126 rev 4100
link 15 to 6 cost 205 rev 3330
link 18 to 28 cost 402 rev 130
link 22 to 20 cost 189 rev 3920
link 23 to 24 cost 496 rev 2770
link 25 to 28 cost 116 rev 4890
link 27 to 21 cost 488 rev 3390
link 29 to 22 cost 430 rev 1100
link 1 to 8 cost 100 rev 630
link 2 to 26 cost 148 rev 3630
link 3 to 25 cost 227 rev 4550
link 4 to 16 cost 15 rev 4460
link 11 to 16 cost 319 rev 2650
link 12 to 26 cost 11 rev 2720
link 14 to 15 cost 139 rev 400
link 18 to 23 cost 64 rev 860
link 19 to 17 cost 357 rev 2030
link 27 to 30 cost 383 rev 4880
link 29 to 21 cost 156 rev 2400
link 1 to 15 cost 68 rev 4630
link 2 to 23 cost 157 rev 2610
link 3 to 28 cost 384 rev 790
link 4 to 24 cost 301 rev 770
link 5 to 20 cost 16 rev 4600
link 6 to 12 cost 413 rev 3990
link 7 to 9 cost 236 rev 2690
link 8 to 19 cost 301 rev 1200
link 10 to 30 cost 479 rev 950
link 11 to 22 cost 178 rev 2870
link 13 to 27 cost 440 rev 3360
link 14 to 25 cost 359 rev 3140
link 18 to 29 cost 241 rev 2310
Sorry its overly complex. I'm sure it would be possible to extract a subset
which had the required properties.
Regardless of whether a node is using the old topology or the new
topology, with the asymmetric condition, a type A or a type B router will
use a next-hop between DELAY_SPF and DELAY_TYPEB will be closer to the
destination. This guarantees monotonically decreasing distance, so that
loops cannot form.
Thus, a multi-hop micro-loop could go through a lot of type C's, but as
soon as it hits a type B or type A, I'd think it would exit the loop.
Maybe I'm missing something. I guess it might be possible for a type C to
send back up , but I'm not seeing how. Consider a type A node A and a
type C node C - where C is the first type C node encountered on A's
next-hop path to D (where this path is that used between DELAY_SPF and
We know that:
D_old(A, D) > D_old(C,D)
D_new(A, D) > D_new(C, D)
Can you describe the topology you're using? I'm not picturing how one
could get the multi-hop micro-loop between type A, B and C when using the
Do you think we can adequately describe the topology conditions that can
lead to the multi-hop micro-loop problem with the symmetric condition?
Perhaps, but I'm not going to attmept it right now:-)
Not a 5-minute response-time email? I'm shocked :-)
Testing path from node 8 (8) to node 7 (7) at time 1
Node 8 (8): Packet discarded because looped
Node 19 (19) New: Forwarded via adj 1 over link 42 to node 8
Node 3 (3) New: Forwarded via adj 1 over link 13 to node 19
Node 28 (28) New: Forwarded via adj 1 over link 37 to node 3
Node 18 (18) New: Forwarded via adj 1 over link 18 to node 28
Node 29 (29) New: Forwarded via adj 1 over link 47 to node 18
Node 22 (22) New: Forwarded via adj 1 over link 23 to node 29
Node 11 (11) Temp: Forwarded via adj 1 over link 44 to node 22
Node 26 (26) Old: Forwarded via adj 1 over link 8 to node 11
Node 8 (8) Old: Forwarded via adj 1 over link 15 to node 26
(read the trace going up)
Node 11 is type B and nodes 3 and 11 are type A for the destination node 7
So at time 1 (when the type C's change), type A MUST forward according
to new topology, type B according to the temporary type B next hop, and
the type C either according to old or new topology (since they are in
the process of changing)
So, yes, we can get multi-hop loops with the asymmetric algorithm!
Rtgwg mailing list