[Docs] [txt|pdf|xml|html] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits] [IPR]

Versions: (draft-schulzrinne-ecrit-lost-sync) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 RFC 6739

ECRIT                                                     H. Schulzrinne
Internet-Draft                                       Columbia University
Intended status: Standards Track                           H. Tschofenig
Expires: August 19, 2009                          Nokia Siemens Networks
                                                       February 15, 2009


  Synchronizing Location-to-Service Translation (LoST) Protocol based
                Service Boundaries and Mapping Elements
                   draft-ietf-ecrit-lost-sync-03.txt

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 August 19, 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.






Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 1]

Internet-Draft                  LoST Sync                  February 2009


Abstract

   The 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 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 URI or set of URIs for a given
   service.

   This document defines 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 Forest Guides.  This document is,
   however, even useful in a deployment that does not make use of the
   LoST protocol but purely wants to distribute service boundaries.































Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 2]

Internet-Draft                  LoST Sync                  February 2009


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   3.  Querying for Mappings with a <getMappingsRequest> /
       <getMappingsResponse> Exchange . . . . . . . . . . . . . . . .  8
     3.1.  LoST Sync Client's Behavior  . . . . . . . . . . . . . . .  8
     3.2.  LoST Sync Server's Behavior  . . . . . . . . . . . . . . .  8
     3.3.  Examples . . . . . . . . . . . . . . . . . . . . . . . . .  9
   4.  Pushing Mappings via <pushMappings> and
       <pushMappingsResponse> . . . . . . . . . . . . . . . . . . . . 12
     4.1.  LoST Sync Client's Behavior  . . . . . . . . . . . . . . . 12
     4.2.  LoST Sync Server's Behavior  . . . . . . . . . . . . . . . 12
     4.3.  Example  . . . . . . . . . . . . . . . . . . . . . . . . . 13
   5.  Transport  . . . . . . . . . . . . . . . . . . . . . . . . . . 16
   6.  RelaxNG  . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 20
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 21
     8.1.  Content-type registration for
           'application/lostsync+xml' . . . . . . . . . . . . . . . . 21
     8.2.  LoST Sync Relax NG Schema Registration . . . . . . . . . . 22
     8.3.  LoST Synchronization Namespace Registration  . . . . . . . 22
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 24
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 25
     10.2. Informative References . . . . . . . . . . . . . . . . . . 25
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 26
























Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 3]

Internet-Draft                  LoST Sync                  February 2009


1.  Introduction

   The LoST (Location-to-Service Translation) protocol [RFC5222] maps
   service identifiers and geodetic or civic location information to
   service URIs.  As specified in the LoST architecture description
   [I-D.ietf-ecrit-mapping-arch], LoST servers act in different roles
   that cooperate to provide an ubiquitous, globally scalable and
   resilient mapping service.  In the LoST mapping 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 for a specific
   service.

   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 document defines two types of exchanges and those are best
   described by the exchange between two nodes as shown in Figure 1 and
   Figure 2.  The protocol exchange always runs between a LoST Sync
   client and a LoST Sync server even through the roles are reversed for
   the two available exchanges and logically the two nodes might often
   be peers than in a client-server relationship.  Node A in the example
   exchanges of Figure 1 and Figure 2 has mappings that Node B is going
   to retrieve.

   The <getMappingsRequest> and <getMappingsResponse> exchange allows a
   LoST Sync client to request mappings from a LoST Sync server.  As
   described in Section 3 the <getMappingsRequest> message may contain
   further information to scope the retrieval of all available mappings
   on the LoST Sync server node.







Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 4]

Internet-Draft                  LoST Sync                  February 2009


      +---------+                   +---------+
      | Node B  |                   | Node A  |
      | acting  |                   | acting  |
      | as      |                   | as      |
      | LoST    |                   | LoST    |
      | Sync    |                   | Sync    |
      | Client  |                   | Server  |
      +---------+                   +---------+
          |                              |
          |                              |
          |                              |
          | <getMappingsRequest>         |
          |----------------------------->|
          |                              |
          | <getMappingsResponse>        |
          |<-----------------------------|
          |                              |
          |                              |
          |                              |

    Figure 1: Querying for Mappings with a <getMappingsRequest> Message

   The <pushMappingsRequest> and <pushMappingsResponse> exchange allows
   a LoST Sync client to push mappings to LoST Sync server.  The
   assumption is being made that Node A and B have previously been
   configured in a way that they push mappings in such a fashion and
   that Node A maintains state about the mappings that have to be pushed
   to Node B. No subscribe alike mechanism is defined in this document
   that would allow Node B to tell Node A about what mappings it is
   interested.





















Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 5]

Internet-Draft                  LoST Sync                  February 2009


       +---------+                   +---------+
       | Node A  |                   | Node B  |
       | acting  |                   | acting  |
       | as      |                   | as      |
       | LoST    |                   | LoST    |
       | Sync    |                   | Sync    |
       | Client  |                   | Server  |
       +---------+                   +---------+
           |                              |
           |                              |
           |                              |
           | <pushMappingsRequest>        |
           |----------------------------->|
           |                              |
           | <pushMappingsResponse>       |
           |<-----------------------------|
           |                              |
           |                              |
           |                              |

      Figure 2: Pushing Mappings with a <pushMappingsRequest> Message






























Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 6]

Internet-Draft                  LoST Sync                  February 2009


2.  Terminology

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

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

   Throughout this document we use the term LoST Sync client and LoST
   Sync server to denote the protocol end points of the exchange.  The
   protocol is referred as LoST Sync within the text.







































Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 7]

Internet-Draft                  LoST Sync                  February 2009


3.  Querying for Mappings with a <getMappingsRequest> /
    <getMappingsResponse> Exchange

3.1.  LoST Sync Client's Behavior

   A LoST Sync client has a few ways to retrieve mapping elements from a
   LoST Sync server node.  A mechanisms that is suitable when no
   mappings are available on the client side is to submit an empty
   <getMappingsRequest> message, as shown in Figure 3.  The intent by
   the client thereby is to retrieve all mappings from the other
   communication peer.  Note that the request is purely between the two
   nodes and does not propagate further.

   Next, a client that has already obtained mappings in previous
   exchanges may want to check whether these mappings have been updated
   in the meanwhile.  The policy when to poll for updated mapping
   information is outside the scope of this document.  The
   <getMappingsRequest> message with one or multiple <exists> child
   element(s) is a suitable mechanism to reduce the number of returned
   mappings to those that have been updated and also to obtain missing
   mappings.

   Finally, a client may issue a <getMappingsRequest> message with one
   or multiple <scope> child element(s).  The query for mappings can be
   restricted by adding 'source', 'sourceId' and 'service' attributes to
   the <scope> element.  If the 'source' attribute is specified, only
   mappings from this particular source attribute MUST be returned.
   Similarly, the 'sourceId' attribute restricts mappings to those
   matching the attribute from the 'source' named.  The same holds true
   for the 'service' attribute.  The comparison operation is a bit-wise
   equality match.

   In response to the <getMappingsRequest> message the client waits for
   the <getMappingsResponse> message.  In case of a successful response
   the client stores the received mappings and determines which mappings
   to replace.

3.2.  LoST Sync Server's Behavior

   When a LoST Sync server receives an empty <getMappingsRequest>
   message then all locally available mappings MUST be returned
   (assuming that the client has been properly authenticated and
   authorized).

   When a LoST Sync server receives a <getMappingsRequest> message with
   one or multiple <exists> child element(s) then it MUST consult with
   the local mapping database to determine whether any of the mappings
   of the client is stale and whether there are mappings locally that



Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 8]

Internet-Draft                  LoST Sync                  February 2009


   the client does not yet have.  The former can be determined by
   finding mappings corresponding to the 'source' and 'sourceID'
   attribut where a mapping with a more recent lastUpdated date exists.

   When a LoST Sync server receives a <getMappingsRequest> message with
   one or multiple <query> child element(s) then it MUST treat the
   mappings returned of all <query> child elements with a union
   operation, i.e. the results are concatinated with duplicates removed.
   The number of mappings that are being returned by each individual
   <query> element MUST be determined by looking at all the locally
   available mappings and considering only those where the values of the
   'source', 'sourceId' and 'service' attributes match.  Note that a
   query may have only one of these attributes set.

   Processing a <getMappingsRequest> message MAY lead to a successful
   response in the form of a <getMappingsResponse> or an <errors>
   message.  Only the <badRequest>, <forbidden>, <internalError>,
   <serverTimeout> errors, defined in [RFC5222], are used by this
   specification.  Neither the <redirect> nor the <warnings> messages
   are reused by this message.

3.3.  Examples

   The first examples show the simplest <getMappingsRequest> message.

   <?xml version="1.0" encoding="UTF-8"?>
   <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"/>

          Figure 3: Example of empty <getMappingsRequest> message

   An further example request is shown in Figure 4, the corresponding
   response in Figure 6.  In this example a LoST node requests a
   specific mapping for source="authoritative.bar.example" and
   sourceId="7e3f40b098c711dbb6060800200c9a66" that is fresher than
   "2006-11-01T01:00:00Z".


   <?xml version="1.0" encoding="UTF-8"?>
   <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1">
       <exists>
           <mapping-fingerprint source="authoritative.bar.example"
           sourceId="7e3f40b098c711dbb6060800200c9a66"
           lastUpdated="2006-11-01T01:00:00Z">
           </mapping-fingerprint>
       </exists>
   </getMappingsRequest>





Schulzrinne & Tschofenig  Expires August 19, 2009               [Page 9]

Internet-Draft                  LoST Sync                  February 2009


              Figure 4: Example <getMappingsRequest> Message

   The following <getMappingsRequest> message quests all mappings that
   where the 'source' attribute matches "authoritative.foo.example".


   <?xml version="1.0" encoding="UTF-8"?>
   <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1">
    <query>
        <scope source="authoritative.bar.example"/>
    </query>
   </getMappingsRequest>

         Figure 5: Example of scoped <getMappingsRequest> message

   The response is shown in Figure 6.  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:sync="urn:ietf:params:xml:ns:lostsync1"
       xmlns="urn:ietf:params:xml:ns:lost1"
       xmlns:p2="http://www.opengis.net/gml">

           <mapping 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@leonianj2.example.org</uri>
               <serviceNumber>911</serviceNumber>



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 10]

Internet-Draft                  LoST Sync                  February 2009


           </mapping>

           <mapping expires="2009-01-01T01:44:33Z"
               lastUpdated="2008-11-01T01:00:00Z"
               source="authoritative.foo.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>
               <serviceNumber>911</serviceNumber>
           </mapping>

   </sync:getMappingsResponse>

              Figure 6: Example <getMappingsResponse> Message




















Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 11]

Internet-Draft                  LoST Sync                  February 2009


4.  Pushing Mappings via <pushMappings> and <pushMappingsResponse>

4.1.  LoST Sync Client's Behavior

   When a LoST Sync node obtains new information that is of interest to
   its peers, it MAY push the new mappings to its peers.  Configuration
   settings at both peers decide whether this functionality is used.
   New mappings might arrive through non-LoST means, such as a manual
   addition to the local mappings database, or through the interaction
   with other LoST nodes.  Mappings may also be deleted and this may
   trigger events.

   A sending node keeps track with which recipient it has exchanged
   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.  LoST Sync nodes MUST NOT push the same
   information to the same peer twice.

   A LoST Sync client MUST send a <pushMappings> request containing one
   or more <mapping> elements.

   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 an attempt is made
   to delete a non-existent mapping, the request is silently ignored.

4.2.  LoST Sync Server's Behavior

   When a LoST Sync Server receives a <pushMappingsRequest> message then
   a newly received mapping M' MUST replace an existing mapping M if all
   of the following conditions hold:

   1.  M'.source equals M.source

   2.  M'.sourceID' equals M.sourceID

   3.  M'.lastUpdated greater than M.lastUpdated

   If the received mapping M' does not update any existing mapping M
   then it MUST be added to the local cache as an independent mapping.

   If a <pushMappingsRequest> message with an empty <mapping> element is
   received then a corresponding mapping has to be determined based on
   the 'source', 'sourceID' and 'lastUpdated' attributes.  If a mapping
   has been found then it MUST be deleted.  If no mapping can be
   identified then an <errors> response MUST be returned that contains



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 12]

Internet-Draft                  LoST Sync                  February 2009


   the <notDeleted> child element.  The <notDeleted> element MAY carry a
   <message> element and MUST contain the <mapping> element(s) that
   caused the error.

   The response to a <pushMappingsRequest> request is a
   <pushMappingsResponse> message.  With this specification, a
   successful response message returns no additional elements, 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], are
   used.  The <redirect> and <warnings> messages are not used for this
   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, given the relatively low volume of data.)

4.3.  Example

   An example is shown in Figure 7.  Image a LoST node that obtained two
   new mappings 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, 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:pushMappingsRequest
       xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
       xmlns="urn:ietf:params:xml:ns:lost1"
       xmlns:p2="http://www.opengis.net/gml">

           <mapping source="authoritative.example"



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 13]

Internet-Draft                  LoST Sync                  February 2009


               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>
               <serviceNumber>911</serviceNumber>
           </mapping>

           <mapping expires="2009-01-01T01:44:33Z"
               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>
               <serviceNumber>911</serviceNumber>
           </mapping>

           <mapping source="nj.us.example"



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 14]

Internet-Draft                  LoST Sync                  February 2009


               sourceId="123"
               lastUpdated="2008-11-01T01:00:00Z"
               expires="2008-11-01T01:00:00Z"/>

   </sync:pushMappingsRequest>

              Figure 7: Example <pushMappingsRequest> Message

   In response, the peer performs the necessary operation and updates
   its mapping database.  In particular, it will check whether the other
   peer 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 8.


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

                 Figure 8: Example <pushMappingsResponse>

   In case that a mapping could not be deleted as requested the
   following error response might be returned instead.

   <?xml version="1.0" encoding="UTF-8"?>
   <errors xmlns="urn:ietf:params:xml:ns:lost1"
       xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
       source="nodeA.example.com">

       <sync:notDeleted
           message="Could not delete the indicated mapping."
           xml:lang="en">

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

       </sync:notDeleted>
   </errors>

                    Figure 9: Example <errors> Message










Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 15]

Internet-Draft                  LoST Sync                  February 2009


5.  Transport

   LoST Sync needs an underlying protocol transport mechanism to carry
   requests and responses.  This document defines the use of LoST Sync
   over HTTP and LoST over HTTP-over-TLS.  Client and server developers
   are reminded that full support of RFC 2616 HTTP facilities is
   expected.  If LoST Sync clients or servers re-implement HTTP, rather
   than using available servers or client code as a base, careful
   attention must be paid to full interoperability.  Other transport
   mechanisms are left to future documents.  The available transport
   mechanisms are determined through the use of the LoST U-NAPTR
   application.  In protocols that support content type indication, LoST
   Sync uses the media type application/lostsync+xml.

   When using HTTP [RFC2616] and HTTP-over-TLS [RFC2818], LoST Sync
   messages use the HTTP POST method.  The HTTP request MUST use the
   Cache-Control response directive "no-cache" to HTTP-level caching
   even by caches that have been configured to return stale responses to
   client requests.

   All LoST Sync responses, including those indicating a LoST warning or
   error, are carried in 2xx responses, typically 200 (OK).  Other 2xx
   responses, in particular 203 (Non-authoritative information) may be
   returned by HTTP caches that disregard the caching instructions. 3xx,
   4xx and 5xx HTTP response codes indicates that the HTTP request
   itself failed or was redirected; these responses do not contain any
   LoST Sync XML elements.

   The HTTP URL is derived from the LoST Sync server name via U-NAPTR
   application.





















Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 16]

Internet-Draft                  LoST Sync                  February 2009


6.  RelaxNG


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

        <grammar ns="urn:ietf:params:xml:ns:lostsync1"
        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="getMappingsRequest"/>
                    <ref name="getMappingsResponse"/>
                </choice>
            </start>


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

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

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

             <define name="getMappingsRequest">
                  <element name="getMappingsRequest">
                    <choice>
                         <ref name="exists"></ref>
                         <ref name="query"></ref>
                         <ref name="extensionPoint"/>



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 17]

Internet-Draft                  LoST Sync                  February 2009


                    </choice>
                </element>
            </define>

             <define name="exists">
                  <element name="exists">
                       <oneOrMore>
                            <element name="mapping-fingerprint">
                                 <attribute name="source">
                                      <data type="token"/>
                                 </attribute>
                                 <attribute name="sourceId">
                                      <data type="token"/>
                                 </attribute>
                                 <attribute name="lastUpdated">
                                      <data type="dateTime"/>
                                 </attribute>
                                 <ref name="extensionPoint"/>
                            </element>
                       </oneOrMore>
                  </element>
             </define>

             <define name="query">
                  <element name="query">
                  <oneOrMore>
                       <element name="scope">
                            <choice>
                                 <attribute name="source">
                                     <data type="token"/>
                                </attribute>
                                 <attribute name="sourceId">
                                      <data type="token"/>
                                 </attribute>
                                 <attribute name="service">
                                      <data type="anyURI"/>
                                 </attribute>
                                 <ref name="extensionPoint"/>
                            </choice>
                       </element>
                  </oneOrMore>
                  <ref name="extensionPoint"/>
                  </element>
             </define>

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



Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 18]

Internet-Draft                  LoST Sync                  February 2009


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

             <!-- error messages -->

             <define name="notDeleted">
                  <element name="notDeleted">
                       <ref name="basicException"/>
                       <oneOrMore>
                            <ref name="mapping"/>
                       </oneOrMore>
                  </element>
             </define>
        </grammar>


































Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 19]

Internet-Draft                  LoST Sync                  February 2009


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












































Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 20]

Internet-Draft                  LoST Sync                  February 2009


8.  IANA Considerations

8.1.  Content-type registration for 'application/lostsync+xml'

   This specification requests the registration of a new MIME type
   according to the procedures of RFC 4288 [RFC4288] and guidelines in
   RFC 3023 [RFC3023].

   MIME media type name:  application


   MIME subtype name:  lostsync+xml


   Mandatory parameters:  none


   Optional parameters:  charset

      Indicates the character encoding of enclosed XML.


   Encoding considerations:  Uses XML, which can employ 8-bit
      characters, depending on the character encoding used.  See RFC
      3023 [RFC3023], Section 3.2.


   Security considerations:  This content type is designed to carry LoST
      Syncronization protocol payloads.


   Interoperability considerations:  None



   Published specification:  RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please
      replace XXXX with the RFC number of this specification.]


   Applications which use this media type:  Emergency and Location-based
      Systems


   Additional information:







Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 21]

Internet-Draft                  LoST Sync                  February 2009


      Magic Number:  None


      File Extension:  .lostsyncxml


      Macintosh file type code:  'TEXT'


   Personal and email address for further information:  Hannes
      Tschofenig, Hannes.Tschofenig@nsn.com


   Intended usage:  LIMITED USE


   Author:

      This specification is a work item of the IETF ECRIT working group,
      with mailing list address <ecrit@ietf.org>.


   Change controller:

      The IESG <iesg@ietf.org>

8.2.  LoST Sync Relax NG Schema Registration

   URI:  urn:ietf:params:xml:schema:lostsync1

   Registrant Contact:  IETF ECRIT Working Group, Hannes Tschofenig
      (Hannes.Tschofenig@nsn.com).

   Relax NG Schema:  The Relax NG schema to be registered is contained
      in Section 6.  Its first line is

   default namespace = "urn:ietf:params:xml:ns:lost1"

      and its last line is

   }

8.3.  LoST Synchronization Namespace Registration








Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 22]

Internet-Draft                  LoST Sync                  February 2009


   URI:  urn:ietf:params:xml:ns:lostsync1

   Registrant Contact:  IETF ECRIT Working Group, Hannes Tschofenig
      (Hannes.Tschofenig@nsn.com).

   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
























Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 23]

Internet-Draft                  LoST Sync                  February 2009


9.  Acknowledgments

   Robins George, Cullen Jennings, Karl Heinz Wolf, Richard Barnes 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.













































Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 24]

Internet-Draft                  LoST Sync                  February 2009


10.  References

10.1.  Normative References

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

   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

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

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC3023]  Murata, M., St. Laurent, S., and D. Kohn, "XML Media
              Types", RFC 3023, January 2001.

   [RFC4288]  Freed, N. and J. Klensin, "Media Type Specifications and
              Registration Procedures", BCP 13, RFC 4288, December 2005.

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

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














Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 25]

Internet-Draft                  LoST Sync                  February 2009


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




























Schulzrinne & Tschofenig  Expires August 19, 2009              [Page 26]


Html markup produced by rfcmarkup 1.107, available from http://tools.ietf.org/tools/rfcmarkup/