draft-ietf-mpls-ttl-02.txt | draft-ietf-mpls-ttl-03.txt | |||
---|---|---|---|---|
Internet Draft Puneet Agarwal | Internet Draft Puneet Agarwal | |||
Pluris | Pluris | |||
Bora A. Akyol | Bora A. Akyol | |||
Document: draft-ietf-mpls-ttl-02.txt Cisco Systems | Document: draft-ietf-mpls-ttl-03.txt Cisco Systems | |||
Category: Informational | Category: Standards Track | |||
Expires: November 2002 May 2002 | Expires: December 2002 June 2002 | |||
Time to Live (TTL) Processing in MPLS Networks | Time to Live (TTL) Processing in MPLS Networks (Updates RFC 3032) | |||
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 | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
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. TTL processing in both pipe and uniform model hierarchical | networks. It updates rfc-3032 "MPLS Label Stack Encoding". TTL | |||
tunnels are specified with examples for both "push" and "pop" cases. | processing in both pipe and uniform model hierarchical tunnels are | |||
The document also complements rfc-3270 "MPLS Support of | specified with examples for both "push" and "pop" cases. The | |||
Differentiated Services" and ties together the terminology | document also complements rfc-3270 "MPLS Support of Differentiated | |||
introduced in that document with TTL processing in hierarchical MPLS | Services" and ties together the terminology introduced in that | |||
networks. | 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-02.txt 1 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 1 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 2002 | |||
1. Introduction and Motivation | 1. Introduction and Motivation | |||
This document describes Time to Live (TTL) processing in | This document describes Time to Live (TTL) processing in | |||
hierarchical MPLS networks. We believe that this document adds | hierarchical MPLS networks. We believe that this document adds | |||
details that have not been addressed in [MPLS-ARCH, MPLS-ENCAPS], | details that have not been addressed in [MPLS-ARCH, MPLS-ENCAPS], | |||
and that the methods presented in this document complement [MPLS- | and that the methods presented in this document complement [MPLS- | |||
DS]. | DS]. | |||
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 | addresses 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. | addresses 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 addresses this | |||
this issue. | issue. | |||
2.2. Terminology and Background | 2.2. Terminology and Background | |||
As defined in [MPLS-ENCAPS], MPLS packets use a MPLS shim header | As defined in [MPLS-ENCAPS], MPLS packets use a MPLS shim header | |||
that indicates the following information about a packet: | that indicates the following information about a packet: | |||
a. MPLS Label (20 bits) | a. MPLS Label (20 bits) | |||
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) | |||
skipping to change at line 102 | skipping to change at line 102 | |||
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 | |||
PHP is also described in this document. For a detailed description | PHP is also described in this document. For a detailed description | |||
of Pipe and Uniform models, please see [MPLS-DS]. | of Pipe and Uniform models, please see [MPLS-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-02.txt 2 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 2 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 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 the LSP type (pipe, short pipe or | We also note here that signaling the LSP type (pipe, short pipe or | |||
uniform model) is out of the scope of this document, and that is | uniform model) is out of the scope of this document, and that is | |||
also not addressed in the current versions of the label distribution | also not addressed in the current versions of the label distribution | |||
protocols, e.g. LDP [MPLS-LDP] and RSVP-TE [MPLS-RSVP]. | protocols, e.g. LDP [MPLS-LDP] and RSVP-TE [MPLS-RSVP]. | |||
2.3. New Terminology | 2.3. New Terminology | |||
skipping to change at line 156 | skipping to change at line 156 | |||
(n) represents the TTL value in the corresponding header | (n) represents the TTL value in the corresponding header | |||
(x) represents non-meaningful TTL information | (x) represents non-meaningful TTL 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-02.txt 3 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 3 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 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 197 | skipping to change at line 197 | |||
/ \ | / \ | |||
>--(n)--Push.............(n-1)............Pop-(n-1)-Decr.-(n-2)-> | >--(n)--Push.............(n-1)............Pop-(n-1)-Decr.-(n-2)-> | |||
(I) (inner header) (P) (E) | (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. | |||
Since the label has already been popped by the LSPÆs penultimate | Since the label has already been popped by the LSP's penultimate | |||
node, the LSP egress node just decrements the header TTL. | node, the LSP egress node just decrements the header TTL. | |||
Also note that at the end of short pipe model LSP, the TTL of the | Also note that at the end of short pipe model LSP, the TTL of the | |||
tunneled packet has been decremented by two either with or without | tunneled packet has been decremented by two either with or without | |||
PHP. | PHP. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-02.txt 4 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 4 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 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 256 | skipping to change at line 256 | |||
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-02.txt 5 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 5 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 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. | |||
skipping to change at line 307 | skipping to change at line 307 | |||
while it is being updated or oTTL is being determined, this | while it is being updated or oTTL is being determined, this | |||
feature should be only used for compensating for network | feature should be only used for compensating for network | |||
nodes that are not capable of decrementing TTL values. | nodes that are not capable of decrementing TTL values. | |||
2) Whenever iTTL is decremented, the implementer must make sure | 2) Whenever iTTL is decremented, the implementer must 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 | 3) In the short pipe model with PHP enabled, the TTL of the | |||
tunneled packet is unchanged after the PHP operation. | tunneled packet is unchanged after the PHP operation. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-02.txt 6 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 6 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 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. | |||
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]. In particular, the document | ones defined in [MPLS-ENCAPS, MPLS-DS]. In particular, the document | |||
does not define a new protocol or expand an existing one and does | does not define a new protocol or expand an existing one and does | |||
not introduce security problems into the existing protocols. The | not introduce security problems into the existing protocols. The | |||
authors believe that clarification of TTL handling in MPLS networks | authors believe that clarification of TTL handling in MPLS networks | |||
benefits service providers and their customers since troubleshooting | benefits service providers and their customers since troubleshooting | |||
is simplified. | is simplified. | |||
6. References | 6. References | |||
6.1. Normative 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, | |||
R. Krishnan, P. Cheval, J. Heinanen, "MPLS Support of Differentiated | R. Krishnan, P. Cheval, J. Heinanen, "MPLS Support of Differentiated | |||
Services", RFC3270. | Services", RFC3270. | |||
6.2. Informative References | ||||
[MPLS-LDP] L. Andersson, P. Doolan, N. Feldman, A. Fredette, B. | [MPLS-LDP] L. Andersson, P. Doolan, N. Feldman, A. Fredette, B. | |||
Thomas, "LDP Specification", RFC 3036. | Thomas, "LDP Specification", RFC 3036. | |||
[MPLS-RSVP] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, G. | [MPLS-RSVP] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, G. | |||
Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209. | Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209. | |||
7. Acknowledgements | 7. Acknowledgements | |||
The authors would like to thank the members of the MPLS working | The authors would like to thank the members of the MPLS working | |||
group for their feedback. We would especially like to thank Shahram | group for their feedback. We would especially like to thank Shahram | |||
Davari and Loa Andersson for their careful review of the document | Davari and Loa Andersson for their careful review of the document | |||
and their comments. | and their comments. | |||
Agarwal & Akyol draft-ietf-mpls-ttl-02.txt 7 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 7 | |||
TTL Processing in MPLS Networks May 2002 | Time to Live (TTL) Processing in MPLS Networks June 2002 | |||
8. Author's Addresses | 8. Author's Addresses | |||
Puneet Agarwal | Puneet Agarwal | |||
Pluris | Pluris | |||
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-02.txt 8 | Agarwal & Akyol draft-ietf-mpls-ttl-03.txt 8 | |||
End of changes. | ||||
This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |