ECRIT                                                     H. Schulzrinne
Internet-Draft                                       Columbia U. University
Intended status: Standards Track                           H. Tschofenig
Expires: May 6, July 28, 2009                            Nokia Siemens Networks
                                                        January 24, 2009                                                 NSN
                                                        November 2, 2008

  Synchronizing Location-to-Service Translation (LoST) Servers
                     draft-ietf-ecrit-lost-sync-01 Protocol based
                Service Boundaries and Mapping Elements
                   draft-ietf-ecrit-lost-sync-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

   This Internet-Draft is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, submitted to IETF in accordance full conformance with Section 6 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 May 6, July 28, 2009.

Copyright Notice

   Copyright (C) The (c) 2009 IETF Trust (2008). 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.

Abstract

   The LoST (Location-to-Service Translation) Location-to-Service Translation (LoST) protocol is an XML-based
   protocol for mapping service identifiers and geodetic or civic
   location information to service URIs and service boundaries.  In
   particular, it can be used to map determine the location-appropriate
   Public Safety Answering Point (PSAP) for emergency services.

   The main data structure, the XML <mapping> element, used for
   encapsulating information about service boundaries is defined in the
   LoST protocol specification and circumscribes the region within which
   all locations map to the same service URLs. URI or set of URIs for a given
   service.

   This document defines a set an XML protocol to exchange these mappings
   between two nodes.  As motived in the Location-to-URL Mapping
   Architecture document this mechanism is useful for the
   synchronization of top-level LoST
   extensions Forest Guides.  This document is,
   however, even useful in a deployment that allow does not make use of the
   LoST servers protocol but purely wants to synchronize their lists of
   mappings. distribute service boundaries.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3  4
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3  5
   3.  Distributing Mappings via <pushMappings> and
       <pushMappingsResponse> . . . . . . . . . . . . . . . . . . . .  4  6
   4.  Synchronizing Mapping Stores via <getMappings> and
       <getMappingsResponse>  . . . . . . . . . . . . . . . . . . . .  6  9
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  8 12
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  8 13
     6.1.  LoST Synchronization Namespace Registration  . . . . . . .  8 13
   7.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . .  9 14
   8.  RelaxNG  . . . . . . . . . . . . . . . . . . . . . . . . . . .  9 15
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 18
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 11 18
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 12 18
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
   Intellectual Property and Copyright Statements . . . . . . . . . . 13 19

1.  Introduction

   The LoST (Location-to-Service Translation) protocol [RFC5222] maps
   geographic locations
   service identifiers and geodetic or civic location information to
   service URLs. URIs.  As specified in the LoST architecture description
   [I-D.ietf-ecrit-mapping-arch], there are a variety of LoST servers
   that cooperate to provide a global, an ubiquitous, globally scalable and
   resilient mapping service.  The LoST protocol specification only
   describes the protocol used for individual seeker-originated queries.
   This document adds LoST operations that allow forest guides, resolver clusters and
   authoritative servers to synchronize their database of mappings.

   In the LoST architecture, servers can peer, i.e., have an on-going
   data exchange relationship.  Peering relationships are set up
   manually, based on local policies.  A server can peer with any number
   of other servers.  Forest guides peer with other forest guides;
   resolvers peer with forest guides and other resolvers (in the same
   cluster); authoritative mapping servers peer with forest guides and
   other authoritative servers, either in the same cluster or above or
   below them in the tree.  If the type of LoST role does not matter, we
   refer to LoST protocol participants as LoST nodes.

   Authoritative mapping servers push coverage regions "up" the tree,
   i.e., from child nodes to parent nodes.  The child informs the parent
   of the geospatial or civic region that it covers.

   The coverage regions of different authoritative servers can overlap.
   This should only happen if the authoritative servers are
   misconfigured or if there is a political dispute that involves
   competing claims for the same region.  A server MUST detect such
   colliding claims and implement a policy to resolve the collision,
   either through an automated policy mechanism or manual intervention.

   This extension defines two new requests, <pushMappings> and
   <getMappings>, that allow peering servers to exchange mappings.
   These requests are used for all peering relationships and always
   contain mapping entries, but naturally the content of the data
   exchanged differs. <pushMappings> allows a peer to send newer
   mappings to another peer; with a <getMappings> query, a node can
   obtain mappings that are newer than those it already has.

2.  Terminology

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

   This document reuses terminology introduced by the mapping
   architecture document [I-D.ietf-ecrit-mapping-arch].

3.  Distributing Mappings via <pushMappings> and <pushMappingsResponse>

   When a LoST node obtains new information that is of interest to its
   peers, it pushes the new mappings to its peers.  This information
   might arrive through non-LoST means, such as a manual addition to the
   local mappings database, or through another LoST node, via a
   <pushMappings> request or a <getMappingsResponse> described later.

   Each peer keeps track of which peer it has exchanged which mapping
   elements with.  As discussed in Section 5.1 of [RFC5222], mapping
   elements are identified by the 'source', 'sourceID' and 'lastUpdated'
   attributes.  A mapping is considered the same if these three
   attributes match.  Nodes never push the same information to the same
   peer twice.

   To delete a mapping, the content of the mapping is left empty.  The
   node can delete the mapping from its internal mapping database, but
   has to remember which peers it has distributed this update to.  The
   'expires' attribute is required, but ignored.  If the querier
   attempts to remove delete a non-existent mapping, the query is silently
   ignored.

   The response to a <pushMappings> request is a <pushMappingsResponse>,
   currently without <pushMappingsResponse>
   message.  Currently, a successful response message returns no
   additional elements, if the request was successful
   or whereas an <errors> response is returned in the
   response message, if the request failed.  Only the <badRequest>,
   <forbidden>, <internalError> or <serverTimeout> errors defined in
   Section 13.1 of [RFC5222] [RFC5222], are used.  Neither the  The <redirect> nor the and <warnings>
   messages are not used for this query. query/response."

   If the set of nodes that are synchronizing their data does not form a
   tree, it is possible that the same information arrives through
   several other nodes.  This is unavoidable, but generally only imposes
   a modest overhead.  (It would be possible to create a spanning tree
   in the same fashion as IP multicast, but the complexity does not seem
   warranted, giving given the relatively low volume of data.)

   A newly received mapping M' replaces an existing mapping M if all of
   the following conditions hold:

   1.  M'.source equals M.source, ignoring case

   2.  M'.sourceID' equals M.sourceID, ignoring case

   3.  M'.lastUpdated greater or equal to M.lastUpdated

   An example is shown in Figure 1.  In the example, the  Image a LoST node that obtained two
   new mappings with
   sourceId 7e3f40b098c711dbb6060800200c9a66 sourceId
   7e3f40b098c711dbb606011111111111 are added by the recipient.  The
   last mapping, with source 'nj.us.example' and sourceID 'englewood',
   is removed. identified as follows:

   o  source="authoritative.example"
      sourceId="7e3f40b098c711dbb6060800200c9a66" lastUpdated="2008-11-
      26T01:00:00Z"

   o  source="authoritative.example"
      sourceId="7e3f40b098c711dbb606011111111111" lastUpdated="2008-11-
      01T01:00:00Z"

   These two mappings have to be added to the peer's mapping database.

   Additionally, it determines that the following mapping has to be
   deleted:

   o  source="nj.us.example" sourceId="123" lastUpdated="2008-11-
      01T01:00:00Z"

   <?xml version="1.0" encoding="UTF-8"?>
   <sync:pushMappings
   <sync:pushMappingsRequest
       xmlns:sync="urn:ietf:params:xml:ns:lost-sync1"
     xmlns:p2="http://www.opengis.net/gml"
     xmlns="urn:ietf:params:xml:ns:lost1:sync">
       xmlns="urn:ietf:params:xml:ns:lost1"
       xmlns:p2="http://www.opengis.net/gml";>

       <sync:mappings>

           <mapping source="leonia.nj.us.example" source="authoritative.example"
               sourceId="7e3f40b098c711dbb6060800200c9a66"
               lastUpdated="2008-11-26T01:00:00Z"
               expires="2009-12-26T01:00:00Z">
               <displayName xml:lang="en">
                           Leonia Police Department
               </displayName>
               <service>urn:service:sos.police</service>
               <serviceBoundary
   profile="urn:ietf:params:lost:location-profile:basic-civic">
                   <civicAddress
   xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
                       <country>US</country>
                       <A1>NJ</A1>
                       <A3>Leonia</A3>
                       <PC>07605</PC>
                   </civicAddress>
               </serviceBoundary>
       <uri>sip:police@leonianj.example.org</uri>
               <uri>sip:police at leonianj.example.org</uri>
               <serviceNumber>911</serviceNumber>
           </mapping>

           <mapping source="authoritative.example"
       sourceId="7e3f40b098c711dbb606011111111111" expires="2009-01-01T01:44:33Z"
       lastUpdated="2008-11-01T01:00:00Z">
               lastUpdated="2008-11-01T01:00:00Z"
               source="authoritative.example"
               sourceId="7e3f40b098c711dbb606011111111111">
               <displayName xml:lang="en">
                           New York City Police Department
               </displayName>
               <service>urn:service:sos.police</service>
               <serviceBoundary profile="geodetic-2d">
                   <p2:Polygon srsName="urn:ogc:def::crs:EPSG::4326">
                       <p2:exterior>
                           <p2:LinearRing>
                               <p2:pos>37.775 -122.4194</p2:pos>
                               <p2:pos>37.555 -122.4194</p2:pos>
                               <p2:pos>37.555 -122.4264</p2:pos>
                               <p2:pos>37.775 -122.4264</p2:pos>
                               <p2:pos>37.775 -122.4194</p2:pos>
                           </p2:LinearRing>
                       </p2:exterior>
                   </p2:Polygon>
               </serviceBoundary>
       <uri>sip:nypd@example.com</uri>
       <uri>xmpp:nypd@example.com</uri>
               <uri>sip:nypd at example.com</uri>
               <uri>xmpp:nypd at example.com</uri>
               <serviceNumber>911</serviceNumber>
           </mapping>

           <mapping source="nj.us.example"
      sourceId="englewood"
                    sourceId="123"
                    lastUpdated="2008-11-01T01:00:00Z"
                    expires="2008-11-01T01:00:00Z"/>
       </sync:mappings>
   </sync:pushMappings>

   </sync:pushMappingsRequest>

                     Figure 1: Example <pushMappings>

   In response, the peer performs the necessary operation and updates
   its mapping database.  In particular, it will check whether the
   querier is authorized to perform the update and whether the elements
   and attributes contain values that it understands.  In our example, a
   positive response is returned as shown in Figure 2.

   <?xml version="1.0" encoding="UTF-8"?>
   <pushMappingsResponse xmlns="urn:ietf:params:xml:ns:lost1:sync" />
   </pushMappingsResponse>

                 Figure 2: Example <pushMappingsResponse>

4.  Synchronizing Mapping Stores via <getMappings> and
    <getMappingsResponse>

   Instead of pushing mappings to another LoST node, a LoST client can
   declare all the mappings it has, via a sequence of <m> elements in
   the <getMappings>, and then obtain any missing or outdated mappings
   in the <getMappingsResponse>.  Specifying the existing mappings
   avoids retransmitting data that the querier has already stored.

   If the <getMappings> query has no attributes, the
   <getMappingsResponse> contains all mappings that are either newer
   than the <m> elements or not contained in the sequence of <m>
   elements.  The querier can restrict the mappings returned by adding
   'source' and 'sourceId' attributes to the <getMappings> query.  Only
   the combinations

   o  source

   o  source, sourceID

   are allowed.

   If the 'source' attribute is specified, only mappings with that
   particular source attribute are considered.  Similarly, the
   'sourceId' attribute restricts mappings to those matching the
   attribute from the 'source' named.

   <m> elements MUST only contain the 'source', 'sourceId' and
   'lastUpdated' attributes that are not contained in the <GetMappings>
   element itself.  Extra attributes that do not match the values of the
   <getMappings> attributes are silently ignored.  (This structure
   reduces the query size for the common case that there are many
   mappings from the same source.)

   Processing a <getMappings> message may lead to a successful response
   in the form of a &tl;getMappingsResponse> or an <errors> message.
   Only the <badRequest>, <forbidden>, <internalError>, <serverTimeout>
   errors defined in [RFC5222] are used.  Neither the <redirect> nor the
   <warnings> messages are used for this query.

   An example request is shown in Figure 3, the corresponding response
   in Figure 4.  In the example, the queried this example a LoST node did not have anything
   newer for mapping 7e3f40b098c711dbb606011111111111, but did have requests a specific mapping with sourceId 7b7c9630-a93b-11dd-ad8b-0800200c9a66
   for source="authoritative.bar.example" and
   sourceId="7e3f40b098c711dbb6060800200c9a66" that
   matched the source parameter 'authoritative.example'. is fresher than
   "2006-11-01T01:00:00Z".  Additionally, all mappings that match
   source="authoritative.foo.example" are requested.

   <?xml version="1.0" encoding="UTF-8"?>
   <getMappings xmlns="urn:ietf:params:xml:ns:lost1:sync"
     source="authoritative.example">
   <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lost-sync1">
       <m sourceId="7e3f40b098c711dbb606011111111111"
       lastUpdated="2008-11-26T01:00:00Z" />
   </getMappings> source="authoritative.bar.example"
   sourceId="7e3f40b098c711dbb6060800200c9a66"
           lastUpdated="2006-11-01T01:00:00Z"/>
       <m source="authoritative.foo.example"/>
   </getMappingsRequest>

                  Figure 3: Example <getMappings> request

   The response is shown in Figure 4.  A more recent mapping was
   available with the identification of
   source="authoritative.bar.example" and
   sourceId="7e3f40b098c711dbb6060800200c9a66".  Only one mapping that
   matched source="authoritative.foo.example" was found and returned.

   <?xml version="1.0" encoding="UTF-8"?>
   <sync:getMappingsResponse
     xmlns="urn:ietf:params:xml:ns:lost1:sync"
     xmlns:sync="urn:ietf:params:xml:ns:lost-sync1">
       xmlns:sync="urn:ietf:params:xml:ns:lost-sync1"
       xmlns="urn:ietf:params:xml:ns:lost1"
       xmlns:p2="http://www.opengis.net/gml";>

       <sync:mappings>

           <mapping
          expires="2007-01-01T01:44:33Z"
          lastUpdated="2006-11-01T01:00:00Z"
          source="authoritative.example"
          sourceId="7b7c9630-a93b-11dd-ad8b-0800200c9a66" source="authoritative.bar.example"
               sourceId="7e3f40b098c711dbb6060800200c9a66"
               lastUpdated="2008-11-26T01:00:00Z"
               expires="2009-12-26T01:00:00Z">
               <displayName xml:lang="en">
                         Leonia Police Department
               </displayName>
               <service>urn:service:sos.police</service>
               <serviceBoundary
   profile="urn:ietf:params:lost:location-profile:basic-civic">
                   <civicAddress
   xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
                       <country>US</country>
                       <A1>NJ</A1>
                       <A3>Leonia</A3>
                       <PC>07605</PC>
                   </civicAddress>
               </serviceBoundary>
               <uri>sip:police at leonianj2.example.org</uri>
               <serviceNumber>911</serviceNumber>
           </mapping>

           <mapping expires="2009-01-01T01:44:33Z"
               lastUpdated="2008-11-01T01:00:00Z"
               source="authoritative.foo.example"
               sourceId="7e3f40b098c711dbb606011111111111">
               <displayName xml:lang="en">
            Englewood
                           New York City Police Department
               </displayName>
               <service>urn:service:sos.police</service>
               <serviceBoundary profile="civic">
          ... profile="geodetic-2d">
                   <p2:Polygon srsName="urn:ogc:def::crs:EPSG::4326">
                       <p2:exterior>
                           <p2:LinearRing>
                               <p2:pos>37.775 -122.4194</p2:pos>
                               <p2:pos>37.555 -122.4194</p2:pos>
                               <p2:pos>37.555 -122.4264</p2:pos>
                               <p2:pos>37.775 -122.4264</p2:pos>
                               <p2:pos>37.775 -122.4194</p2:pos>
                           </p2:LinearRing>
                       </p2:exterior>
                   </p2:Polygon>
               </serviceBoundary>
          <uri>sip:police@englewood.example.com</uri>
               <uri>sip:nypd at example.com</uri>
               <uri>xmpp:nypd at example.com</uri>
               <serviceNumber>911</serviceNumber>
           </mapping>

       </sync:mappings>

   </sync:getMappingsResponse>

                  Figure 4: Example <getMappingsResponse>

5.  Security Considerations

   The LoST security considerations are discussed in [RFC5222].  The
   operations described in this document involve mutually-trusting LoST
   nodes.  These nodes need to authenticate each other, using mechanisms
   such as HTTP Digest [RFC2617], HTTP Basic [RFC2617] over TLS
   [RFC5246] or TLS client and server certificates.  Nodes implementing
   LoST MUST implement HTTP Basic authentication over TLS and MAY
   implement other authentication mechanisms.

6.  IANA Considerations

6.1.  LoST Synchronization Namespace Registration

   URI:  urn:ietf:params:xml:ns:lost1:sync

   Registrant Contact:  IETF ECRIT Working Group, Henning Schulzrinne
      (hgs@cs.columbia.edu).

   XML:

   BEGIN
   <?xml version="1.0"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
     "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="content-type"
           content="text/html;charset=iso-8859-1"/>
     <title>LoST Synchronization Namespace</title>
   </head>
   <body>
     <h1>Namespace for LoST server synchronization</h1>
     <h2>urn:ietf:params:xml:ns:lost1:sync</h2>
   <p>See <a href="[URL of published RFC]">RFCXXXX
       [NOTE TO IANA/RFC-EDITOR:
        Please replace XXXX with the RFC number of this
       specification.]</a>.</p>
   </body>
   </html>
   END

