Network Working Group                                      Adrian Farrel
Internet-Draft                                        Old Dog Consulting
Updates RFC 4379                                          George Swallow
Intended Status: Standards Track                                   Cisco
Created: November 17, 2007
Expires: May 17, 2008


             Future-Proof TLV Codepoint Space for LSP Ping
                draft-farrel-mpls-lsp-ping-tlvs-01.txt


Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Abstract

   Techniques for detecting Multi-Protocol Label Switched (MPLS) data
   plane failures are described in RFC 4379 and include the definition
   of a control protocol for testing and verifying Label Switched Path
   (LSP) connectivity that is known as LSP Ping. The protocol consists
   of a set of messages each of which contains data encoded as TLVs.

   The LSP Ping protocol is being extended for several related uses.
   Each extension gives rise to the definition of new TLVs to be carried
   on the existing protocol messages.

   The LSP Ping specification makes it mandatory that all TLVs are
   understood by each participating Label Switching Router (LSR) that
   receives an LSP Ping message. This makes future extensibility hard
   without upgrading all LSRs in the network.


Farrel and Swallow                                              [Page 1]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

   This document defines ranges in the TLV codepoint space so that TLVs
   may be associated with different processing rules within an LSR if
   the TLV is unknown. This will make extensibility more simple.

Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

1. Introduction

   [RFC4379] defines the LSP Ping control protocol that can be used
   to detect Multi-Protocol Label Switched (MPLS) data plane failures.
   Specifically, LSP Ping is used to test and verify Label Switched Path
   (LSP) connectivity. The protocol consists of a set of messages each
   of which contains data encoded as TLVs.

   The LSP Ping protocol is being extended for several related uses.

   - [SELF-TEST] defines LSP Ping extensions to allow a Label Switching
     Router (LSR) to verify that its data plane is functioning for MPLS
     applications such as unicast forwarding and traffic engineering
     tunnels.

   - [MPLS-BFD] makes use of the LSP Ping protocol exchanges to
     bootstrap an in-band bidirectional forwarding detection (BFD)
     mechanism for MPLS LSPs.

   - [P2MP-PING] defines extensions to LSP Ping for use with point-to-
     multipoint LSPs.

   Each extension gives rise to the definition of new TLVs to be carried
   on the existing protocol messages.

   The LSP Ping specification makes it mandatory that all TLVs are
   understood by each participating Label Switching Router (LSR) that
   receives an LSP Ping message. This makes protocol extensions hard to
   deploy without upgrading all LSRs in the network. However, in many
   cases all that is actually required is that an LSR that does not
   recognise a TLV should ignore it and process the rest of the message
   as usual.

   This document defines ranges in the TLV codepoint space so that TLVs
   may be associated with different processing rules within an LSR if
   the TLV is unknown.





Farrel and Swallow                                              [Page 2]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

2. Ranges and Rules for TLVs

2.1. Desired Function

   Four desired functional behaviors are identified for an LSR that
   receives an LSP Ping message containing a TLV with an unrecognized
   Type value.

   a. Support for the TLV is mandatory.

      If the TLV is not recognized the message MUST be dropped and an

      LSP Ping error MUST be reported according to the normal protocol
      procedures.

   b. Support for the TLV is mandatory at an egress LSR, but is
      optional at a transit LSR.

      At an egress LSR, if the TLV is not recognized the message MUST
      be dropped and an LSP Ping error MUST be reported according to the
      normal protocol procedures.

      At a transit LSR, if the TLV is not recognized, the TLV SHOULD be
      ignored. The rest of the message MUST be processed as normal.

   c. Support for the TLV is optional at all nodes.

      At a transit or egress LSR, if the TLV is not recognized, the TLV
      SHOULD be ignored. The rest of the message MUST be processed as
      normal.

   d. Ignore the entire message if TLV is unrecognized.

      If the TLV is unrecognized the entire message SHOULD be ignored by
      the LSR. The LSR MUST NOT perform any processing associated with
      the message or the other TLVs on the message.

2.1.1. Extensibility Rules

   The intention of the new rules and ranges defined in this document is
   that they are fully backward compatible with Type values already
   defined in existing RFCs and Internet-Drafts, and registered in the
   IANA registry.

2.2. Pre-Existing Ranges and Rules

   The Type field of the TLV encoding for LSP Ping is a two byte (16
   bit) field [RFC4379] so that the valid range for TLVs and sub-TLVs is
   0 to 65535 inclusive.


Farrel and Swallow                                              [Page 3]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

   The codespace has been managed by IANA according to the following
   rules using terminology from [RFC2434].

      0x0000 - 0x3FFF Assignments via "Standards Action"
      0x4000 - 0x7BFF Assignments via "Specification Required"
      0x7C00 - 0x7FFF "Vendor Private Use"; MUST NOT be assigned.
      0x8000 - 0xC009 Assignments via "Standards Action"
      0xC00A - 0xFBFF Assignments via "Specification Required"
      0xFC00 - 0xFFFF "Vendor Private Use"; MUST NOT be assigned.

   As can be seen, these ranges are duplicated according to the setting
   of the most significant bit, but no use is made of this in [RFC4379].
   All TLV Types currently registered are treated according to Rule a.
   in Section 2.1.

2.3. New Ranges and Rules

   The rules set out in Section 2.1 require two bits to be fully
   encoded. In order to achieve backward compatibility, Rule a. must use
   the top two bits clear.

   The following settings of the top two bits in the TLV Type field are
   defined:

   00 Support for the TLV is mandatory (Rule a.)
   01 Mandatory at egress, optional at transit (Rule b.)
   10 Optional (Rule c.)
   11 Ignore message (Rule d.)

   This causes a change to the IANA registry as described in Section 4.

3. Ranges and Rules for Sub-TLVs

   Each TLV defined for use in LSP Ping may carry Sub-TLVs. Sub-TLVs are
   formatted as TLVs, and have a 16-bit Type field.

3.1. Desired Function

   Four desired functional behaviors are identified for an LSR that
   receives an LSP Ping message containing a TLV with a Sub-TLV with an
   unrecognized Type value.

   e. Support for the Sub-TLV is mandatory.

      If the Sub-TLV is not recognized the message MUST be dropped and

      an LSP Ping error MUST be reported according to the normal
      protocol procedures.



Farrel and Swallow                                              [Page 4]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

   f. Unrecognized Sub-TLV makes whole TLV unrecognized.

      If a Sub-TLV is not recognized, the whole TLV must me treated as
      unrecognized and the whole TLV MUST be treated according to the
      rules set out in Section 2.1 as indicated by the top bit settings
      in the parent TLV Type.

   g. Support for the Sub-TLV is optional.

      Any LSR receiving an unrecognized Sub-TLV MUST ignore it and
      continue to process the rest of the TLV.

   h. Ignore the entire TLV if the Sub-TLV is unrecognized.

      If the Sub-TLV is unrecognized the entire TLV SHOULD be ignored by
      the LSR regardless of the parent TLV's type. The LSR MUST NOT
      perform any processing associated with the TLV, but SHOULD
      continue to process the other TLVs on the message.

3.1.1. Extensibility Rules

   The intention of the new rules and ranges defined in this document is
   that they are fully backward compatible with Sub-TLV Type values
   already defined in existing RFCs and Internet-Drafts, and registered
   in the IANA registry.

3.2. Pre-Existing Ranges and Rules

   The Type values defined for Sub-TLVs have the same assignment rules
   as the Type values for TLVs, but it should be noted that while the
   TLV registry has global scope, the Sub-TLV registry is scoped to the
   context of the parent TLV.

3.3. New Ranges and Rules

   The rules set out in Section 3.1 require two bits to be fully
   encoded. In order to achieve backward compatibility, Rule e. must use
   the top two bits clear.

   The following settings of the top two bits in the TLV Type field are
   defined:

   00 Support for the Sub-TLV is mandatory (Rule e.)
   01 Unrecognized Sub-TLV makes whole TLV unrecognized (Rule f.)
   10 Support for the Sub-TLV is optional (Rule g.)
   11 Ignore the entire TLV if the Sub-TLV is unrecognized (Rule h.)

   This causes a change to the IANA registry as described in Section 4.



Farrel and Swallow                                              [Page 5]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

4. IANA Considerations

   IANA maintains a registry entitled "Multi-Protocol Label Switching
   (MPLS) Label Switched Paths (LSPs) Parameters" that is used to assign
   and track codepoints for use with LSP Ping.

   A subregistry called "TLVs and sub-TLVs" is used to assign and track
   Type values for use in TLVs and Sub-TLVs on LSP Ping messages.

   This document requests IANA to modify the "TLVs and sub-TLVs"
   subregistry to further subdivide the codepoint space as described in
   this document. No changes to the values already assigned are
   requested, and IANA must not make such changes while applying the
   requests included in this document.

4.1. New Subregistry Preamble

   The subregistry preamble previously read:

      TLVs and sub-TLVs - per [RFC4379]
      Registration Procedures:
      0-16383 and 32768-49161 - Standards Action
      16384-31743 and 49162-64511 - Specification Required (Experimental
                                    RFC needed)
      31744-32767 and 64512-65535 - Vendor Private Use, and MUST NOT be
                                    allocated

   IANA is requested to replace this with the following text:

      TLVs and sub-TLVs - per [RFC4379] and [ID.thisdocument]

      Each TLV and Sub-TLV in an LSP Ping message is identified by a
      16-bit Type field. The Type field is divided into a 14-bit Type
      value and a 2-bit action discriminator.

      The TLV Types have global context, the Sub-TLV Types are scoped
      only to their parent TLV.

      Registration Procedures - as per [ID.thisdocument]

      0 to 8191 are to be assigned by Standards Action
      8192 to 12287 are to be assigned by Specification Required
      12288 to 16383 are for Vendor Private Use and must not be assigned

4.2. New Registry Information

   IANA is requested to modify the information stored in the registry to
   include the settings of the action discriminator bits for each Type
   value. The registry should look as follows:


Farrel and Swallow                                              [Page 6]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007


    Type  Sub-Type Action  Value Field                        Reference
    ----  -------- ------  ---------------------------------  ---------

   So the existing registry should be updated as follows:

    Type  Sub-Type Action  Value Field                        Reference
    ----  -------- ------  ---------------------------------  ---------
       1               00  Target FEC Stack                   [RFC4379]
                 1     00  LDP IPv4 prefix                    [RFC4379]
                 2     00  LDP IPv6 prefix                    [RFC4379]
                 3     00  RSVP IPv4 LSP                      [RFC4379]
                 4     00  RSVP IPv6 LSP                      [RFC4379]
                 5     00  Not Assigned                       [RFC4379]
                 6     00  VPN IPv4 prefix                    [RFC4379]
                 7     00  VPN IPv6 prefix                    [RFC4379]
                 8     00  L2 VPN endpoint                    [RFC4379]
                 9     00  "FEC 128" Pseudowire (Deprecated)  [RFC4379]
                10     00  "FEC 128" Pseudowire               [RFC4379]
                11     00  "FEC 129" Pseudowire               [RFC4379]
                12     00  BGP labeled IPv4 prefix            [RFC4379]
                13     00  BGP labeled IPv6 prefix            [RFC4379]
                14     00  Generic IPv4 prefix                [RFC4379]
                15     00  Generic IPv6 prefix                [RFC4379]
                16     00  Nil FEC                            [RFC4379]
       2               00  Downstream Mapping                 [RFC4379]
       3               00  Pad                                [RFC4379]
       4               00  Not Assigned                       [RFC4379]
       5               00  Vendor Enterprise Number           [RFC4379]
       6               00  Not Assigned                       [RFC4379]
       7               00  Interface and Label Stack          [RFC4379]
       8               00  Not Assigned                       [RFC4379]
       9               00  Errored TLVs                       [RFC4379]
          Any value    00  The type of the TLV not understood [RFC4379]
      10               00  Reply TOS Byte                     [RFC4379]

4.3. A Note to IANA on Backward Compatibility

   [RFC Editor - Please remove this section before publication.]

   This note is provided to clarify backward compatibility in the
   modified codepoint space to reassure IANA that no existing
   allocations are impacted.

   If the top two bits were included in the Type value, the new registry
   definition in Section 4.1 would give rise to the following twelve
   ranges. These can easily be seen to encompass all of the existing
   defined codepoints.



Farrel and Swallow                                              [Page 7]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

      0 to 8191 are to be assigned by Standards Action
      8192 to 12287 are to be assigned by Specification Required
      12288 to 16383 are for Vendor Private Use and must not be assigned

      16384 to 24575 are to be assigned by Standards Action
      24576 to 28671 are to be assigned by Specification Required
      28672 to 32767 are for Vendor Private Use and must not be assigned

      32768 to 40959 are to be assigned by Standards Action
      40960 to 45055 are to be assigned by Specification Required
      45056 to 49151 are for Vendor Private Use and must not be assigned

      49152 to 57343 are to be assigned by Standards Action
      57344 to 61439 are to be assigned by Specification Required
      61440 to 65535 are for Vendor Private Use and must not be assigned

5. Security Considerations

   This document does not change the trust model for LSP Ping and so
   does not introduce security concerns over and above those described
   in [RFC4379].

   It may be argued that defining these TLV action codes increases the
   scope for denial of service attacks by allowing spoof echo requests
   to include false TLVs that cause specific actions from the LSRs in
   the network. However, this is not the case since the existing default
   behavior is to generate an echo response indicating an error for any
   unknown TLV. Thus, the new behaviors introduced in this document do
   not exacerbate the scope for such attacks.

6. Acknowledgements

   Thanks to Nitin Bahadur for discussions.

7. Intellectual Property Considerations

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at

Farrel and Swallow                                              [Page 8]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

8. Normative References

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2434]   Narten, T., and H. Alvestrand, "Guidelines for Writing an
               IANA Considerations Section in RFCs", BCP 26, RFC 2434,
               October 1998.

   [RFC4379]   Kompella, K., and Swallow, G., "Detecting Multi-Protocol
               Label Switched (MPLS) Data Plane Failures", RFC 4379,
               February 2006.

9. Informative References

   [SELF-TEST] Swallow, G., Kompella, K., and Tappan, D., "Label
               Switching Router Self-Test", draft-ietf-mpls-lsr-self-
               test, work in progress.

   [MPLS-BFD]  Aggarwal, R., Kompella, K., Nadeau, T., and Swallow, G.,
               "BFD For MPLS LSPs", draft-ietf-bfd-mpls, work in
               progress.

   [P2MP-PING] Yasukawa, S. (Ed.), and Farrel, A. (Ed.), "Detecting Data
               Plane Failures in Point-to-Multipoint Multiprotocol Label
               Switching (MPLS) - Extensions to LSP Ping", draft-ietf-
               mpls-p2mp-lsp-ping, work in progress.

10. Authors' Addresses

   Adrian Farrel
   Old Dog Consulting
   EMail:  adrian@olddog.co.uk

   George Swallow
   Cisco Systems, Inc.
   1414 Massachusetts Ave
   Boxborough, MA 01719
   Email: swallow@cisco.com




Farrel and Swallow                                              [Page 9]


Internet Draft     draft-farrel-mpls-lsp-ping-tlvs-01.txt  November 2007

11. Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.




































Farrel and Swallow                                             [Page 10]