Genie's Tech Blog

Where knowledge has no dimensions

Loop Free Alternate Fast-Reroute - IP LFA FRR

Hello Friends, 

I am back with yet another discussion on a very interesting topic - IP LFA FRR. But before we discuss about this, lets first discuss the what was the need for such development.

Problem:

A change in network topology upon a failure triggers network wide convergence. For example, when a local link fails, a router currently must signal the event to its neighbors via the IGP, re-compute new primary next-hops for all affected prefixes, and then install those new primary next-hops into the forwarding plane. Until the new primary next-hops are installed, traffic directed towards the affected prefixes is discarded.  This convergence process can take 100s of milliseconds on a given router.

For loss-sensitive applications (such as multimedia services and pseudo-wire), this convergence time is higher than their loss tolerance (typically 10s of milliseconds). In order to support such applications, a router needs to implement mechanics to minimize packet loss to an acceptable value during convergence event.

Solution:

IP Fast Reroute (FRR) [RFC 5286] is a mechanism that enables a router to rapidly switch traffic following an adjacent link and/or node failure, towards a pre-computed/pre-programmed loop-free alternative (LFA) path. This LFA path is used to switch traffic until the router installs the new primary next-hops again, as computed for the changed network topology. 

The goal of LFA FRR is to reduce failure reaction time to 10s of milliseconds by using a pre-computed alternate next-hop, in the event that the currently selected primary next-hop fails, so that the alternate can be rapidly used when the failure is detected.  

There are two approaches in computing LFAs:

1.Link-based (per-link)

2.Prefix-based (per-prefix)

In link-based LFAs, all prefixes reachable through the primary (protected) link share the same backup information. This means that the whole set of prefixes sharing the same primary also share the repair/FRR ability. 

Prefix-based LFAs allow computing backup information per prefix. It is to be noted that repair/backup info computed for a given prefix using prefix-based LFA may be different than one computed by link-based LFA.

While both LFA approaches have their pros and cons associated, per-prefix LFA approach is considered to be more desirable for LDP LFA FRR for following main reasons:

1.Better node failure resistance

2.Better capacity planning and coverage

We shall now try to understand how IP LFA FRR works with the help of an example. Consider the following topology of 4 routers.
 
 

Router R1 computes its shortest path to reach router R3 via router R4 (as its primary next-hop). Without IP LFA FRR, this is the only next-hop that R1 computes to reach R3. With IP LFA FRR, R1 also tries to compute an alternate next-hop to use. In this example, R1 determines that it can reach R3 via router R2 should router/link R4 goes down. Therefore, R1 installs link to R2 as its alternate next-hop. At some later time, if link between router R1 and router R4 fails, R1 and R4 will be the first to detect it.  On detecting the failure, R1 stops sending traffic destined for R3 towards R4 via the failed link, and instead starts sending the traffic to R1's pre-computed alternate next-hop (link to R2), until a new SPF is run and its results are installed. This makes sure that traffic is fast rerouted to use pre-programmed backup/alternate paths during convergence and thus helps in minimizing any traffic loss.The existence of a suitable loop-free alternate (LFA) next-hop is dependent on the topology and the nature of the failure for which the alternate is calculated. If in the example, the link cost from R2 to R3 is increased to 30 from 3, then R2 would not be a loop-free alternate because the cost of the path from R2 to R3 via R1 would be 17 while the cost from R2 directly to R3 would be 30.  

It is to be noted that, as with the primary next-hop, an alternate next-hop is computed for each destination.  The process of computing an alternate next-hop does not alter the primary next-hop computed via a standard SPF.

FRR triggers

Once backup (repair) information has been pre-programmed in forwarding to perform Fast Reroute upon a failure, a trigger is required to switch forwarding from primary information to using backup information in order to start forwarding traffic using backup paths. Following are main FRR triggers that will be supported:

1.Interface/link down

2.Manual Maintenance

3.BFD detection

Based on the understanding the IP LFA FRR should have faster protection speed as compared to TE FRR as this is purely depending on triggers for detection and the above mentioned triggers should not take that long to be detected.

This feature has been made available as part of link-state protocol i.e. both ISIS and OSPF. This feature is mainly available in IOS-XR but has also been made available after IOS version 15.1(2)S.

Lets now see another example on a similar topology as discussed above. In this example we'll discuss regarding the configuration and various show and debug commands for the IP LFA FRR.

In the setup are are having two IOS and two IOS-XR routers.

Note: In order to do some good testing scenarios, I have added two links between the two IOS-XR routers.

Now lets have a look at the configuration and some of the outputs related to fast-reroute on IOS as well as IOS-XR devices.

Configuration on IOS router R3:
===============================
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#
*Sep  7 02:07:58.814: %SYS-5-CONFIG_I: Configured from console by console
R3(config)#router ospf 100
R3(config-router)#fast-reroute per-prefix enable area 0 prefix-priority high 
R3(config-router)#end
R3#
R3#
R3#sh ip cef 4.4.4.4 det
4.4.4.4/32, epoch 0, per-destination sharing
  local label info: global/20
  nexthop 9.9.13.1 Ethernet0/0 label [16002|16002]
    repair: attached-nexthop 9.9.23.1 Ethernet1/0
  nexthop 9.9.23.1 Ethernet1/0 label [16002|16002]
    repair: attached-nexthop 9.9.13.1 Ethernet0/0

R3#sh ip cef 4.4.4.4 internal 
4.4.4.4/32, epoch 0, RIB[I], refcount 5, per-destination sharing
  sources: RIB, LTE 
  feature space:
   IPRM: 0x00028000
   LFD: 4.4.4.4/32 1 local label
   local label info: global/20
        contains path extension list
        disposition chain 0xEE1E163C
        label switch chain 0xEE1E163C
  ifnums:
   Ethernet0/0(2): 9.9.13.1
   Ethernet1/0(6): 9.9.23.1
  path EEFB12D0, path list EFBFFD54, share 1/1, type attached nexthop, for IPv4, flags has-repair
    MPLS short path extensions: MOI flags = 0x20 label 16002
  nexthop 9.9.13.1 Ethernet0/0 label [16002|16002], adjacency IP adj out of Ethe
  rnet0/0, addr 9.9.13.1 EE940DB0
    repair: attached-nexthop 9.9.23.1 Ethernet1/0 (EEFB1340)
  path EEFB1340, path list EFBFFD54, share 1/1, type attached nexthop, for IPv4, flags has-repair
    MPLS short path extensions: MOI flags = 0x20 label 16002
  nexthop 9.9.23.1 Ethernet1/0 label [16002|16002], adjacency IP adj out of Ethernet1/0, addr 9.9.23.1 EF400930
    repair: attached-nexthop 9.9.13.1 Ethernet0/0 (EEFB12D0)
  output chain:
    loadinfo EE1E163C, per-session, 2 choices, flags 009B, 7 locks
    flags: Per-session, for-rx-IPv4, for-mpls-at-eos, for-mpls-not-at-eos, 2buckets
      2 hash buckets
      < 0 > label [16002|16002]
           FRR Primary (0xEFC00AC8)
           <primary:  TAG adj out of Ethernet0/0, addr 9.9.13.1 EE940C50>
           <repair:  TAG adj out of Ethernet1/0, addr 9.9.23.1 EF4007D0>
      < 1 > label [16002|16002]
           FRR Primary (0xEFC00A20)
           <primary:  TAG adj out of Ethernet1/0, addr 9.9.23.1 EF4007D0>
           <repair:  TAG adj out of Ethernet0/0, addr 9.9.13.1 EE940C50>
    Subblocks:
     None
R3#

R3#show ip ospf fast-reroute 

            OSPF Router with ID (3.3.3.3) (Process ID 100)

Loop-free Fast Reroute protected prefixes:

           Area        Topology name   Priority   Remote LFA Enabled
              0                 Base       High                   No

  Repair path selection policy tiebreaks (built-in default policy):
     10  srlg
     20  primary-path
     30  interface-disjoint
     40  lowest-metric
     50  linecard-disjoint
     60  node-protecting
     70  broadcast-interface-disjoint
    256  load-sharing

Last SPF calculation started 05:34:23 ago and was running for 1 ms.

R3#

R3#show ip ospf fast-reroute prefix-summary 

            OSPF Router with ID (3.3.3.3) (Process ID 100)
                    Base Topology (MTID 0)

Area 0:

Interface        Protected    Primary paths    Protected paths Percent protected
                             All  High   Low   All  High   Low    All High  Low
Lo0                    Yes     0     0     0     0     0     0     0%   0%   0%
Et1/0                  Yes     5     2     3     2     2     0    40% 100%   0%
Et0/0                  Yes     5     2     3     2     2     0    40% 100%   0%

