draft-ietf-mpls-ttl-00.txt | draft-ietf-mpls-ttl-01.txt | |||
---|---|---|---|---|
Internet Draft Puneet Agarwal | Internet Draft Puneet Agarwal | |||
Pluris | Pluris | |||
Bora A. Akyol | Bora A. Akyol | |||
Document: draft-ietf-mpls-ttl-00.txt Cisco Systems | Document: draft-ietf-mpls-ttl-01.txt Cisco Systems | |||
Category: Informational | Category: Informational | |||
Expires: August 2002 February 2002 | Expires: November 2002 May 2002 | |||
TTL Processing in MPLS Networks | TTL Processing in MPLS Networks | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is in full conformance | This document is an Internet-Draft and is in full conformance | |||
with all provisions of Section 10 of RFC2026. | with all provisions of Section 10 of RFC2026. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at line 34 | skipping to change at line 34 | |||
reference material or to cite them other than as "work in progress." | reference material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
Abstract | Abstract | |||
This document describes TTL processing in hierarchical MPLS | This document describes TTL processing in hierarchical MPLS | |||
networks. | networks. TTL processing in both pipe and uniform model hierarchical | |||
tunnels are specified with examples for both "push" and "pop" cases. | ||||
The document also complements [MPLS-DS] and ties together the | ||||
terminology introduced in that document with TTL processing in | ||||
hierarchical MPLS networks. | ||||
Conventions used in this document | Conventions used in this document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | |||
this document are to be interpreted as described in [RFC-2119]. | this document are to be interpreted as described in [RFC-2119]. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 1 | ||||
TTL Processing in MPLS Networks May 2002 | ||||
1. Introduction and Motivation | 1. Introduction and Motivation | |||
This document describes TTL processing in hierarchical MPLS | This document describes TTL processing in hierarchical MPLS | |||
networks. We believe that this document adds details that have not | networks. We believe that this document adds details that have not | |||
been addressed in [MPLS-ARCH, MPLS-ENCAPS], and that the methods | been addressed in [MPLS-ARCH, MPLS-ENCAPS], and that the methods | |||
presented in this document complement [MPLS-DS]. | presented in this document complement [MPLS-DS]. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 1 | ||||
TTL Processing in MPLS Networks January 2002 | ||||
2. TTL Processing in MPLS Networks | 2. TTL Processing in MPLS Networks | |||
2.1. Changes to RFC 3032 [MPLS-ENCAPS] | 2.1. Changes to RFC 3032 [MPLS-ENCAPS] | |||
a) [MPLS-ENCAPS] only covers the Uniform Model and does NOT | a) [MPLS-ENCAPS] only covers the Uniform Model and does NOT | |||
address the Pipe Model or the Short Pipe Model. This draft | address the Pipe Model or the Short Pipe Model. This draft | |||
will address these 2 models and for completeness will also | will address these 2 models and for completeness will also | |||
address the Uniform Model. | address the Uniform Model. | |||
b) [MPLS-ENCAPS] does not cover hierarchical LSPs. This draft | b) [MPLS-ENCAPS] does not cover hierarchical LSPs. This draft | |||
will address this issue. | will address this issue. | |||
c) [MPLS-ENCAPS] does not define TTL processing in the presence | c) [MPLS-ENCAPS] does not define TTL processing in the presence | |||
of Penultimate Hop Popping (PHP). This draft will address | of Penultimate Hop Popping (PHP). This draft will address | |||
this issue. | this issue. | |||
skipping to change at line 80 | skipping to change at line 86 | |||
b. TTL (8 bits) | b. TTL (8 bits) | |||
c. Bottom of stack (1 bit) | c. Bottom of stack (1 bit) | |||
d. Experimental bits (3 bits) | d. Experimental bits (3 bits) | |||
The experimental bits were later redefined in [MPLS-DS] to indicate | The experimental bits were later redefined in [MPLS-DS] to indicate | |||
the scheduling and shaping behavior that could be associated with a | the scheduling and shaping behavior that could be associated with a | |||
MPLS packet. | MPLS packet. | |||
[MPLS-DS] also defined two models for MPLS tunnel operation: Pipe | [MPLS-DS] also defined two models for MPLS tunnel operation: Pipe | |||
and Uniform models. In the Pipe model, a MPLS network acts like a | and Uniform models. In the Pipe model, a MPLS network acts like a | |||
conduit when MPLS packets traverse the network such that only the | circuit when MPLS packets traverse the network such that only the | |||
LSP ingress and egress points are visible to nodes that are outside | LSP ingress and egress points are visible to nodes that are outside | |||
the tunnel. A Short variation of the Pipe Model is also defined in | the tunnel. A Short variation of the Pipe Model is also defined in | |||
[MPLS-DS] to differentiate between different egress forwarding and | [MPLS-DS] to differentiate between different egress forwarding and | |||
QoS treatments. On the other hand, the Uniform model makes all the | QoS treatments. On the other hand, the Uniform model makes all the | |||
nodes that a LSP traverses visible to nodes outside the tunnel. We | nodes that a LSP traverses visible to nodes outside the tunnel. We | |||
will extend the Pipe and Uniform models to include TTL processing in | will extend the Pipe and Uniform models to include TTL processing in | |||
the following sections. Furthermore, TTL processing when performing | the following sections. Furthermore, TTL processing when performing | |||
Penultimate Hop Pop (PHP) is also described in this document. For a | Penultimate Hop Pop (PHP) is also described in this document. For a | |||
detailed description of Pipe and Uniform models, please see [MPLS- | detailed description of Pipe and Uniform models, please see [MPLS- | |||
DS]. | DS]. | |||
TTL processing in MPLS networks can be broken down into two logical | TTL processing in MPLS networks can be broken down into two logical | |||
blocks: (i) the incoming TTL determination to take into account any | blocks: (i) the incoming TTL determination to take into account any | |||
Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 2 | ||||
TTL Processing in MPLS Networks May 2002 | ||||
tunnel egress due to MPLS Pop operations; (ii) packet processing of | tunnel egress due to MPLS Pop operations; (ii) packet processing of | |||
(possibly) exposed packet & outgoing TTL. | (possibly) exposed packet & outgoing TTL. | |||
We also note here that signaling treatment for TTL behavior using | We also note here that signaling treatment for TTL behavior using | |||
either RSVP-TE or LDP is out of the scope of this document. | either RSVP-TE or LDP is out of the scope of this document. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 2 | ||||
TTL Processing in MPLS Networks January 2002 | ||||
2.3. New Terminology | 2.3. New Terminology | |||
iTTL: The TTL value to use as the incoming TTL. No checks are | iTTL: The TTL value to use as the incoming TTL. No checks are | |||
performed on the iTTL. | performed on the iTTL. | |||
oTTL: This is the TTL value used as the outgoing TTL value (see | oTTL: This is the TTL value used as the outgoing TTL value (see | |||
section 3.5 for exception). It is always (iTTL - 1) unless otherwise | section 3.5 for exception). It is always (iTTL - 1) unless otherwise | |||
stated. | stated. | |||
oTTL Check: Check if oTTL is greater than 0. If the oTTL Check is | oTTL Check: Check if oTTL is greater than 0. If the oTTL Check is | |||
skipping to change at line 146 | skipping to change at line 153 | |||
(n) represents the TTL value in the corresponding header | (n) represents the TTL value in the corresponding header | |||
(x) represents non-meaningful TLL information | (x) represents non-meaningful TLL information | |||
(I) represents the LSP ingress node | (I) represents the LSP ingress node | |||
(P) represents the LSP penultimate node | (P) represents the LSP penultimate node | |||
(E) represents the LSP Egress node | (E) represents the LSP Egress node | |||
This picture shows TTL processing for a uniform model MPLS LSP. Note | This picture shows TTL processing for a uniform model MPLS LSP. Note | |||
that the inner and outer TTLs of the packets are synchronized at | that the inner and outer TTLs of the packets are synchronized at | |||
tunnel ingress and egress. | tunnel ingress and egress. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 3 | Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 3 | |||
TTL Processing in MPLS Networks January 2002 | TTL Processing in MPLS Networks May 2002 | |||
3.2. TTL Processing for Short Pipe Model LSPs | 3.2. TTL Processing for Short Pipe Model LSPs | |||
3.2.1. TTL Processing for Short Pipe Model LSPs without PHP | 3.2.1. TTL Processing for Short Pipe Model LSPs without PHP | |||
========== LSP =============================> | ========== LSP =============================> | |||
+--Swap--(N-1)-...-swap--(N-i)-----+ | +--Swap--(N-1)-...-swap--(N-i)-----+ | |||
/ (outer header) \ | / (outer header) \ | |||
(N) (N-i) | (N) (N-i) | |||
skipping to change at line 172 | skipping to change at line 179 | |||
(N) represents the TTL value (may have no relationship to n) | (N) represents the TTL value (may have no relationship to n) | |||
(n) represents the tunneled TTL value in the encapsulated header | (n) represents the tunneled TTL value in the encapsulated header | |||
(I) represents the LSP ingress node | (I) represents the LSP ingress node | |||
(E) represents the LSP Egress node | (E) represents the LSP Egress node | |||
Short Pipe Model was introduced in [MPLS-DS]. In the short pipe | Short Pipe Model was introduced in [MPLS-DS]. In the short pipe | |||
model, the forwarding treatment at the egress LSR is based on the | model, the forwarding treatment at the egress LSR is based on the | |||
tunneled packet as opposed to the encapsulating packet. | tunneled packet as opposed to the encapsulating packet. | |||
3.2.2. TTL Processing for Short Pipe Model with PHP: | 3.2.2. TTL Processing for Short Pipe Model with PHP: | |||
========== LSP =====================================> | ========== LSP =====================================> | |||
+-Swap--(N-1)-..-swap--(N-i)-+ | +-Swap-(N-1)-...-swap-(N-i)-+ | |||
/ (outer header) \ | / (outer header) \ | |||
(N) (N-i) | (N) (N-i) | |||
/ \ | / \ | |||
>--(n)--Push.............(n-1)..............Pop-(n-1)-(E)-(n-2)-> | >--(n)--Push.............(n-1)............Pop-(n-1)-Decr.-(n-2)-> | |||
(I) (inner header) (P) | ||||
(I) (inner header) (P) (E) | ||||
(N) represents the TTL value (may have no relationship to n) | (N) represents the TTL value (may have no relationship to n) | |||
(n) represents the tunneled TTL value in the encapsulated header | (n) represents the tunneled TTL value in the encapsulated header | |||
(I) represents the LSP ingress node | (I) represents the LSP ingress node | |||
(P) represents the LSP penultimate node | (P) represents the LSP penultimate node | |||
(E) represents the LSP Egress node | (E) represents the LSP egress node. | |||
Note that at the end of short pipe model LSP the TTL of the tunneled | Since the label has already the popped by the LSP penultimate node, | |||
packet has been decremented by two either with or without PHP. | the LSP egress node just decrements the header TTL. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 4 | Also note that at the end of short pipe model LSP, the TTL of the | |||
TTL Processing in MPLS Networks January 2002 | tunneled packet has been decremented by two either with or without | |||
PHP. | ||||
Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 4 | ||||
TTL Processing in MPLS Networks May 2002 | ||||
3.3. TTL Processing for Pipe Model LSPs (without PHP only): | 3.3. TTL Processing for Pipe Model LSPs (without PHP only): | |||
========== LSP =============================> | ========== LSP =============================> | |||
+--Swap--(N-1)-...-swap--(N-i)-----+ | +--Swap--(N-1)-...-swap--(N-i)-----+ | |||
/ (outer header) \ | / (outer header) \ | |||
(N) (N-i) | (N) (N-i) | |||
/ \ | / \ | |||
>--(n)--Push...............(n-1)....................Pop--(n-2)-> | >--(n)--Push...............(n-1)....................Pop--(n-2)-> | |||
skipping to change at line 241 | skipping to change at line 254 | |||
i.e. the TTL contained in the subsequent label is essentially | i.e. the TTL contained in the subsequent label is essentially | |||
ignored and replaced with the iTTL computed during the previous pop. | ignored and replaced with the iTTL computed during the previous pop. | |||
3.5. Outgoing TTL Determination and Packet Processing | 3.5. Outgoing TTL Determination and Packet Processing | |||
After the iTTL computation is performed, the oTTL check is performed. | After the iTTL computation is performed, the oTTL check is performed. | |||
If the oTTL check succeeds, then the outgoing TTL of the | If the oTTL check succeeds, then the outgoing TTL of the | |||
(labeled/unlabeled) packet is calculated and packet headers are | (labeled/unlabeled) packet is calculated and packet headers are | |||
updated as defined below. | updated as defined below. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 5 | Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 5 | |||
TTL Processing in MPLS Networks January 2002 | TTL Processing in MPLS Networks May 2002 | |||
If the packet was routed as an IP packet, the TTL value of the IP | If the packet was routed as an IP packet, the TTL value of the IP | |||
packet is set to oTTL (iTTL - 1). The TTL value(s) for any pushed | packet is set to oTTL (iTTL - 1). The TTL value(s) for any pushed | |||
label(s) are determined as described in section 3.6. | label(s) are determined as described in section 3.6. | |||
For packets that are routed as MPLS, we have four cases: | For packets that are routed as MPLS, we have four cases: | |||
1) Swap-only: The routed label is swapped with another label | 1) Swap-only: The routed label is swapped with another label | |||
and the TTL field of the outgoing label is set to oTTL. | and the TTL field of the outgoing label is set to oTTL. | |||
2) Swap followed by a Push: The swapped operation is performed | 2) Swap followed by a Push: The swapped operation is performed | |||
as described in (1). The TTL value(s) of any pushed label(s) | as described in (1). The TTL value(s) of any pushed label(s) | |||
are determined as described in section 3.6. | are determined as described in section 3.6. | |||
3) Penultimate Hop Pop (PHP): The routed label is popped. The | 3) Penultimate Hop Pop (PHP): The routed label is popped. The | |||
oTTL check should be performed irrespective of whether the oTTL | oTTL check should be performed irrespective of whether the | |||
is used to update the TTL field of the outgoing header. If the | oTTL is used to update the TTL field of the outgoing header. | |||
PHPed label belonged to a short Pipe model LSP, then the TTL | If the PHPed label belonged to a short Pipe model LSP, then | |||
field of the PHP exposed header is neither checked nor | the TTL field of the PHP exposed header is neither checked | |||
updated. If the PHPed label was a Uniform model LSP, then the | nor updated. If the PHPed label was a Uniform model LSP, | |||
TTL field of the PHP exposed header is set to the oTTL. The TTL | then the TTL field of the PHP exposed header is set to the | |||
value(s) of additional labels are determined as described in | oTTL. The TTL value(s) of additional labels are determined | |||
section 3.6 | as described in section 3.6 | |||
4) Pop: The pop operation happens before routing and hence it | 4) Pop: The pop operation happens before routing and hence it | |||
is not considered here. | is not considered here. | |||
3.6. Tunnel Ingress Processing (Push) | 3.6. Tunnel Ingress Processing (Push) | |||
For each pushed Uniform model label, the TTL is copied from the | For each pushed Uniform model label, the TTL is copied from the | |||
label/IP-packet immediately underneath it. | label/IP-packet immediately underneath it. | |||
For each pushed Pipe model or Short Pipe model label, the TTL field | For each pushed Pipe model or Short Pipe model label, the TTL field | |||
is set to a value configured by the network operator. In most | is set to a value configured by the network operator. In most | |||
implementations, this value is set to 255 by default. | implementations, this value is set to 255 by default. | |||
3.7. Implementation Remarks | 3.7. Implementation Remarks | |||
1) Although iTTL can be decremented by a value larger | 1) Although iTTL can be decremented by a value larger than 1 | |||
than 1 while it is being updated or oTTL is being | while it is being updated or oTTL is being determined, this | |||
determined, this feature should be only used for | feature should be only used for compensating for network | |||
compensating for network nodes that are not capable of | nodes that are not capable of decrementing TTL values. | |||
decrementing TTL values. | ||||
2) Whenever iTTL is decremented, the implementor must | 2) Whenever iTTL is decremented, the implementor must make sure | |||
make sure that the value does not go negative. | that the value does not go negative. | |||
3) In the short pipe model with PHP enabled, the TTL of | ||||
the tunneled packet is unchanged after the PHP | 3) In the short pipe model with PHP enabled, the TTL of the | |||
operation. | tunneled packet is unchanged after the PHP operation. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 6 | ||||
TTL Processing in MPLS Networks May 2002 | ||||
4. Conclusion | 4. Conclusion | |||
This Internet Draft describes how TTL field can be processed in a | This Internet Draft describes how TTL field can be processed in a | |||
MPLS network. We clarified the various methods that are applied in | MPLS network. We clarified the various methods that are applied in | |||
the presence of hierarchical tunnels and completed the integration | the presence of hierarchical tunnels and completed the integration | |||
of Pipe and Uniform models with TTL processing. | of Pipe and Uniform models with TTL processing. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 6 | ||||
TTL Processing in MPLS Networks January 2002 | ||||
5. Security Considerations | 5. Security Considerations | |||
This document does not add any new security issues other than the | This document does not add any new security issues other than the | |||
ones defined in [MPLS-ENCAPS, MPLS-DS]. | ones defined in [MPLS-ENCAPS, MPLS-DS]. In particular, the document | |||
does not define a new protocol or expand an existing one and does | ||||
not introduce security problems into the existing protocols. The | ||||
authors believe that clarification of TTL handling in MPLS networks | ||||
benefits service providers and their customers since troubleshooting | ||||
is simplified. | ||||
6. References | 6. References | |||
[MPLS-ARCH] E. Rosen, A. Viswanathan, R. Callon, "Multiprotocol | [MPLS-ARCH] E. Rosen, A. Viswanathan, R. Callon, "Multiprotocol | |||
Label Switching Architecture," RFC 3031. | Label Switching Architecture," RFC 3031. | |||
[MPLS-ENCAPS] E. Rosen, D. Tappan, G. Fedorkow, Y. Rekhter, D. | [MPLS-ENCAPS] E. Rosen, D. Tappan, G. Fedorkow, Y. Rekhter, D. | |||
Farinacci, T. Li, A. Conta, "MPLS Label Stack Encoding," RFC3032. | Farinacci, T. Li, A. Conta, "MPLS Label Stack Encoding," RFC3032. | |||
[MPLS-DS] F. Le Faucheur, L. Wu, B. Davie, S. Davari, P. Vaananen, | [MPLS-DS] F. Le Faucheur, L. Wu, B. Davie, S. Davari, P. Vaananen, | |||
skipping to change at line 332 | skipping to change at line 351 | |||
10455 Bandley Drive | 10455 Bandley Drive | |||
Cupertino, CA 95014 | Cupertino, CA 95014 | |||
Email: puneet@pluris.com | Email: puneet@pluris.com | |||
Bora Akyol | Bora Akyol | |||
Cisco Systems | Cisco Systems | |||
170 W. Tasman Drive | 170 W. Tasman Drive | |||
San Jose, CA 95134 | San Jose, CA 95134 | |||
Email: bora@cisco.com | Email: bora@cisco.com | |||
Agarwal & Akyol draft-ietf-mpls-ttl-00.txt 7 | Agarwal & Akyol draft-ietf-mpls-ttl-01.txt 7 | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |