The MPLS WG Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] Vpns vs explicit null label
David> this sort of half-PHP is really the provence of the LSR that David> originated the label. Only consequence of such a spec change is the David> upstream LSR should not squawk or place limitations on such a label David> if received. When the egress node E sends an LDP message binding explicit null to a particular FEC, it is telling the penultimate node P that, under certain circumstances, when P receives an MPLS packet from some third node, P should swap the top label of that packet with explicit null. P will do this when the FEC corresponding to the incoming label of the packet is the same FEC to which E has bound explicit null. Strictly speaking E should only bind explicit null to a particular FEC if it somehow knows that any packets which P sees that correspond to that FEC will be carrying label stacks of no more than one label. In practice, though, it is difficult to make E obey this restriction. I think what you're saying is that if E gets a packet with explicit null at the top of the stack, it has gotten what it asked for, and should handle it in the obvious way. I agree with this, and I'd assumed that this is what would generally be done. But the spec never made this clear. So we've seen cases where E throws the packet away as malformed, and I think we've also seen cases where P throws the packet away rather than sending a "malformed" packet. These lead to lack of interoperability. I think we've also seen cases where P, when processing a packet with more than one label, will treat explicit null as if it had been implicit null; this at least is interoperable. So perhaps what should really be required is: - When the egress LSR pops off explicit null, it should attend to the IPv4/v6 type. Other nodes treat the two kinds of explicit null as equivalent. - When asked to put explicit null on the top of a label stack, one MAY do so, but one SHOULD treat explicit null as if it were implicit null. (Not sure about that "should".) - When creating a label stack with explicit null somewhere in the middle, one MAY put it there, but one SHOULD simply remove it.
|
|