Area total:                   10     4     6     4     4     0    40% 100%   0%

Process total:                10     4     6     4     4     0    40% 100%   0%

R3#


IOS-XR Configuration on router XR1:
===================================

RP/0/0/CPU0:XR1(config)#router ospf 100
RP/0/0/CPU0:XR1(config-ospf)#ar 0
RP/0/0/CPU0:XR1(config-ospf-ar)#fast-reroute ?
  per-link  Per-link Computation
RP/0/0/CPU0:XR1(config-ospf-ar)#fast-reroute per-link ?
  disable  Disable Computation of Per-link Loop Free Alternates
  enable   Enable Per-link Computation of Loop Free Alternates
  exclude  Per-link LFA exclusion information
RP/0/0/CPU0:XR1(config-ospf-ar)#fast-reroute per-link enable ?
  <cr>  
RP/0/0/CPU0:XR1(config-ospf-ar)#fast-reroute per-link enable 
RP/0/0/CPU0:XR1(config-ospf-ar)#commit                        
Thu Sep  6 20:07:39.693 MDT
end
RP/0/0/CPU0:XR1(config-ospf-ar)#end
RP/0/0/CPU0:XR1#

RP/0/0/CPU0:XR1#sh route 2.2.2.2
Fri Sep  7 01:47:23.278 MDT

Routing entry for 2.2.2.2/32
  Known via "ospf 100", distance 110, metric 2, type intra area
  Installed Sep  6 20:07:40.263 for 05:39:43
  Routing Descriptor Blocks
    9.9.14.2, from 2.2.2.2, via GigabitEthernet0/0/0/0, Backup
      Route metric is 0
    9.9.12.2, from 2.2.2.2, via GigabitEthernet0/0/0/1, Protected
      Route metric is 2
    9.9.21.2, from 2.2.2.2, via GigabitEthernet0/0/0/2, Protected
      Route metric is 2
  No advertising protos. 
RP/0/0/CPU0:XR1#

RP/0/0/CPU0:XR1#sh cef 2.2.2.2 detail 
Fri Sep  7 03:51:03.668 MDT
2.2.2.2/32, version 0, internal 0x4004001 (ptr 0x570e1f28) [1], 0x0 (0x570c16ac), 0x450 (0x577ac07c)
 Updated Sep  6 20:07:40.297 
 local adjacency 9.9.12.2
 Prefix Len 32, traffic index 0, precedence routine (0)
  gateway array (0x57001f5c) reference count 6, flags 0x28000d0, source lsd (2), 
                [5 type 4 flags 0x10101 (0x576542d4) ext 0x0 (0x0)]
  LW-LDI[type=1, refc=1, ptr=0x570c16ac, sh-ldi=0x576542d4]
   via 9.9.14.2, GigabitEthernet0/0/0/0, 8 dependencies, weight 0, class 0, backup [flags 0x300]
    path-idx 0
    next hop 9.9.14.2
    local adjacency
     local label 16000      labels imposed {17}
   via 9.9.12.2, GigabitEthernet0/0/0/1, 0 dependencies, weight 0, class 0, protected [flags 0x400]
    path-idx 1, bkup-idx 0 [0x577dc1e0 0x577dc0f8]
    next hop 9.9.12.2
     local label 16000      labels imposed {ImplNull}
   via 9.9.21.2, GigabitEthernet0/0/0/2, 0 dependencies, weight 0, class 0, protected [flags 0x400]
    path-idx 2, bkup-idx 0 [0x577dc3b0 0x577dc2c8]
    next hop 9.9.21.2
     local label 16000      labels imposed {ImplNull}


    Load distribution: 0 1 0 1 (refcount 5)

    Hash  OK  Interface                 Address
    0     Y   GigabitEthernet0/0/0/1    9.9.12.2       
    1     Y   GigabitEthernet0/0/0/2    9.9.21.2       
    2     Y   GigabitEthernet0/0/0/1    9.9.12.2       
    3     Y   GigabitEthernet0/0/0/2    9.9.21.2       
RP/0/0/CPU0:XR1#

RP/0/0/CPU0:XR1#show ospf routes backup-path 
Fri Sep  7 01:45:08.880 MDT

Topology Table for ospf 100 with ID 1.1.1.1

Codes: O - Intra area, O IA - Inter area
       O E1 - External type 1, O E2 - External type 2
       O N1 - NSSA external type 1, O N2 - NSSA external type 2

O    1.1.1.1/32, metric 1 
       1.1.1.1, directly connected, via Loopback0
O    2.2.2.2/32, metric 2 
       9.9.12.2, from 2.2.2.2, via GigabitEthernet0/0/0/1, path-id 1
           Backup path:
              9.9.14.2, from 2.2.2.2, via GigabitEthernet0/0/0/0, protected bitmap 0x3
       9.9.21.2, from 2.2.2.2, via GigabitEthernet0/0/0/2, path-id 2
           Backup path:
              9.9.14.2, from 2.2.2.2, via GigabitEthernet0/0/0/0, protected bitmap 0x3
O    3.3.3.3/32, metric 2 
       9.9.13.2, from 3.3.3.3, via GigabitEthernet0/0/0/5, path-id 1
           Backup path:
              9.9.12.2, from 3.3.3.3, via GigabitEthernet0/0/0/1, protected bitmap 0x1
O    4.4.4.4/32, metric 2 
       9.9.14.2, from 4.4.4.4, via GigabitEthernet0/0/0/0, path-id 1
           Backup path:
              9.9.12.2, from 4.4.4.4, via GigabitEthernet0/0/0/1, protected bitmap 0x1
O    9.9.12.0/24, metric 1 
       9.9.12.1, directly connected, via GigabitEthernet0/0/0/1
O    9.9.13.0/24, metric 1 
       9.9.13.1, directly connected, via GigabitEthernet0/0/0/5
O    9.9.14.0/24, metric 1 
       9.9.14.1, directly connected, via GigabitEthernet0/0/0/0
O    9.9.21.0/24, metric 1 
       9.9.21.1, directly connected, via GigabitEthernet0/0/0/2
O    9.9.23.0/24, metric 2 
       9.9.12.2, from 3.3.3.3, via GigabitEthernet0/0/0/1, path-id 1
           Backup path:
              9.9.14.2, from 3.3.3.3, via GigabitEthernet0/0/0/0, protected bitmap 0x3
       9.9.21.2, from 3.3.3.3, via GigabitEthernet0/0/0/2, path-id 2
           Backup path:
              9.9.14.2, from 3.3.3.3, via GigabitEthernet0/0/0/0, protected bitmap 0x3
O    9.9.24.0/24, metric 2 
       9.9.12.2, from 4.4.4.4, via GigabitEthernet0/0/0/1, path-id 1
           Backup path:
              9.9.14.2, from 4.4.4.4, via GigabitEthernet0/0/0/0, protected bitmap 0x3
       9.9.21.2, from 4.4.4.4, via GigabitEthernet0/0/0/2, path-id 2
           Backup path:
              9.9.14.2, from 4.4.4.4, via GigabitEthernet0/0/0/0, protected bitmap 0x3
RP/0/0/CPU0:XR1#

Now, from the above output you can see that on R3, there is a backup path prepared and installed in the RIB when we configured the FRR under the ospf process. Even in the "show ip cef output" we can notice that each entry has a backup associated with it. Since all the links are of equal cost, the traffic will be load-balanced and every interface has the other interface acting as a backup. 

Even in the IOS-XR routers, we can see from the "show ospf routes backup-path" output that some of the entries have a backup path attached to it which shows how LFA FRR is working on XR routers. Now lets have a look at the debug commands and their outputs when we enable the fast-reroute on the router. We shall also see the bucket utilization of the traffic when its getting load-balanced.

Debugs
======
On R4:
======
R4#sh ip cef 3.3.3.3 det
3.3.3.3/32, epoch 0, per-destination sharing
  local label info: global/16
  nexthop 9.9.14.1 Ethernet1/0 label 16001
  nexthop 9.9.24.1 Ethernet0/0 label 16000
R4#
R4#
R4#debug ip ospf fast-reroute spf detail 
OSPF Loop-free FastReroute SPF computation debugging is on for unicast base topology with detail

R4#debug ip ospf fast-reroute rib ?
  <1-199>      Access list
  <1300-2699>  Access list (expanded range)
  <cr>

R4#debug ip ospf fast-reroute rib 
OSPF Loop-free FastReroute local RIB debugging is on
R4#

R4#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R4(config)#router ospf 100
R4(config-router)#fast-reroute per-prefix enable area 0 prefix-priority high
R4(config-router)#


R4(config-router)#
*Sep  7 03:07:50.550: OSPF-100 FRSPF: Scheduling IPFRR SPF, change 'R, N', area 0, instance 5 
*Sep  7 03:07:50.550: OSPF-100 FRSPF: Scheduling IPFRR SPF, change 'SN, SA', area 0, instance 5 
*Sep  7 03:07:50.550: OSPF-100 FRSPF: IPFRR events pending processing (need-spf, need-inter-spf)
*Sep  7 03:07:50.550: OSPF-100 FRSPF: Waiting for delay timer expiration
*Sep  7 03:07:51.052: OSPF-100 FRSPF: IPFRR events pending processing (need-spf, need-inter-spf)
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Create list of candidate neighbors for intra SPF in area 0 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding neighbor 2.2.2.2 via Ethernet0/0 to SPF work queue 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding neighbor 1.1.1.1 via Ethernet1/0 to SPF work queue 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: IPFRR events pending processing (service-spf-workQ, need-inter-spf)
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Servicing intra-area SPF work queue
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Intra-area calcualtion for neighbor 1.1.1.1 in area 0 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree router LSA 1.1.1.1, distance 0 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 3, id 1.1.1.1, data 255.255.255.255 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.14.2, data 9.9.14.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.14.2, adv 4.4.4.4 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.12.2, data 9.9.12.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.12.2, adv 2.2.2.2 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.21.2, data 9.9.21.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.21.2, adv 2.2.2.2 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.13.2, data 9.9.13.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.13.2, adv 3.3.3.3 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.13.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 3.3.3.3 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 1, id 3.3.3.3, adv 3.3.3.3 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.21.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 1, id 2.2.2.2, adv 2.2.2.2 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.14.2 
*Sep  7 03:07:51.052: OSPF-100 FRRIB: Adding route to Net node 9.9.14.2, adv 4.4.4.4 with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 4.4.4.4 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 1, id 4.4.4.4, adv 4.4.4.4 on the candidate list with distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.052: OSPF-100 FRRIB: Adding router 1.1.1.1 route: intra-area path, distance 0 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.12.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Equal distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree router LSA 4.4.4.4, distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 3, id 4.4.4.4, data 255.255.255.255 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.24.2, data 9.9.24.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.24.2, adv 4.4.4.4 on the candidate list with distance 11 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.14.2, data 9.9.14.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 1 with 11 
*Sep  7 03:07:51.052: OSPF-100 FRRIB: Adding router 4.4.4.4 route: intra-area path, distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree router LSA 2.2.2.2, distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 3, id 2.2.2.2, data 255.255.255.255 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.23.2, adv 3.3.3.3 on the candidate list with distance 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.23.2, data 9.9.23.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.12.2, data 9.9.12.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.21.2, data 9.9.21.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.24.2, data 9.9.24.1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Improve LSA type 2, id 9.9.24.2, adv 4.4.4.4 on the candidate list with distance 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree router LSA 3.3.3.3, distance 1 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 3, id 3.3.3.3, data 255.255.255.255 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.23.2, data 9.9.23.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 2 with 11 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link type 2, id 9.9.13.2, data 9.9.13.2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 1 with 11 
*Sep  7 03:07:51.052: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.24.2 
*Sep  7 03:07:51.052: OSPF-100 FRRIB: Adding route to Net node 9.9.24.2, adv 4.4.4.4 with distance 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 4.4.4.4 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.052: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Adding router 2.2.2.2 route: intra-area path, distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.23.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 3.3.3.3 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing stub links of router LSA 1.1.1.1 with dist 0 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Stub link 1.1.1.1/255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Add to LRIB repair path 1.1.1.1/255.255.255.255 via neighbor 1.1.1.1, area 0, type Intra, D(N,D)=1 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Finished processing LFA, added 0 repair paths 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing stub links of router LSA 2.2.2.2 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Stub link 2.2.2.2/255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Add to LRIB repair path 2.2.2.2/255.255.255.255 via neighbor 1.1.1.1, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: For primary path via 9.9.24.1 Ethernet0/0 repair path via 9.9.14.1 Ethernet1/0 flags are (Repair, IntfDj, BcastDj, LC Dj, Downstr) 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Adding repair path after path via 9.9.24.1  Ethernet0/0, flags (RIB) 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Finished processing LFA, added 1 repair paths 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing stub links of router LSA 3.3.3.3 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Stub link 3.3.3.3/255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Add to LRIB repair path 3.3.3.3/255.255.255.255 via neighbor 1.1.1.1, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: For primary path via 9.9.24.1 Ethernet0/0 repair path via 9.9.14.1 Ethernet1/0 flags are (Repair, IntfDj, BcastDj, PrimPath, LC Dj, NodeProt, Downstr) 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Adding repair path after path via 9.9.24.1 Ethernet0/0, flags (RIB) 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Finished processing LFA, added 1 repair paths 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing stub links of router LSA 4.4.4.4 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Stub link 4.4.4.4/255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Add to LRIB repair path 4.4.4.4/255.255.255.255 via neighbor 1.1.1.1, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.053: OSPF-100 FRRIB:   Not an LFA; D(N,D)=2, D(N,S)=1, D(S,D)=1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.12.2, adv 2.2.2.2 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.12.2/2.2.2.2, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.13.2, adv 3.3.3.3 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.13.2/3.3.3.3, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.14.2, adv 4.4.4.4 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.14.2/4.4.4.4, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.21.2, adv 2.2.2.2 with dist 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.21.2/2.2.2.2, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.23.2, adv 3.3.3.3 with dist 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.23.2/3.3.3.3, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Processing Net LSA 9.9.24.2, adv 4.4.4.4 with dist 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Skip LSA 2/9.9.24.2/4.4.4.4, insufficient prefix priority 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: IPFRR events pending processing (service-spf-workQ, need-inter-spf)
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Servicing intra-area SPF work queue
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Intra-area calcualtion for neighbor 2.2.2.2 in area 0 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree router LSA 2.2.2.2, distance 0 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 3, id 2.2.2.2, data 255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.23.2, data 9.9.23.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.23.2, adv 3.3.3.3 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.12.2, data 9.9.12.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.12.2, adv 2.2.2.2 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.21.2, data 9.9.21.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.21.2, adv 2.2.2.2 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.24.2, data 9.9.24.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.24.2, adv 4.4.4.4 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.24.2 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Adding route to Net node 9.9.24.2, adv 4.4.4.4 with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 4.4.4.4 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 1, id 4.4.4.4, adv 4.4.4.4 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.053: OSPF-100 FRRIB: Adding router 2.2.2.2 route: intra-area path, distance 0 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.21.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 1, id 1.1.1.1, adv 1.1.1.1 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.23.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 3.3.3.3 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 1, id 3.3.3.3, adv 3.3.3.3 on the candidate list with distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.12.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Equal distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link to rtr id 2.2.2.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 0 with 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree router LSA 3.3.3.3, distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 3, id 3.3.3.3, data 255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.23.2, data 9.9.23.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 11 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.13.2, data 9.9.13.2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.13.2, adv 3.3.3.3 on the candidate list with distance 11 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree router LSA 1.1.1.1, distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 3, id 1.1.1.1, data 255.255.255.255 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.14.2, data 9.9.14.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Add LSA type 2, id 9.9.14.2, adv 4.4.4.4 on the candidate list with distance 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.12.2, data 9.9.12.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.21.2, data 9.9.21.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 2, id 9.9.13.2, data 9.9.13.1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:     Improve LSA type 2, id 9.9.13.2, adv 3.3.3.3 on the candidate list with distance 2 
*Sep  7 03:07:51.053: OSPF-100 FRSPF: Adding to SPF tree router LSA 4.4.4.4, distance 1 
*Sep  7 03:07:51.053: OSPF-100 FRSPF:   Processing link type 3, id 4.4.4.4, data 255.255.255.255 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link type 2, id 9.9.24.2, data 9.9.24.2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 1 with 11 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link type 2, id 9.9.14.2, data 9.9.14.2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 2 with 11 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Adding router 4.4.4.4 route: intra-area path, distance 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.13.2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link to rtr id 3.3.3.3 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Adding to SPF tree network LSA 9.9.14.2 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Adding route to Net node 9.9.14.2, adv 4.4.4.4 with distance 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link to rtr id 4.4.4.4 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Processing link to rtr id 1.1.1.1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:     Can't improve distance 1 with 2 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Adding router 1.1.1.1 route: intra-area path, distance 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing stub links of router LSA 1.1.1.1 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Stub link 1.1.1.1/255.255.255.255 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Add to LRIB repair path 1.1.1.1/255.255.255.255 via neighbor 2.2.2.2, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: For primary path via 9.9.14.1 Ethernet1/0 repair path via 9.9.24.1 Ethernet0/0 flags are (Repair, IntfDj, BcastDj, LC Dj, Downstr) 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Adding repair path after path via 9.9.14.1 Ethernet1/0, flags (RIB) 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing LFA, added 1 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing stub links of router LSA 2.2.2.2 with dist 0 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Stub link 2.2.2.2/255.255.255.255 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Add to LRIB repair path 2.2.2.2/255.255.255.255 via neighbor 2.2.2.2, area 0, type Intra, D(N,D)=1 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing LFA, added 0 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing stub links of router LSA 3.3.3.3 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Stub link 3.3.3.3/255.255.255.255 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Add to LRIB repair path 3.3.3.3/255.255.255.255 via neighbor 2.2.2.2, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: For primary path via 9.9.14.1 Ethernet1/0 repair path via 9.9.24.1 Ethernet0/0 flags are (Repair, IntfDj, BcastDj, PrimPath, LC Dj, NodeProt, Downstr) 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Adding repair path after path via 9.9.14.1 Ethernet1/0, flags (RIB) 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing LFA, added 1 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing stub links of router LSA 4.4.4.4 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Stub link 4.4.4.4/255.255.255.255 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Add to LRIB repair path 4.4.4.4/255.255.255.255 via neighbor 2.2.2.2, area 0, type Intra, D(N,D)=2 
*Sep  7 03:07:51.054: OSPF-100 FRRIB:   Not an LFA; D(N,D)=2, D(N,S)=1, D(S,D)=1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.12.2, adv 2.2.2.2 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.12.2/2.2.2.2, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.13.2, adv 3.3.3.3 with dist 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.13.2/3.3.3.3, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.14.2, adv 4.4.4.4 with dist 2 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.14.2/4.4.4.4, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.21.2, adv 2.2.2.2 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.21.2/2.2.2.2, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.23.2, adv 3.3.3.3 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.23.2/3.3.3.3, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Processing Net LSA 9.9.24.2, adv 4.4.4.4 with dist 1 
*Sep  7 03:07:51.054: OSPF-100 FRSPF:   Skip LSA 2/9.9.24.2/4.4.4.4, insufficient prefix priority 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (service-spf-workQ, need-inter-spf)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Servicing intra-area SPF work queue
*Sep  7 03:07:51.054: OSPF-100 FRSPF: No more pending intra SPF, schedule inter SPF
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (need-inter-spf)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Marking backbone area for inter-area SPF
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (service-inter-spfQ)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Calculating inter-area prefixes from area 0 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (service-inter-spfQ)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Inter-area SPF completed, schedule ASBR computation
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (asbr-spf)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Servicing Type-4 LSAs in backbone area
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Calculating router routes from Type-4 LSAs in area 0 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Type-4 LSA SPF completed, schedule external SPF
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (need-ase-spf)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Pre-process summary partial SPF queue
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Marking all areas for AS external SPF
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (service-ase-spfQ)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: AS extetrnal SPF completed, scan for unprotected pfxs
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (scan-unprotected)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Scan for unprotected prefixes done, schedule building RmtLFA work queue
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (need-remote-lfa)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Prepare protected gateways in area 0 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: RmtLFA work queue created, schedule calculation
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (service-rmt-lfa-workQ)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: RmtLFA starting rSPF in area 0 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: RmtLFA release node selection done, schedule creation of tunnels
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (place-rmt-lfa-tunnels)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Tunnel creation done, schedule LRIB sync
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (lrib-sync)
*Sep  7 03:07:51.054: OSPF-100 FRSPF: Sync LRIB for routes type 'R, N, SN, SA, X'
*Sep  7 03:07:51.054: OSPF-100 FRRIB: RmtLFA analyzing route 1.1.1.1/32 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing RmtLFA, added 0 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: RmtLFA analyzing route 2.2.2.2/32 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing RmtLFA, added 0 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRRIB: RmtLFA analyzing route 3.3.3.3/32 
R4(config-router)#
*Sep  7 03:07:51.054: OSPF-100 FRRIB: Finished processing RmtLFA, added 0 repair paths 
*Sep  7 03:07:51.054: OSPF-100 FRSPF: LRIB sync done, schedule verification of release nodes
*Sep  7 03:07:51.054: OSPF-100 FRSPF: IPFRR events pending processing (release-node-verify)
*Sep  7 03:07:51.055: OSPF-100 FRSPF: IPFRR events pending processing (service-partial-spfQ)
*Sep  7 03:07:51.055: OSPF-100 FRSPF: Servicing partial SPF
R4(config-router)#
R4(config-router)#end
R4#

