TOC 
MPLSS. Boutros
Internet-DraftS. Bryant
Intended status: Standards TrackS. Sivabalan
Expires: July 11, 2009G . Swallow
 D. Ward
 Cisco Systems
 January 07, 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

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 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [1].



Table of Contents

1.  Introduction
2.  ACH TLV
    2.1.  ACH TLV Header
    2.2.  ACH TLV Object
3.  ACH TLV Object Definitions
    3.1.  The Null TLV Object
    3.2.  Type FEC128PWv4
    3.3.  Type FEC128PWv6
    3.4.  Type FEC129PWv4
    3.5.  Type FEC129PWv6
    3.6.  Type ConnName
    3.7.  Path-list
4.  Security Considerations
5.  IANA Considerations
6.  References
    6.1.  Normative References
    6.2.  Informative References
§  Authors' Addresses




 TOC 

1.  Introduction

In some application of the associated channel header (ACH) [2] (Bryant, S., Swallow, G., Martini, L., and D. McPherson, “Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for Use over an MPLS PSN,” February 2006.) as generalized in [9] (Bocci, M., Vigoureux, M., Bryant, S., Swallow, G., Ward, D., and R. Aggarwal, “MPLS Generic Associated Channel,” May 2009.) (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.



 TOC 

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] (Bocci, M., Vigoureux, M., Bryant, S., Swallow, G., Ward, D., and R. Aggarwal, “MPLS Generic Associated Channel,” May 2009.). 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 



 TOC 

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.



 TOC 

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 section.



 TOC 

3.  ACH TLV Object Definitions

This section provides further definition for a number of ACH TLV objects.



 TOC 

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 



 TOC 

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] (Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, “Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP),” April 2006.) 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                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



 TOC 

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] (Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, “Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP),” April 2006.) 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                                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



 TOC 

3.4.  Type FEC129PWv4

This TLV contains the Generalized ID FEC Element as specified in Section 5.3.2 of [3] (Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, “Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP),” April 2006.) (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.)                         ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+





 TOC 

3.5.  Type FEC129PWv6

This TLV contains the Generalized ID FEC Element as specified in Section 5.3.2 of [3] (Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G. Heron, “Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP),” April 2006.) (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.)                         ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



 TOC 

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.



 TOC 

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.

 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.



 TOC 

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.



 TOC 

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



 TOC 

6.  References



 TOC 

6.1. Normative References

[1] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[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 (TXT).
[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 (TXT).
[4] Postel, J., “Internet Protocol,” STD 5, RFC 791, September 1981 (TXT).
[5] Deering, S. and R. Hinden, “Internet Protocol, Version 6 (IPv6) Specification,” RFC 1883, December 1995 (TXT).
[6] Kompella, K. and G. Swallow, “Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures,” RFC 4379, February 2006 (TXT).
[7] Allan, D. and T. Nadeau, “A Framework for Multi-Protocol Label Switching (MPLS) Operations and Management (OAM),” RFC 4378, February 2006 (TXT).
[8] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, “MPLS Label Stack Encoding,” RFC 3032, January 2001 (TXT).


 TOC 

6.2. Informative References

[9] Bocci, M., Vigoureux, M., Bryant, S., Swallow, G., Ward, D., and R. Aggarwal, “MPLS Generic Associated Channel,” draft-ietf-mpls-tp-gach-gal-06 (work in progress), May 2009 (TXT).


 TOC 

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: 
  
  George Swallow
  Cisco Systems
 
Phone: 
Fax: 
Email:  swallow@cisco.com
URI: 
  
  David Ward
  Cisco Systems
 
Phone: 
Fax: 
Email:  dward@cisco.com
URI: