Subject: Processing the MPLS TTL

From: "Satoru Matsushima" <[email-masked]>
Date: Fri, 1 Dec 2000 18:19:08 +0900

Hi all,

According to draft-ietf-mpls-label-encaps-08.txt,

> 2.4.3. IP-dependent rules

>   We define the "IP TTL" field to be the value of the IPv4 TTL field,
>   or the value of the IPv6 Hop Limit field, whichever is applicable.
>
>   When an IP packet is first labeled, the TTL field of the label stack
>   entry MUST BE set to the value of the IP TTL field.  (If the IP TTL
>   field needs to be decremented, as part of the IP processing, it is
>   assumed that this has already been done.)
>
>   When a label is popped, and the resulting label stack is empty, then
>   the value of the IP TTL field SHOULD BE replaced with the outgoing
>   TTL value, as defined above.  In IPv4 this also requires modification
>   of the IP header checksum.

but this section had continue following.

>   It is recognized that there may be situations where a network
>   administration prefers to decrement the IPv4 TTL by one as it
>   traverses an MPLS domain, instead of decrementing the IPv4 TTL by the
>   number of LSP hops within the domain.

I think that is very useful for VPNs, but this section had not consider
this situations.

Could somebody tell me the behavior of "ingress|egress LSR/LER" on 
this situations?

Thanks in advance.

--
Satoru Matsushima

---

From: Francis Arts <[email-masked]>
Date: Sat, 02 Dec 2000 11:27:23 +0100

Hi Satoru,

> Could somebody tell me the behavior of "ingress|egress LSR/LER" on

** Ingress LSR:
In this case the ingress LSR has to use for the MPLS header a TTL that is
large enough to reach the egress LSR (that is, the TTL should not expire in
the middle of the LSP).

** Egress LSR:
At the egress LSR the TTL in the MPLS header is not copied into the IP header
of the packet. Instead the TTL as is in the IP header is used.

This 'TTL behavior' is -for the TTL aspect- similar to the 'TTL behavior' for
IP over IP tunnels as defined in section 3.1 of RFC 2003 ('IP within IP').

Kind regards,

    Francis.

--------------

        ********************
        *Extract from RFC 2003*
        ********************

3.1. IP Header Fields and Handling

   The fields in the outer IP header are set by the encapsulator as
   follows:

      ....

      Time to Live

         The Time To Live (TTL) field in the outer IP header is set to a
         value appropriate for delivery of the encapsulated datagram to
         the tunnel exit point.

    ...

   When encapsulating a datagram, the TTL in the inner IP header is
   decremented by one if the tunneling is being done as part of
   forwarding the datagram; otherwise, the inner header TTL is not
   changed during encapsulation.  If the resulting TTL in the inner IP
   header is 0, the datagram is discarded and an ICMP Time Exceeded
   message SHOULD be returned to the sender.  An encapsulator MUST NOT
   encapsulate a datagram with TTL = 0.

   The TTL in the inner IP header is not changed when decapsulating.
   If, after decapsulation, the inner datagram has TTL = 0, the
   decapsulator MUST discard the datagram.  If, after decapsulation, the
   decapsulator forwards the datagram to one of its network interfaces,
   it will decrement the TTL as a result of doing normal IP forwarding.
   See also Section 4.4.

    ...

--------------

---

From: "James R. Leu" <[email-masked]>
Date: Sun, 3 Dec 2000 18:31:10 -0600

Section 2.4.3. "IP-dependent rules" of draft-ietf-mpls-label-encaps-08.txt
contradicts what you're saying.  Did you get your info from a different draft?

Jim

-- 
James R. Leu

---

From: "S.Matsushima" <[email-masked]>
Date: Mon, 04 Dec 2000 14:28:48 +0900

Hi Francis,
Thanks for your reply.

> IP over IP tunnels as defined in section 3.1 of RFC 2003 ('IP within IP').

In this case, it is right if it works as network devices.
But MPLS-LSP does not work as well as network devices. Thus basically,
MPLS TTL was set to the value of th IP TTL at the ingress LER, and
IP TTL was set to the value of MPLS TTL at the egress LSR/LER.
This is basically situations.

But Section 2.4.3. "IP-dependent rules" was recognized that 
there are situations where a network administration prefers to 
decrement the IPv4 TTL by one as it traverses an MPLS domain.
As a result, the MPLS domain has two situations. 

If the MPLS domain really has two situations and be mixed, 
how can the egress LSR/LER distinguish these two situations?

I think it is desirable that these situations should be more described
by "draft-ietf-mpls-label-encaps-08.txt"

regards.

--
Satoru Matsushima

---

From: francis arts vh624 8492 <[email-masked]>
Date: Mon, 04 Dec 2000 07:06:33 +0100

Jim,

I agree that section 2.4.3 indeed indicates that "when a label is popped, and the
resulting label stack is empty, then the value of the IP TTL field SHOULD BE
replaced with the outgoing TTL value".

However, the last paragraph of section 2.4.3 also states that 'it is recognized
that there may be situations where a network administration prefers to decrement
the IPv4 TTL by one as it traverses an MPLS domain, instead of decrementing the
IPv4 TTL by the number of LSP hops within the domain."

So if one would use the latter approach, the TTL is not meant to be copied from
the MPLS header into the IP header in the LSP egress node.

Kind regards,

    Francis.

-------------