[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Looking for comments on draft for RSVP Graceful Restart extensions(draft-rahman-ccamp-rsvp-restart-extensions-00.txt)



Thanks for the response. Comments inline.

David Charlap wrote:
> 
> Reshad Rahman wrote:
> >
> > Tthe main comment/question was if we could reuse the RRO object instead
> > of defining a new object to recover the contents of an ERO expansion
> > done prior to control plane restart. Here are two potential issues with
> > reusing RRO:
> > - The RRO would contain the full list of nodes whereas the ERO expansion
> > may have been partial. In that situation the downstream node would
> > detect a change in the incoming ERO and may reject the message (the
> > expected behaviour on incoming ERO change seems to be unspecified).
> 
> I hope it doesn't do this.
> 

I haven't seen anything wrt ERO change clearly specified in any of the RFCs. 


> RSVP, by nature is a soft-state protocol.  Implementations should expect
> stuff to change all the time.  When an ERO changes, a node shouldn't
> reject the message.  It should use the new ERO to determine the new
> next-hop.
> 
> If the next hop doesn't change, then the node should leave the LSP in
> place and immediately generate a Path refres, so that downstream
> neighbors get the new ERO as soon as possible.
> 
> If the next hop changes, then it should be treated identically to what
> would happen in response to a route change with a loose ERO-hop or no ERO.
> 
> BTW, I noted that your draft allows an ingress node to recover more
> quickly.  This has been a hole in the GR procedure.  An ingress node
> that is computing an ERO can't re-compute that ERO until routing
> reconverges, and when it does so, there is no guarantee that it will
> compute the same ERO as before the failure.  It could store the ERO in
> non-volatile storage, but that can be problematic if there are thousands
> of LSPs originating.
> 
> Using the recovery-ERO object solves this.  The ingress node can then
> send out a Path (using the preserved forwarding state to know what the
> next-hop is) using an empty (or near-empty) recovery ERO.  The next-hop
> can then send back an immediate Resv containing an appropriate
> recovery-ERO, which the ingress node can use while waiting for routing
> to reconverge.  (Once routing reconverges and recovery completes, of
> course, it will want to compute its own ERO and possibly do a
> make-before-break to the new path if it ends up being better than the
> recovered path.)
> 
> > - RRO uses Class-Number of form 0bbbbbbb, so if the downstream node
> > doesn't support RRO, the whole message is rejected.
> 
> If RRO isn't supported, then the ingress node will know about, since the
> LSP won't come up in the first place.
> 
> If this happens, then the upstream node will know that it can't use this
> method of ERO recovery.  Functionally, this is really no different from
> a node not supporting the recovery-ERO class.


Yes. I was thinking of the case where the LSP hadn't initially been setup with
RRO. Adding RRO in the Path message may result in a PathError but the restarting
node can handle that. So it doesn't seem to be an issue.


> 
> Note that other RSVP extensions (like Fast Reroute) also require RRO
> support as a prerequisite.

We're OK with using RRO to recover ERO, as long as there's agreement/consensus
on how to handle ERO change.

Regards,
Reshad.

> 
> -- David