7.  Acknowledgments

   Robins George, Cullen Jennings and Andrew Newton provided helpful
   input.  Jari Urpalainen assisted with the Relax NG schema.  We would
   also like to thank our PROTO shepherd Roger Marshall for his help
   with the document.

8.  RelaxNG

   <?xml version="1.0" encoding="utf-8"?>

   <grammar ns="urn:ietf:params:xml:ns:lost-sync1"
      xmlns="http://relaxng.org/ns/structure/1.0"
      xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
      datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

      <include href="lost.rng"/>

      <start combine="choice">

          <a:documentation> Location-to-Service Translation (LoST)
   Synchronization Protocol</a:documentation>

          <choice>
              <ref name="pushMappings"/>
              <ref name="pushMappingsResponse"/>
              <ref name="getMappings"/>
              <ref name="getMappingsResponse"/>
          </choice>
      </start>

      <define name="pushMappings">
          <element name="pushMappings">
              <element name="mappings">
                  <oneOrMore>
                      <ref name="mapping"/>
                  </oneOrMore>
              </element>

              <ref name="extensionPoint"/>
          </element>
      </define>

      <define name="pushMappingsResponse">
          <element name="pushMappingsResponse">
              <ref name="extensionPoint"/>
          </element>
      </define>

      <define name="getMappings">
          <element name="getMappings">
              <choice>
                 <ref name="ScopeSource"/>
                 <ref name="ScopeSourceId"/>
              </choice>
              <oneOrMore>
                  <element name="m">
                      <choice>
                          <ref name="ScopeSource"/>
                          <ref name="ScopeSourceId"/>
                          <ref name="ScopeLastUpdated"/>
                      </choice>
                  </element>
              </oneOrMore>
              <ref name="extensionPoint"/>
          </element>
      </define>

      <define name="getMappingsResponse">
          <element name="getMappingsResponse">

              <element name="mappings">
                  <oneOrMore>
                      <ref name="mapping"/>
                  </oneOrMore>
              </element>

              <ref name="extensionPoint"/>

          </element>
      </define>

      <define name="ScopeSource">
          <attribute name="source">
              <data type="token"/>
          </attribute>
      </define>

      <define name="ScopeSourceId">
          <attribute name="source">
              <data type="token"/>
          </attribute>
          <attribute name="sourceId">
              <data type="token"/>
          </attribute>
      </define>

      <define name="ScopeLastUpdated">
          <attribute name="source">
              <data type="token"/>
          </attribute>
          <attribute name="sourceId">
              <data type="token"/>
          </attribute>
          <attribute name="lastUpdated">
              <data type="dateTime"/>
          </attribute>
      </define>

   </grammar>

9.  References

9.1.  Normative References

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

   [RFC2617]  Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
              Leach, P., Luotonen, A., and L. Stewart, "HTTP
              Authentication: Basic and Digest Access Authentication",
              RFC 2617, June 1999.

   [RFC5222]  Hardie, T., Newton, A., Schulzrinne, H., and H.
              Tschofenig, "LoST: A Location-to-Service Translation
              Protocol", RFC 5222, August 2008.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

9.2.  Informative References

   [I-D.ietf-ecrit-mapping-arch]
              Schulzrinne, H., "Location-to-URL Mapping Architecture and
              Framework", draft-ietf-ecrit-mapping-arch-03 (work in
              progress), September 2007.

Authors' Addresses

   Henning Schulzrinne
   Columbia University
   Department of Computer Science
   450 Computer Science Building
   New York, NY  10027
   US

   Phone: +1 212 939 7004
   Email: hgs+ecrit@cs.columbia.edu
   URI:   http://www.cs.columbia.edu

   Hannes Tschofenig
   Nokia Siemens Networks
   Linnoitustie 6
   Espoo  02600
   Finland

   Phone: +358 (50) 4871445
   Email: Hannes.Tschofenig@gmx.net
   URI:   http://www.tschofenig.priv.at

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

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