Subject: Ears and ARCs

From: "Pascal Thubert (pthubert)" <[email-masked]>
Date: Sat, 13 Oct 2012 16:58:37 +0000

Dear WG:

I received an unicast a question that was, bascally, what's the difference between MRT and ARCs.

>From the draft, hopefully it appears that an ARC is a new tool with new properties, up to us to find interesting applications and maybe find new solutions to existing problems. The core of that tool is the reversible link, so that we form downwards U-shaped arcs as opposed to arrows for routing.

But maybe the simpler approach is to make an exercise and see what we get - my current understanding here, Gábor please correct me if I'm wrong -.

So, say we have this simple network.

 2 --- 3
 |     |
 |     |
 1 --- 4
 |     |
  |     |
Destination

I illustrated naming the routers with a value that matches my understanding of the values of the partial order, to make things simple.

We end up with 2 ARCs and 2 ears, which are basically collocated. The ARC view is

 2 <=> 3
 |     |          where links 2 - 3 and 1 - 4 are reversible.
  V     V
 1 <=> 4
  |     |
  V     V
Destination (Omega)

A first property of the ARCs can be seen immediately. ARCs are hierarchical routing friendly.
We can collapse each ARC to simplify the representation which becomes:

   2
  | |
  V V
   1
  | |
  V V
Destination

If we break any link both ears and ARCs provide an alternate route, that's FRR for you. Now let us see what happens with more than one breakage.
There are double breakages that isolate a piece of the network, say if links 2 - 1 and 3 - 4 both break, there is no solution in the world that can keep 3 connected to the Destination.

Say now that 3 - 4 and 1 - Destination are both broken a 2 has a packet to send.

 2 --- 3
 |     |
  V     X
 1 --- 4
  |     |
  X     V
-------------Destination (Omega)

- With ears, using the increasing order 2 will pass to 3, and 3 to 4 will fail.
So the packet is switched to decreasing order and the packet reaches 1 via 2.
1 fails to send to the destination and we are screwed.

 PPPPP>>       <<ppppp       2 --- 3      PPP packet progressing in increasing order
 |     |       |     |       p     |      ppp packet progressing in decreasing order
  V     X       V     X       p     X
  1 --- 4       1 --- 4       V --- 4      When packet reaches 1 must be dropped
  |     |       |     |       |     |      because increasing again may cause a loop
  X     V       X     V       X     V
  -----------------------------------------Destination (Omega)

- With ARCS, say that bad luck the shortest path is via 3. 2 passes to 3 and 3 to 4 will fail.
So 3 u-turns the packet along the ARC, back to 2.
Some tagging indicates that the packet was u-turned which can happen only once in that ARC.

 2--p->3       2<==p=3       2 --- 3       2 --- 3       2 --- 3   -p-> in shortest path
  |     |       |     |       p     |       |     |       |     |   =p=> vs. returned
  V     X       V     X       V     X       V     X       V     X        packet
 1 --- 4       1 --- 4       1 --- 4       1==p=>4       1 --- 4
  |     |       |     |       |     |       |     |       |     p   packet reaches Omega
  X     V       X     V       X     V       X     V       V     V
  ------------------------------------------------------------------Destination (Omega)

say that bad luck again the shortest path for 2 is via 1.
2 passes to 1 and since the ARC is exited the marking is removed.
1 fails to send to the destination, marks the packet and sends it along its ARC.
Packet reaches Destination via 4.

IOW, ARCs form isolated recovery domains and allow up to as many breakages as the ARC or Comb has exits, with no disruption.

Also, ARCs can form multi-ended structures called combs with better recovery capabilities than a 2-ended structure.

For bicasting, the difference will be a bit more subtle. In a biconnected graph, ears will build non congruent path every time, but they might be far away from shortest. ARCs will attempt to stay closer to shortest but may incur collisions, which are then resolved.

Then ARCs can be employed for other purposes. We have an interesting approach to the Olympic rings issue for instance.

Cheers,

Pascal

---

From: Gábor Sándor Enyedi <[email-masked]>
Date: Tue, 16 Oct 2012 12:09:11 +0200

Great summarization, thanks. Just some small notes to this, which may make the difference a bit clearer for the WG:
 
- In basic version, MRT can correct one failure, while ARCs can correct one per ARC, which means that if there is a lucky multi-failure situation, ARCs may solve it, while the basic MRT can't.
- Current MRT is designed in this way (i.e. that it can avoid only one failure), since avoiding multiple failures has its price: in some single failure cases, you may need to reroute packets multiple times with ARCs. Since rerouting means that a packet is using links and nodes multiple times (once in both direction), we thought that this is a greater problem then to wait for IGP when there are multiple unrelated failures at the same time.
As an example consider a network very similar to the one in Pascal's example:

2 -- X1 -- 3
|          |
|          |
1 -- X2 -- 4
|          |
|          |
---Omega ---

Let the ARCs be similar:

2<=> X1 <=>3
|          |
V          V
1<=> X2 <=>4
|          |
|          |
-->Omega <--

If now node 1 goes down, then node 2 will reroute, packet will be decapsulated at node 4, and if we're unlucky and the shortest path would be 4->X2->1->Omega, X2 will need to reroute again.
 
So there is a * tradeoff *: basic MRT avoids single node or link failures, while ARCs may hit a single failures multiple times. It's a management decision which one is better.
 
What is important to mention is that all the previous was true for basic MRT. However, it is very easy to see that the endpoint of the MRT detour is not needed to be terminated at the destination (e.g. the egress router), but it can be at several other nodes, e.g. at nodes, which are strictly closer to the destination; this is what we call "endpoint selection". Naturally, it is possible to select not only closer nodes as endpoints, when we can guarantee to avoid loops, so with some endpoint selection algorithm we may hit a single failure multiple times. The most exciting is that with a proper ear selection (i.e. with selecting the ears using the algorithm described in ARC draft), and using proper endpoint selection (i.e. endpoint is the end of the ear), we can get EXACTLY the same packet path, as with ARCs. :) Moreover, if I understood ARCs correctly, we can even reproduce the effect of "combs".
 
Thus, I think that there is so much common in the two approaches that we may need to consider to merge the two together somehow.
 
Gabor

________________________________

From: [email-masked] [mailto:[email-masked]] On Behalf Of Pascal Thubert (pthubert)
Sent: Saturday, October 13, 2012 6:59 PM
To: [email-masked]
Cc: Dirk Anteunis (danteuni); Patrice Bellagamba (pbellaga)
Subject: Ears and ARCs

Dear WG:

 2 --- 3

 |     |

 |     |

 1 --- 4

 |     |

  |     |

Destination

 

 2 <=> 3

  V     V

 1 <=> 4

  |     |

  V     V

Destination (Omega)

   2

  | |

  V V

   1

  | |

  V V

Destination

 

 2 --- 3

 |     |         

  V     X

 1 --- 4

  |     |

  X     V

 

 

  V     X       V     X       p     X    

  X     V       X     V       X     V       

 

  X     V       X     V       X     V       X     V       V     V

 

Cheers,

Pascal