MPLS S. Boutros Internet-Draft S. Bryant Intended status: Standards Track S. Sivabalan Expires: July 11, 2009 G . Swallow D. Ward Cisco Systems January 7, 2009 Definition of ACH TLV Structure draft-bryant-mpls-tp-ach-tlv-00 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and 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/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on July 11, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Boutros, et al. Expires July 11, 2009 [Page 1] Internet-Draft ACH TLV January 2009 Abstract In some application of the associated channel header (ACH), it is necessary to have to ability to include a set of TLVs to provide additional context information for the ACH payload. This document describes the TLV structure and defines a number of TLV types. Requirements Language 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 RFC2119 [1]. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. ACH TLV . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. ACH TLV Header . . . . . . . . . . . . . . . . . . . . . . 4 2.2. ACH TLV Object . . . . . . . . . . . . . . . . . . . . . . 4 3. ACH TLV Object Definitions . . . . . . . . . . . . . . . . . . 5 3.1. The Null TLV Object . . . . . . . . . . . . . . . . . . . 5 3.2. Type FEC128PWv4 . . . . . . . . . . . . . . . . . . . . . 5 3.3. Type FEC128PWv6 . . . . . . . . . . . . . . . . . . . . . 6 3.4. Type FEC129PWv4 . . . . . . . . . . . . . . . . . . . . . 6 3.5. Type FEC129PWv6 . . . . . . . . . . . . . . . . . . . . . 7 3.6. Type ConnName . . . . . . . . . . . . . . . . . . . . . . 7 3.7. Path-list . . . . . . . . . . . . . . . . . . . . . . . . 7 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6.1. Normative References . . . . . . . . . . . . . . . . . . . 9 6.2. Informative References . . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10 Boutros, et al. Expires July 11, 2009 [Page 2] Internet-Draft ACH TLV January 2009 1. Introduction In some application of the associated channel header (ACH) [2] as generalized in [9] (GACH) it is necessary to have to ability to include a set of TLVs to provide additional context information for the ACH payload. One use of these TLVs to identify the source and/or intended destination of the ACH payload for use in transport networks. However the use of this construct is not limited to providing addressing information nor is the applicability restricted to transport network applications. Additionally GACH TLVs may be embedded with GACH TLVs to form higher level constructs. For example a path-list TLV is a TLV which contains a list of address TLVs of appropriate address type. 2. ACH TLV This section describes the structure of the set of TLVs that MAY follow an ACH. It then describes the structure of a ACH TLV object. An ACH TLV header MUST follow an ACH if the ATLV bit is set in the ACH [9]. Figure 2 shows the structure of a packet payload when an ACH with the ATLV bit set. +---------------------------------------------+ | Associated Channel Header with ATLV bit = 1 | +---------------------------------------------+ | ACH TLV Header | +---------------------------------------------+ | | . One or more ACH TLV . . . | | +---------------------------------------------+ | | . ACH Payload as defined by ACH Type . | | +---------------------------------------------+ Figure 1: ACH TLV Structure Boutros, et al. Expires July 11, 2009 [Page 3] Internet-Draft ACH TLV January 2009 2.1. ACH TLV Header The ACH TLV Header defines the length of the set of ACH TLVs that follow ACH header. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: ACH TLV Header The length field specifies the length in octets of the complete set of TLVs that follow the ACH TLV header. A length of zero indicates that no ACH TLVs follow this header. The reserved field is for future use and must be set to zero on transmission and ignored on reception. 2.2. ACH TLV Object The ACH TLV object consists of a 16 bit type field, followed by a 16 bit length field which specifies the number of octets that follow the length field. This is followed zero or more octets of value information. The semantics of the value information are defined by the ACH TLV Type as recorded in the ACH TLV Type registry. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACH TLV Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Value ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: ACH TLV Object Most of the ACH TLV types specified by this document are common address types which need no need no further explanation. Any types which are not simple addresses are described in the following Boutros, et al. Expires July 11, 2009 [Page 4] Internet-Draft ACH TLV January 2009 section. 3. ACH TLV Object Definitions This section provides further definition for a number of ACH TLV objects. 3.1. The Null TLV Object The Null TLV provides an OPTIONAL mechanism of restoring 32bit alignment of the following element in the packet and also provides an OPTIONAL mechanism to reserve space in the packet to be used by TLV objects that will be written by LSR that perform some operation on the packet at a later time. For example it might be used to reserve space for a record route operation. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Value = 0 ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Null TLV Object 3.2. Type FEC128PWv4 This TLV contains a non-zero 32-bit pseudowire connection ID (PW ID) as specified in Section 5.2 of [3] that terminates on a PE identified by an IPv4 address. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = FEC128PWv4 | Length = 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PW ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Boutros, et al. Expires July 11, 2009 [Page 5] Internet-Draft ACH TLV January 2009 3.3. Type FEC128PWv6 This TLV contains a non-zero 32-bit pseudowire connection ID (PW ID) as specified in Section 5.2 of [3] that terminates on a PE identified by an IPv6 address. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = FEC128PWv4 | Length = 24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ IPv6 Address ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PW ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.4. Type FEC129PWv4 This TLV contains the Generalized ID FEC Element as specified in Section 5.3.2 of [3] (i.e. The complete structure containing the AGI, SAII and TAII in the referenced section) that terminates on a PE identified by an IPv4 address. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = FEC129PWv4 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AGI Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ AGI Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ SAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ TAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Boutros, et al. Expires July 11, 2009 [Page 6] Internet-Draft ACH TLV January 2009 3.5. Type FEC129PWv6 This TLV contains the Generalized ID FEC Element as specified in Section 5.3.2 of [3] (i.e. The complete structure containing the AGI, SAII and TAII in the referenced section) that terminates on a PE identified by an IPv6 address. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = FEC129PWv6 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 Address | ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AGI Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ AGI Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ SAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AII Type | Length | Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ TAII Value (contd.) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.6. Type ConnName This is an octet string that identifies the name of the connection. The encoding of the octets and the and the semantics of the string are outside the scope of this document. 3.7. Path-list This TLV contains a list of identifiers that are associated with the path of the packet. It consists of a TLV that identifies this is a path-list TLV with a value that consists of a set of address TLVs. Boutros, et al. Expires July 11, 2009 [Page 7] Internet-Draft ACH TLV January 2009 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = Path-list | Length = var | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = AddressX | Length = var | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Address ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = AddressX | Length = var | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Address ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ By way of further illustration the following is a path-list that contains 3 IPv4 addresses. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = path-list | Length = 24 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = IPv4DA | Length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = IPv4DA | Length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = IPv4DA | Length = 4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ A path-list may contain a Null TLV. 4. Security Considerations This specification defines a mechanism to identify a set of protocol parameters. The necessary security considerations will be described in the definition of the protocols that uses these parameters. Boutros, et al. Expires July 11, 2009 [Page 8] Internet-Draft ACH TLV January 2009 5. IANA Considerations IANA is requested create a new registry called ACH TLV Registry. The allocation policy for this registry is IETF consensus. The ACH TLV Registry should be initialized with the following values: Name Type Length Description Definition Reference (octets) Null 0 3 Null TLV This Draft This Draft IPv4DA 1 4 IPv4 Destination Addr RFC791 This Draft IPv4SA 2 4 IPv4 Source Addr RFC791 This Draft IPv6DA 3 16 IPv6 Destination Addr RFC1883 This Draft IPv6SA 4 16 IPv6 Source Addr RFC1883 This Draft MACSA 5 6 IEEE Mac Destination Addr This Draft MACDA 6 6 IEEE Mac Destination Addr This Draft NSAPSA 7 var OSI NSAP Source Addr ISO8348 This Draft NSAPDA 8 var OSI NSAP Source Addr ISO8348 This Draft FEC128PWv4 9 12 FEC 128 PW Identifier v4 PE RFC4447 This Draft FEC128PWv6 10 24 FEC 128 PW Identifier v6 PE RFC4447 This Draft FEC129PWv4 11 var FEC 129 PW Identifier v4 PE RFC4447 This Draft FEC129PWv6 12 var FEC 129 PW Identifier v6 PE RFC4447 This Draft ConnName 13 var Octet connection name This draft This Draft Path-list 14 var Path-list This draft This Draft 6. References 6.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Bryant, S., Swallow, G., Martini, L., and D. McPherson, "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN", RFC 4385, February 2006. [3] Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, "Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)", RFC 4447, April 2006. [4] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [5] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 1883, December 1995. [6] Kompella, K. and G. Swallow, "Detecting Multi-Protocol Label Boutros, et al. Expires July 11, 2009 [Page 9] Internet-Draft ACH TLV January 2009 Switched (MPLS) Data Plane Failures", RFC 4379, February 2006. [7] Allan, D. and T. Nadeau, "A Framework for Multi-Protocol Label Switching (MPLS) Operations and Management (OAM)", RFC 4378, February 2006. [8] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, January 2001. 6.2. Informative References [9] Bocci, M., Vigoureux, M., Swallow, G., Ward, D., and R. Aggarwal, "MPLS Generic Associated Channel", draft-ietf-mpls-tp-gach-gal-01 (work in progress), January 2009. Authors' Addresses Sami Boutros Cisco Systems Phone: Fax: Email: sboutros@cisco.com URI: Stewart Bryant Cisco Systems Phone: Fax: Email: stbryant@cisco.com URI: Siva Sivabalan Cisco Systems Phone: Fax: Email: msiva@cisco.com URI: Boutros, et al. Expires July 11, 2009 [Page 10] Internet-Draft ACH TLV January 2009 George Swallow Cisco Systems Phone: Fax: Email: swallow@cisco.com URI: David Ward Cisco Systems Phone: Fax: Email: dward@cisco.com URI: Boutros, et al. Expires July 11, 2009 [Page 11]