The MPLS WG Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] [Fwd: LDP protocol problem?]
> > But the problem has nothing to do with DoD mode. It occurs in DU mode as well:
> >
> > 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
> >
> > At the end of this scenario, Router B holds a label which he believes was
> > validly advertised by Router A. Router A believes that Router B released
> > the label.
>
> This is a smallish sort of window, which may be sorted by simply
> having Router A send a Label Withdraw when it receives packets
> that are labeled with the labels that Router B mistakenly thinks
> are valid. I think that a robust LSR implementation will do
> that in any case.
>
But Router A believes Router B to have released the label, so he may
reuse it for another purpose. When Router B eventually puts traffic
onto the label (which may occur hours later), there is no reason to
believe that the label will still be unassigned.
And it is a smallish sort of window, but I'm not bringing this to the WG's
attention because of a theoretical concern. This problem is being observed
in our lab under stress conditions. It really happens in the real world. :-(
Another way to look at this, which I hope *clearly* demonstrates the
intractable nature of this problem. Consider these three protocol
conversations:
Conversation 1 Conversation 2
-------------- --------------
Router A Router B Router A Router B
-------- -------- -------- --------
Send LMap Send LMap
Recv LMap Recv LMap
Send LRel Send LRel
NHOP Changes Recv LRel
Send LMap NHOP Changes
Recv LRel Send LMap
Recv LMap Recv LMap
Conversation 3
--------------
Router A Router B
-------- --------
Send LMap
Recv LMap
NHOP Changes
Send LMap
Recv LMap
Send LRel
Recv LRel
These conversations are all legal according to the LDP spec,
and all are reasonably likely to happen. Note that Router B can't
tell the difference between Conversations 1 & 2, and Router A can't
tell the difference between Conversations 1 & 3.
Conversation 1: A ends up with no label allocated, B has a label
Conversation 2: A and B both end up with a label allocated
Conversation 3: A and B both end up with no label allocated
Clearly, Conversation 1 leads to problems, but neither Router A nor
Router B can distinguish this from the valid Conversations 2 & 3.
This is a deficiency in the protocol, and we can brainstorm any number
of methods to work around the problem, but the problem is there,
and should be addressed.
Jack
|
|