The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2002-Jan> msg00126



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

LDP protocol problem?

  • From: Jack Brennen <John.Brennen@marconi.com>
  • Date: Fri, 18 Jan 2002 10:10:12 -0500

Abhijit Gadgil wrote:
> 
> John.Brennen@marconi.com wrote :
> 
> >  Router A                          Router B
> >  --------                          --------
> >
> >                                    Router A becomes the next hop
> >                                    Sends Label Request
> >  Receives Label Request
> >  Sends Label Mapping (Label 1)
> >                                    Router A becomes NOT the next hop
> >                                    Sends Label Abort Request
> >  Receives Label Abort Request
> >   (which is ignored)
> >                                    Receives Label Mapping (Label 1)
> >                                    Sends Label Release (Label 1)
> >                                     (because Router A is not the next hop)
> >  Sends Label Mapping (Label 1)
> >   (because the hop count changed)
> >                                    Router A becomes the next hop
> >                                    Sends Label Request
> >  Receives Label Release (Label 1)
> >                                    Receives Label Mapping (Label 1)
> >  Receives Label Request
> >  Sends Label Mapping (Label 2)
> >                                    Receives Label Mapping (Label 2)
> >                                    Sends Label Release (Label 2)
> >  Receives Label Release (Label 2)
> >
> >The final outcome is the same.  Router B believes that a
> >Label Mapping exists; Router A believes that no Label Mapping exists.
> 
> Key point missed here is, LRl. 1. and the note at the end of it.

No, that is not relevant to this problem.  Router A is only
re-advertising the label mapping when it receives a label
request from Router B, just as the Note 1 of LRl.1 specifies.
Note that Router A is sending the "update" Label Mapping before
it sees the Label Release from Router B.

> 
> >
> >The problem seems independent of distribution, control, or retention
> >modes.
> 
> Not really, if B is using liberal retention it wont release the mappings
> received as soon as next-hop changes.
> 

Okay, but Router B may release the first (original) mapping due
to a loop-detection problem, and keep the second (update) mapping
due to the loop-detection problem going away.  It may have nothing
to due with a next-hop change on Router B.

Try this scenario in liberal unsolicited mode:

  Router A                          Router B
  --------                          --------

  Sends Label Mapping
   (Path Vector=<B,C,D,A>)
                                    Receives Label Mapping
  Router A gets a new next hop
   for the FEC
  Sends Label Mapping
   (Path Vector=<E,F,G,A>)
                                    Sends Label Release
                                     (loop detected)
  Receives Label Release
                                    Receives Label Mapping



The specification calls for resending of Label Mapping messages
when the Loop Detection information changes.  These resent messages
look just like first-time Label Mapping messages.  If a resent
Label Mapping message from Router A "crosses on the wire" with a
Label Release message from Router B, we have the unfortunate situation
where Router A thinks that the Label Mapping has been released and
not readvertised, but Router B thinks that the Label Mapping has been
released _and readvertised_.

I can't see how to fix this without changing the specification.
Fortunately, the fix can be easy; simply mark all resent ("update")
Label Mapping messages as such.  Then the receiving router will
never confuse an "update" Label Mapping with a re-advertisement.
If an "update" Label Mapping is received which doesn't correspond
to any currently held label, it is silently ignored.

   Jack Brennen