Network Working Group F. Templin, Ed. Internet-Draft Boeing Phantom Works Intended status: Informational October 2, 2007 Expires: April 4, 2008 Simple Packetization and Reassembly for IP/*/IP Tunnel Endpoint MTUs (sprite-mtu) draft-templin-inetmtu-02.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/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 April 4, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract The nominal Maximum Transmission Unit (MTU) of the Internet has become 1500 bytes, but existing IP/*/IP tunneling mechanisms impose an encapsulation overhead that can reduce the effective path MTU to smaller values. Additionally, existing tunneling mechanisms are limited in their ability to support larger MTUs. This document specifies simple packetization and reassembly for IP/*/IP tunnel endpoint MTUs (sprite-mtu). Templin Expires April 4, 2008 [Page 1] Internet-Draft sprite-mtu October 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Concept of Operation . . . . . . . . . . . . . . . . . . . . . 4 4. End-to-End MTU Determination . . . . . . . . . . . . . . . . . 4 5. Tunnel Interface MTU . . . . . . . . . . . . . . . . . . . . . 4 6. Tunnel Soft State . . . . . . . . . . . . . . . . . . . . . . 4 7. Sending Packets . . . . . . . . . . . . . . . . . . . . . . . 5 7.1. Conceptual Sending Algorithm . . . . . . . . . . . . . . . 5 7.2. Inner Packet Fragmentation . . . . . . . . . . . . . . . . 6 7.3. Encapsulation . . . . . . . . . . . . . . . . . . . . . . 7 7.4. Outer Packet Fragmentation . . . . . . . . . . . . . . . . 8 7.5. Sending Packets . . . . . . . . . . . . . . . . . . . . . 9 7.6. Tunnel Recursion . . . . . . . . . . . . . . . . . . . . . 9 8. Receiving Packets . . . . . . . . . . . . . . . . . . . . . . 9 8.1. IPv4 Reassembly Cache Management . . . . . . . . . . . . . 9 8.2. Decapsulation . . . . . . . . . . . . . . . . . . . . . . 9 8.3. Receiving Packet Too Big (PTB) Errors . . . . . . . . . . 10 9. 'minMTU' Determination . . . . . . . . . . . . . . . . . . . . 10 9.1. Sending Sprites . . . . . . . . . . . . . . . . . . . . . 10 9.2. Receiving (Sprite-)Replys . . . . . . . . . . . . . . . . 11 9.3. Receiving Sprites . . . . . . . . . . . . . . . . . . . . 11 9.4. Sending Sprite-Replys . . . . . . . . . . . . . . . . . . 11 10. 8-bit Fletcher Checksum Calculation . . . . . . . . . . . . . 11 11. Updated Specifications . . . . . . . . . . . . . . . . . . . . 12 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 13. Security Considerations . . . . . . . . . . . . . . . . . . . 13 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 15.1. Normative References . . . . . . . . . . . . . . . . . . . 13 15.2. Informative References . . . . . . . . . . . . . . . . . . 14 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 14 Intellectual Property and Copyright Statements . . . . . . . . . . 16 Templin Expires April 4, 2008 [Page 2] Internet-Draft sprite-mtu October 2007 1. Introduction The nominal Maximum Transmission Unit (MTU) of today's Internet has become 1500 bytes due to the preponderance of networking gear that configures an MTU of that size. Since not all links in the Internet configure a 1500 byte MTU, however, packets can be dropped due to an MTU restriction on the path. Upper layers see IP/*/IP tunnels as ordinary links, but even for packets no larger than 1500 bytes these links are susceptible to silent loss (e.g., due to path MTU restrictions, lost error messages, layered encapsulations, reassembly buffer limitations, etc.) resulting in poor performance and/or communications failures [RFC2923][RFC4459][RFC4821][RFC4963]. This document specifies simple packetization and reassembly for IP/*/IP tunnel endpoint MTUs (sprite-mtu). It updates the functional specifications for Tunnel Endpoints (TEs) found in existing tunneling mechanisms (see: Section 11). 2. Terminology The following abbreviations and terms are used in this document: IPv4 - Internet Protocol, Version 4 [RFC0791] IPv6 - Internet Protocol, Version 6 [RFC2460] IP - Internet Protocol, either Version 4 or Version 6 DF - the IPv4 header "Don't Fragment" flag ENCAPS - the size of the encapsulating */IP headers plus trailers minMTU - minimum MTU of the tunnel, in bytes MTU - Maximum Transmission Unit PTB - Packet Too Big error (either ICMPv4 [RFC1191] or ICMPv6 [RFC1981]) sprite/sprite-reply - a request/reply used for minMTU probing TE - Tunnel Endpoint TFE - Tunnel Far End Templin Expires April 4, 2008 [Page 3] Internet-Draft sprite-mtu October 2007 TNE - Tunnel Near End IP/*/IP - an IP packet encapsulated in */IP headers (e.g. for "*" = NULL, UDP, TCP, AH, ESP, etc.) inner packet/header/payload - an IP packet/header/payload before IP/*/IP encapsulation. outer packet/header/payload - a */IP packet/header/payload after IP/*/IP encapsulation. The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [RFC2119]. 3. Concept of Operation TEs that implement this scheme engage in a continuous probing process by sending "sprites" and "sprite-replys" while data is flowing to determine and maintain a minimum MTU for the tunnel. When the flow of data through the tunnel is suspended, the probing process is discontinued. Under normal conditions, only the TNE need implement the scheme, therefore deployment can occur independently of deployment on the TFE. Under extreme conditions, performance is enhanced when both TEs implement the scheme. 4. End-to-End MTU Determination This specification assumes that original sources that send unfragmentable packets larger than 1500 bytes will use end-to-end MTU determination per [RFC4821]. 5. Tunnel Interface MTU TEs should configure an MTU on the tunnel interface that is at least as large as (linkMTU - ENCAPS) for the largest linkMTU for all interfaces over which the tunnel is configured. 6. Tunnel Soft State TEs maintain the following per-TFE conceptual variables as soft state: Templin Expires April 4, 2008 [Page 4] Internet-Draft sprite-mtu October 2007 minMTU the current minimum MTU for the tunnel, discovered through probing to determine the largest size outer packet/fragment that can traverse the tunnel. (See: [RFC3819], Section 2 for subnetwork MTU recommendations that influence 'minMTU'.) Initial and minimum value: 128 bytes for */IPv4 tunnels; 1280 bytes for */IPv6 tunnels. isExtreme boolean indicating whether the tunnel traverses a path with an extremely small MTU. Initial value: TRUE. isQualified boolean indicating whether the TFE implements the scheme. Initial value: FALSE. 7. Sending Packets TEs that implement this scheme use the specifications for sending packets found in the following sections: 7.1. Conceptual Sending Algorithm Packets that are larger than the tunnel interface MTU are dropped with a packet too big (PTB) sent back to the original source as for any IP interface. For other packets, TEs use the conceptual sending algorithm found in Figure 1: Templin Expires April 4, 2008 [Page 5] Internet-Draft sprite-mtu October 2007 if inner packet is larger than ('minMTU' - ENCAPS) and inner packet is not a sprite (see: Section 9.1) if inner packet is not fragmentable (see: Section 7.2) if inner packet is larger than 1500 bytes if inner packet is larger than the underlying linkMTU minus ENCAPS Send PTB appropriate to the inner protocol with MTU = (MAX('minMTU', linkMTU) - ENCAPS). Drop packet and return. else Encapsulate as an outer packet (see: Sect. 7.3). Send packet and return (see: Section 7.5). endif else Send PTB appropriate to the inner protocol with MTU = ('minMTU' - ENCAPS). Drop packet and return. endif else Fragment inner packet into fragments no larger than ('minMTU' - ENCAPS) (see: Section 7.2). endif endif foreach inner packet/fragment Encapsulate as an outer packet (see: Section 7.3). Fragment outer packet if necessary (see: Section 7.4). Send packet(s)/fragment(s) (see: Section 7.5). endforeach Figure 1: Conceptual Sending Algorithm 7.2. Inner Packet Fragmentation An inner packet is "fragmentable" IFF the TE is permitted to break it into inner fragments before encapsulation, e.g., an IPv4 packet with DF=0, an unfragmented IPv6 packet no larger than 1280 bytes with a fragment header, etc. Per the conceptual sending algorithm, the TE uses the IP fragmentation mechanism of the inner protocol to fragment inner packets into fragments no larger than ('minMTU' - ENCAPS). Note that for IPv6/*/IPv4 tunnels, ('minMTU' - ENCAPS) may not be large enough to accommodate the minimum IPv6 MTU such that the TE may be required to drop an unfragmentable inner IPv6 packet of 1280 bytes or smaller and return an ICMPv6 PTB with an MTU value less than 1280 bytes. The original IPv6 source will then set the path MTU to 1280 bytes and include a fragment header in subsequent IPv6 packets. The TE can then perform IPv6 fragmentation using the fragment header included by the source per [RFC2460], Section 5. Templin Expires April 4, 2008 [Page 6] Internet-Draft sprite-mtu October 2007 7.3. Encapsulation TEs encapsulate inner IP packets according to the specific IP/*/IP document. During encapsulation the TE also appends a trailer (if necessary) that includes zero or more zero-padding bytes and a 4-byte trailing "footer" immediately following the inner IP packet. The TE increments the innermost '*' header length field by the number of trailer bytes added, for example it increments the UDP length field for IPv6/UDP/IPv4 tunnels, the IPv4 length field for IPv6/IPv4 tunnels, the outer IPv6 length field for IPv6/IPv6 tunnels, etc. The encapsulation is shown in Figure 2: +---------------------------------+ | Outer IP Header | | | +---------------------------------+ | * Headers | | | +-------------+ +---------------------------------+ | Inner IP | | Inner IP | ~ packet ~ ===> ~ packet ~ | | | | +-------------+ +---------------------------------+ -\ T Inner Packet | | | r ~ Zero-Padding (0 or more bytes) ~ | a | | > i +---------------------------------+ | l | Footer (4 bytes) | | e +---------------------------------+ -/ r | Any */IP protocol trailers ... +------------------------------ Outer Packet Figure 2: Encapsulation Format with Trailer For all packets that include a trailer, the footer is encoded as the final 4 bytes and is byte-aligned only, i.e., it need not be aligned on an even word/longword/etc. boundary. The footer format is shown in Figure 3: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Type | Reserved | Fletcher A | Fletcher B | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Footer Format Templin Expires April 4, 2008 [Page 7] Internet-Draft sprite-mtu October 2007 Version (4 bits) The Version field indicates the format of the trailer. This document describes version 4. Type (4 bits) The type of encapsulated packet. The following types are defined: 0 - ordinary data packet. 1 - sprite 2 - sprite-reply 3 - 15 - Reserved for future use. Reserved (8 bits) Reserved for future use. Fletcher A (8 bits) The 8-bit Fletcher A checksum component. Fletcher B (8 bits) The 8-bit Fletcher B checksum component. During encapsulation, the TE MUST include a trailer with a non-zero checksum in all sprite and sprite-reply packets, as well as in all IPv4 data packets that are sent as 2 fragments. For other data packets, the TE MAY: 1) include a trailer with a non-zero checksum, 2) include a trailer with a zero checksum, or 3) omit the trailer. For all packets that will include a trailer with a non-zero checksum, the TE first appends zero-filled padding bytes as necessary to extend the packet to a minimum length of 64 bytes beyond the beginning of the inner IP header (not counting the 4 byte footer). The TE then calculates the 8-bit Fletcher checksum as specified in Section 10 and encodes the results in the Fletcher A and B fields of the footer. The TE finally sets Version=4 and Type=0, 1, or 2 according to the type of packet being encapsulated (i.e., for ordinary data, sprite or sprite-reply packets, respectively). 7.4. Outer Packet Fragmentation For IP/*/IPv4 tunnels, when 'isExtreme' is TRUE and the encapsulated packet is not a sprite, the TE fragments the packet into 2 outer IPv4 fragments of 68 bytes or smaller using IPv4 fragmentation. Templin Expires April 4, 2008 [Page 8] Internet-Draft sprite-mtu October 2007 7.5. Sending Packets For IP/*/IPv4 tunnels, the TE sets DF=1 in the outer IPv4 header of all packets. When 'isExtreme' is TRUE and 'isQualified' is FALSE, the TE must maintain a window that limits the number of data packets admitted into the tunnel to avoid IPv4 reassembly misassociations according to the reassembly timeout recommendations in [RFC1122], Section 3.3.2. The TE is permitted to relax this windowing limitation after either 'isExtreme' is set to FALSE or 'isQualified' is set to TRUE. For IP/*/IPv6 tunnels, there is no requirement for the TE to institute windowing limitations since the IPv6 fragment header includes a 32bit Identification field. 7.6. Tunnel Recursion For IP/*/IPv4 tunnels, even when 'isExtreme' is TRUE, recursively- nested encapsulations within IPv4 can extend indefinitely due to the minimal outer fragmentation and reassembly used under extreme conditions. For IP/*/IPv4 tunnels, recursively-nested encapsulations within IPv6 impose a minimum of 40 bytes of header per encapsulation with no outer fragmentation possible such that the headers can overflow the available packet space with no room left for data. 8. Receiving Packets TEs that implement this scheme use the specifications for receiving packets found in the following sections: 8.1. IPv4 Reassembly Cache Management TEs SHOULD perform active management in their IPv4 reassembly cache, i.e., they should actively discard "stale" reassemblies that have no apparent opportunity for successful completion prior to the normal reassembly timeout expiration recommended in [RFC1122], Section 3.3.2. 8.2. Decapsulation When the TE receives (and, if necessary, reassembles) an encapsulated packet from a TFE for which 'isQualified' is TRUE, and the packet includes a trailing footer per Section 7.3 with an incorrect trailing checksum, the TE drops the packet. Otherwise, the TE decapsulates the packet exactly as specified in the appropriate IP/*/IP document. Templin Expires April 4, 2008 [Page 9] Internet-Draft sprite-mtu October 2007 Note that the decapsulation automatically erases the trailer. 8.3. Receiving Packet Too Big (PTB) Errors TEs may receive PTB errors in response to any packets that were admitted into the tunnel. When the TE receives a PTB with an MTU value smaller than 'minMTU', it SHOULD reduce 'minMTU' and send sprites to determine a new 'minMTU'. It SHOULD also send a translated PTB back to the inner source if possible. Further strategies for handling PTB errors are specified in [RFC4821], Section 7. 9. 'minMTU' Determination TEs probe the path to determine a 'minMTU' for the tunnel by sending sprites and sprite-replys as specified in the following sections: 9.1. Sending Sprites TEs engage in a probing process while data is actively flowing through the tunnel to determine 'minMTU' by sending sprites to the TFE. TEs generate sprites by creating a minimum-sized echo request packet according to the inner IP protocol (e.g., an ICMPv6 [RFC4443] echo request) that includes identifying information such as sequence/ identification numbers, nonce values, sprite sizes, etc. that will be echoed in the reply. The TE then encapsulates the echo request with padding added to create a sprite of the desired size per Section 7.3 then sends the sprite into the tunnel. The TE SHOULD send a series of sprites of various sizes early in the tunnel lifetime to determine the largest possible 'minMTU' no smaller than (128 bytes for IPv4; 1280 bytes for IPv6) and up to (1500 + ENCAPS). The TE SHOULD NOT attempt to increase 'minMTU' to larger values, since this may interfere with end-to-end path MTU discovery. When the TE receives sufficient evidence through probing that the forward path supports a larger sprite size, it advances 'minMTU'. The SHOULD limit the rate at which it sends sprites, but SHOULD send them frequently enough to refresh 'minMTU'. The TE SHOULD set 'isExtreme' to TRUE and reduce 'minMTU' to the minimum value when minimum-sized sprites fail to produce replys. Additional probing considerations are specified in [RFC4821], Section 7. The TE SHOULD retain a cache of recently-sent sprites and use them to verify any resulting replys. The TE MAY discontinue the probing process and garbage-collect stale soft state for dormant tunnels. Templin Expires April 4, 2008 [Page 10] Internet-Draft sprite-mtu October 2007 9.2. Receiving (Sprite-)Replys When a TE receives an encapsulated echo reply, it first determines whether the reply matches one of its sprites by examining any identifying information in the inner packet. If the echo reply matches one of the TE's sprites, the TE sets 'isExtreme' to FALSE and uses the sprite size for 'minMTU' determination. Otherwise, the TE decapsulates the echo reply and passes it to upper layers as for ordinary data. For echo replys that match one of the TE's sprites, the TE next verifies whether the reply is also a sprite-reply that was encapsulated per Section 7.3. For valid sprite-replys, the TE sets: 'isQualified' to TRUE for this TFE; otherwise it sets: 'isQualified' to FALSE. The TE then discards the packet. 9.3. Receiving Sprites When a TE receives an echo request that was encapsulated as a sprite per Section 7.3, it sends a sprite-reply. For ordinary echo requests, the TE decapsulates the packet and sends an ordinary echo reply. 9.4. Sending Sprite-Replys TEs send sprite-replys in response to sprites by creating an inner IP echo reply packet according to the inner IP protocol (e.g., an ICMPv6 echo reply [RFC4443]). The TE includes in the echo reply any identifying information that the TFE included in its echo request. The TE then encapsulates the echo reply as a sprite-reply per Section 7.3 and sends it into the tunnel. The TE SHOULD adopt a consistent behavior when responding to sprites, i.e., it should consistently send either well-formed sprite-replys or ordinary echo replys and should not, e.g., sometimes send sprite- replys and other times send echo replys. 10. 8-bit Fletcher Checksum Calculation The 8-bit Fletcher Checksum is discussed in [RFC1146][STONE1][STONE2] and is used by this specification to provide an integrity check with different properties than those used by common link layers and upper layer protocols. The TE calculates the 8-bit Fletcher checksum of the first 64 bytes of the inner packet beginning with the inner IP header according to the algorithm of [RFC1146], which is reproduced below with an Templin Expires April 4, 2008 [Page 11] Internet-Draft sprite-mtu October 2007 additional rule for representing zero results: The 8-bit Fletcher Checksum Algorithm is calculated over a sequence of data octets (call them D[1] through D[N]) by maintaining 2 unsigned 1's-complement 8-bit accumulators A and B whose contents are initially zero, and performing the following loop where i ranges from 1 to N: A := A + D[i] B := B + A If, at the end of the loop, either or both of the A, B accumulators encode the value 0x0000, invert the value in the accumulator(s) to 0xffff. Note that faster algorithms are possible and may be used instead of the algorithm above; see: [RFC1146] for citations of alternate algorithms. 11. Updated Specifications This document updates the following specifications: o RFC2003 (IP-in-IP) o RFC2473 (Generic packet tunneling in IPv6) o RFC2529 (6over4) o RFC2661 (L2TP) o RFC2784 (GRE) o RFC3056 (6to4) o RFC3378 (ETHERIP) o RFC3884 (IPSec Transport Mode for Dynamic Routing) o RFC4023 (MPLS-in-IP) o RFC4213 (Basic IPv6 Transition Mechanisms) o RFC4214 (ISATAP) o RFC4301 (IPSec) Templin Expires April 4, 2008 [Page 12] Internet-Draft sprite-mtu October 2007 o RFC4302 (AH) o RFC4303 (ESP) o RFC4380 (TEREDO) o LISP o others.... 12. IANA Considerations The IANA is instructed to create a 'sprite-mtu' registry for the Version and Type values that occur in the footers of encapsulated packets per Section 7.3. 13. Security Considerations A possible attack vector involves an off-path attacker sending sprites with spoofed source addresses, however the legitimate sprites sent by a TE contain identifying information that is useful for defending against off-path attacks. Security considerations for specific IP/*/IP tunneling mechanisms are given in the respective documents. 14. Acknowledgments This work has benefited from discussions with Fred Baker, Iljitsch van Beijnum, Brian Carpenter, Steve Casner, Remi Denis-Courmont, Aurnaud Ebalard, Gorry Fairhurst, John Heffner, Christian Huitema, Joe Macker, Matt Mathis, Joe Touch and James Woodyatt. 15. References 15.1. Normative References [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [RFC1122] Braden, R., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, October 1989. [RFC1191] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, Templin Expires April 4, 2008 [Page 13] Internet-Draft sprite-mtu October 2007 November 1990. [RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery for IP version 6", RFC 1981, August 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. 15.2. Informative References [RFC1146] Zweig, J. and C. Partridge, "TCP alternate checksum options", RFC 1146, March 1990. [RFC2923] Lahey, K., "TCP Problems with Path MTU Discovery", RFC 2923, September 2000. [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D., Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L. Wood, "Advice for Internet Subnetwork Designers", BCP 89, RFC 3819, July 2004. [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006. [RFC4459] Savola, P., "MTU and Fragmentation Issues with In-the- Network Tunneling", RFC 4459, April 2006. [RFC4821] Mathis, M. and J. Heffner, "Packetization Layer Path MTU Discovery", RFC 4821, March 2007. [RFC4963] Heffner, J., Mathis, M., and B. Chandler, "IPv4 Reassembly Errors at High Data Rates", RFC 4963, July 2007. [STONE1] Stone, J., "Checksums in the Internet (Stanford Doctoral Dissertation)", August 2001. [STONE2] Stone, J., Greenwald, M., Partridge, C., and J. Hughes, "Performance of Checksums and CRC's over Real Data, IEEE/ ACM Transactions on Networking, Vol 6, No. 5", October 1998. Templin Expires April 4, 2008 [Page 14] Internet-Draft sprite-mtu October 2007 Author's Address Fred L. Templin (editor) Boeing Phantom Works P.O. Box 3707 Seattle, WA 98124 USA Email: fred.l.templin@boeing.com Templin Expires April 4, 2008 [Page 15] Internet-Draft sprite-mtu October 2007 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. Intellectual Property 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 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. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Templin Expires April 4, 2008 [Page 16]