Subject: RE: PHP

From: Shahram Davari <[email-masked]>
Date: Tue, 23 Apr 2002 10:10:21 -0700

Eric,

> 1. The penultimate  node pops the last  label off the stack,  
> creates a data
>    link layer frame with IPv4 as the protocol type, and 
> transmits the frame.
>    The receiver  of the  frame checks the  first nibble  to 
> see what  the IP
>    version is  and treats  the packet as  IPv4 or  IPv6 
> depending on  the IP
>    version.
> 
> 2. The penultimate node pops the stack,  checks the first 
> nibble to see what
>    the IP version  is, and creates a data link layer  frame 
> with either IPv4
>    or IPv6  as the protocol type, depending  on the value of  
> the IP version
>    field. 
> 
> What I meant was 1; I'm not sure which Kireeti meant. 
> 

Both these methods have architectural problems. The first method
uses IPV4 L3PID for an IPV6 packet, which could create interoperability
issues as was mentioned by some one on the list. The second method is
not compliant with MPLS PHP (as you mentioned), since only label 
lookup should be done at penultimate node.

There are 2 architecturally correct solutions:

3) Use a different LSP for IPV4 a IPV6. In that case the PHP knows what
version of IP is the payload, without looking at IP header.

4) If you like to multiplex IPV4 and IPv6 in a single LSP, then use IPV4
and IPV6 explicit null labels.

-Shahram