The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2003-Jan> msg00161



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

Vpns vs explicit null label

  • From: Eric Rosen <erosen@cisco.com>
  • Date: Wed, 29 Jan 2003 14:01:10 -0500
  • cc: Alia Atlas <aatlas@avici.com>, francis.arts@alcatel.be, mpls@UU.NET
  • User-Agent: EMH/1.14.1 SEMI/1.14.3 (Ushinoya) FLIM/1.14.3(Unebigoryōmae) APEL/10.3 Emacs/21.2(sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)


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.