R4#sh ip cef 3.3.3.3 detail 
3.3.3.3/32, epoch 0, per-destination sharing
  local label info: global/16
  nexthop 9.9.14.1 Ethernet1/0 label [16001|16000]
    repair: attached-nexthop 9.9.24.1 Ethernet0/0
  nexthop 9.9.24.1 Ethernet0/0 label [16000|16001]
    repair: attached-nexthop 9.9.14.1 Ethernet1/0
R4#

R4#sh run | in cef
ip cef
ip cef accounting load-balance-hash
no ipv6 cef
R4#

R4#sh ip cef 3.3.3.3 internal 
3.3.3.3/32, epoch 0, RIB[I], refcount 5, per-destination sharing
  sources: RIB, LTE 
  feature space:
   IPRM: 0x00028000
   LFD: 3.3.3.3/32 1 local label
   local label info: global/16
        contains path extension list
        disposition chain 0xEE206604
        label switch chain 0xEE206604
  ifnums:
   Ethernet0/0(2): 9.9.24.1
   Ethernet1/0(6): 9.9.14.1
  path EEDEEB80, path list EFBB6634, share 1/1, type attached nexthop, for IPv4, flags has-repair
    MPLS short path extensions: MOI flags = 0x20 label 16001
  nexthop 9.9.14.1 Ethernet1/0 label [16001|16000], adjacency IP adj out of Ethernet1/0, addr 9.9.14.1 ECCFC5E8
    repair: attached-nexthop 9.9.24.1 Ethernet0/0 (EEDEEBF0)
  path EEDEEBF0, path list EFBB6634, share 1/1, type attached nexthop, for IPv4, flags has-repair
    MPLS short path extensions: MOI flags = 0x20 label 16000
  nexthop 9.9.24.1 Ethernet0/0 label [16000|16001], adjacency IP adj out of Ethernet0/0, addr 9.9.24.1 EF425930
    repair: attached-nexthop 9.9.14.1 Ethernet1/0 (EEDEEB80)
  output chain:
    loadinfo EE206604, per-session, 2 choices, flags 009B, 7 locks
    flags: Per-session, for-rx-IPv4, for-mpls-at-eos, for-mpls-not-at-eos, 2buckets
    2 hash buckets
      < 0 > label [16001|16000]
           FRR Primary (0xEE1B4B68)
           <primary:  TAG adj out of Ethernet1/0, addr 9.9.14.1 ECCFC488>
           <repair:  TAG adj out of Ethernet0/0, addr 9.9.24.1 EF4257D0>
      < 1 > label [16000|16001]
           FRR Primary (0xEFBB4B98)
           <primary:  TAG adj out of Ethernet0/0, addr 9.9.24.1 EF4257D0>
           <repair:  TAG adj out of Ethernet1/0, addr 9.9.14.1 ECCFC488>
    Subblocks:
     Hash Bucket Usage:
       Bucket/Choice   Packets         Bytes     Usage  Histogram
          < 0/0 >            0             0      0.0%  
          < 1/1 >            0             0      0.0%  
       -----------------------------------------------
          Totals             0             0    100.0% (ideal:50.0%)
     Choice usage:
       Choice/Share    Packets         Bytes     Usage  Histogram
          < 0/1 >            0             0      0.0%  
          < 1/1 >            0             0      0.0%  
       -----------------------------------------------
          Totals             0             0    100.0%

 

If you see the debug output, the SPF algorithm tries to work on looking at different candidate interfaces of FRR and then installing the LFA backup path in the RIB. The primary link is chosen based on the normal SPF algorithm along with CEF. By default when you enable fast-route under the OSPF process, it will automatically enable it under all the interfaces participating in OSPF process. You need to go under a particular interface to disable the interface to participate in FRR using the interface mode command "ip ospf fast-reroute per-prefix candidate disable".

Hope you enjoyed this post. Please post your comments to discuss any doubts regarding the same.

Cheers...!!!

Comments (1) -

Comments are closed