Subject: Re: OSPF graceful restart question

From: Vishwas Manral <[email-masked]>
Date: Mon, 13 Sep 2004 22:28:26 -0700

Hi Sanjay,

Let me get to your question in a broader sense. Graceful Restart is used
to prevent as far as possible any packet loss when the control plane is
brought down. On the otherside, we get out of Graceful restart as soon
as we figure out that a loop could occur. So for any change which could
result in a loop in the network we should exit hitless restart. (Your
case included)

The RFC also states of future enhancements for even stricter checks to
prevent exiting graceful restart, as far as possible (hence utilizing
Graceful Restart to the fullest). 

This is a reply to my mail from John Moy (way back in time)
http://peach.ease.lsoft.com/scripts/wa.exe?A2=ind0203&L=ospf&T=0&F=&S=&P
=1888 . I intend to publish this as a draft sometime to meet future
enhancements for Hitless Restart.

Thanks,
Vishwas

-----Original Message-----
From: Mailing List [mailto:[email-masked]] On Behalf Of
Sanjay BM
Sent: Tuesday, September 14, 2004 12:48 AM
To: [email-masked]
Subject: OSPF graceful restart question

Hi,

RFC3623 Section 2.2, bullet item #2 says:

      2) Router X receives an LSA that is inconsistent with its pre-
         restart router-LSA.  For example, X receives a router-LSA
         originated by router Y that does not contain a link to X, even
         though X's pre-start router-LSA did contain a link to Y.  This
         indicates that either a) Y does not support graceful restart,
         b) Y never received the grace-LSA or c) Y has terminated its
         helper mode for some reason (Section 3.2).  A special case of
         LSA inconsistency is when Router X establishes an adjacency
         with router Y and doesn't receive an instance of its own pre-
         restart router LSA.

Is the opposite of this example also true? i.e, X receives a
router-LSA originated by router Y that contains a link to X, but X's
pre-start router-LSA does not contain a link to Y. This indicates that
router Y was cut-off from the network before router X entered graceful
restart and router Y's router-LSA has not yet max aged.

Should router X exit restart mode unsuccessfully for this above case?

Thanx,
Sanjay

---

From: Sanjay BM <[email-masked]>
Date: Tue, 14 Sep 2004 14:38:24 -0700

Hi Vishwas,

I was wondering how could there be a loop in the case I mentioned?
Assume the following network:

  Router-D ------ Router-A ------ Router-B -------- Router-C

Router-D is a backbone router, Router-A is an ABR, Router-B and
Router-C are in area 2. There is a virtual-link from Router-A to
Router-C.

Suppose Router-C went down for some reason, we would have its area 0
Router-LSA in the database of Router-A and Router-D till it ages out.
Note that at this point Router-A has removed the virtual-link from its
area 0 Router-LSA.

Before Router-C's area 0 Router-LSA ages out, if Router-A enters OSPF
graceful restart, then Router-D as a helper will eventually send
Router-C's area 0 Router-LSA to Router-A.

My questions is: Should Router-A consider this as a LSA inconsistency
and hence exit the restart mode unsuccessfully?

Would the following be a wrong thing to do?
      If Router-A looks at its own pre-start area 0 router-LSA, it
will find that there is no virtual-link in it. Hence Router-A should
not consider Router-C's area 0 Router-LSA as a inconsistency. Thereby,
Router-A should not exit restart mode unsuccessfully.

Kindly let me know.

Thanx,
Sanjay