The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2001-Jun> msg00047



[Date Prev][Date Next][Thread Prev][Thread Next]  
  [Date Index][Thread Index][Author Index][Subject Index]

LDP requires break-before-make

  • From: Chris Kuszmaul <fyodor@pluris.com>
  • Date: Mon, 04 Jun 2001 11:05:18 -0700
  • CC: Eric Gray <eric.gray@sandburst.com>, MPLS Mailing List <mpls@UU.NET>
  • Organization: Pluris


 Looks right to me.

CLK

"Patricia A. Holden" wrote:

> So what you are saying is that A sends a label-withdraw(of label1) followed by a
> label-mapping(of label2) message to B and B sends back a label-release(of label1) to A
> after completing the label-mapping message(of label2).  Is my understanding correct?
>
> Thanks,
> Pat
>
> Chris Kuszmaul wrote:
>
> > Hi Eric
> >
> >   I think you are right.  Consider LSRs A and B.
> >
> > A sends to B the label mapping: <label1, FEC>
> >
> > There is nothing I am aware of in the spec that prevents A from sending another
> > mapping, such as:
> > <label2, FEC>, prior to receiving a label release (of label1) from B.
> >
> >  What I was saying was that B had to release label1 (transmit a label release to A)
> > before B could accept the mapping of label2. Your solution, of combining a label
> > withdrawal (of label1) with the label mapping of label2, in a PDU, seems to basically
> > make sense.
> >
> >   The semantics of ordering is necessary, but not sufficient to prevent a break before
> > make. I think there needs to be a sense of atomicity as well: Both the label
> > withdrawal and the label mapping need to be done, or neither should be done. In
> > particular, the label release message transmitted by B MUST be contemporaneous with
> > the completion of the label mapping.  The LDP spec does not *preclude* just such a
> > behavior, and so a PDU containing a label withdrawal and a label mapping can be
> > treated as a label-mapping-overwrite, without violating the spec, and thus preventing
> > a break before make.
> >
> > CLK
> >
> > Eric Gray wrote:
> >
> > > Chris,
> > >
> > >     I understand your concern.  A few years ago (early '98) I had
> > > proposed a semantic interpretation for LDP that  directly related
> > > to this.  The response was to explicitly prohibit the behavior
> > > which would have had this semantic.
> > >
> > >     I had suggested that (in DU mode) an LSR that advertised a
> > > new label for exactly the same FEC as it had previously advertised
> > > a different label meant for the upstream LSR to replace the previous
> > > label with the new one.  Over time, I came to undestand why this
> > > may have been a little too simplistic.  Also, it may be needed when
> > > DoD label advertisement is being used as well.
> > >
> > >     I think your basic idea of using a new message type will work.
> > > I had thought of that and talked with a couple of people on the LDP
> > > design team about it - and they were not too receptive to the idea
> > > as part of the base LDP specification (adds complexity not really
> > > required for basic functionality).  Also - at the time - I thought it
> > > possible to achieve a very similar result by simply including both
> > > the label withdraw and the new label mapping in the same PDU (an
> > > LDP PDU can contain multiple LDP messages).
> > >
> > >     Of course, this latter approach depends on a few things:
> > >
> > >         o    that you are not correct in your assertion that a downstream
> > >                 LSR is required to wait for a label release message prior
> > >                 to sending a new label mapping (*),
> > >
> > >         o    that an upstream LSR actually looks for a 'replacement'
> > >                 label mapping message in a PDU that contains a label
> > >                 withdraw message,
> > >
> > >         o    that this upstream LSR processes multiple messages in a
> > >                 single PDU in the order in which they appear in the PDU
> > >
> > >                 and
> > >
> > >         o    that the dowbstream LSR put them in the PDU in the order
> > >                 in which it expected them to be processed (+).
> > >
> > > *    I think that the requirement is that the downstream LSR MUST
> > >         not re-use the same label until it receives a label release for a
> > >         label it has withdrawn.  I do not think there is any statement in
> > >         the specification that prohibits sending a new label mapping
> > >         prior to receiving a label release for the previous mapping for
> > >         the same FEC.  Please let me know if there is text in the spec
> > >         to the contrary.
> > >
> > > +    Given that I am right in my interpretation of the current spec wrt
> > >         issuing a new label mapping after a label withdraw, the last two
> > >         bullets naturally fall out since the current restriction on sending
> > >         a new label mapping (with a different label) prior to withdrawing
> > >         a prior label mapping imposes an ordering resptriction on adding
> > >         messages to a PDU and processing them on receipt.  This ordering
> > >         is not hard to achieve.
> > >
> > >     Essentially, a downstream LSR can try this approach and hope that
> > > the upstream LSR was built to be robust and resilient (either using the
> > > approach above, or some other approach).
> > >
> > > --
> > > Eric Gray
> > >
> > > You wrote:
> > >
> > > >  Before a label can be mapped to an FEC that has already been mapped, the LSR
> > > > must release the old label (prompted perhaps by a withdrawal message). Thus, LDP
> > > > calls for a break-before-make on LSP updates.  It would seem a straightforward
> > > > matter for the protocol to include a withdraw-and-map message that performs this
> > > > sequence atomically, and so preserves a make-before-break condition.
> > > >
> > > >   Is there some reason for not providing for this kind of functionality?
> > > >
> > > >  Thanks for any comments.
> > > >
> > > > CLK
> > > >
> > > > PS: The careful reader will realize that I have mentioned this issue before in
> > > > the thread [Re: Receive Label Receive !!], but have not seen any reply. This is
> > > > an attempt to focus the question and broaden the pool of possible respondents.