TOC 
ECRITH. Schulzrinne
Internet-DraftColumbia University
Intended status: Standards TrackH. Tschofenig
Expires: August 19, 2009Nokia 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

Abstract

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.



Table of Contents

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




 TOC 

1.  Introduction

The LoST (Location-to-Service Translation) protocol (Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” August 2008.) [RFC5222] maps service identifiers and geodetic or civic location information to service URIs. As specified in the LoST architecture description (Schulzrinne, H., “Location-to-URL Mapping Architecture and Framework,” March 2009.) [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 (Querying for Mappings with a <getMappingsRequest> Message) and Figure 2 (Pushing Mappings with a <pushMappingsRequest> Message). 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 (Querying for Mappings with a <getMappingsRequest> Message) and Figure 2 (Pushing Mappings with a <pushMappingsRequest> Message) 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 (Querying for Mappings with a <getMappingsRequest> / <getMappingsResponse> Exchange ) the <getMappingsRequest> message may contain further information to scope the retrieval of all available mappings on the LoST Sync server node.


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


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

 Figure 2: Pushing Mappings with a <pushMappingsRequest> Message 



 TOC 

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

This document reuses terminology introduced by the mapping architecture document (Schulzrinne, H., “Location-to-URL Mapping Architecture and Framework,” March 2009.) [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.



 TOC 

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



 TOC 

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 (Example of empty <getMappingsRequest> message). 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.



 TOC 

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 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] (Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” August 2008.), are used by this specification. Neither the <redirect> nor the <warnings> messages are reused by this message.



 TOC 

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 (Example <getMappingsRequest> Message), the corresponding response in Figure 6 (Example <getMappingsResponse> Message). 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>

 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 (Example <getMappingsResponse> Message). 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>
        </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 



 TOC 

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



 TOC 

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] (Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” August 2008.), 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.



 TOC 

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 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] (Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” August 2008.), 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.)



 TOC 

4.3.  Example

An example is shown in Figure 7 (Example <pushMappingsRequest> Message). Image a LoST node that obtained two new mappings identified as follows:

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

Additionally, the following mapping has to be deleted:



<?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"
            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"
            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 (Example <pushMappingsResponse>).



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



 TOC 

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] (Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, “Hypertext Transfer Protocol -- HTTP/1.1,” June 1999.) and HTTP-over-TLS [RFC2818] (Rescorla, E., “HTTP Over TLS,” May 2000.), 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.



 TOC 

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"/>
                 </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>
                         <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>



 TOC 

7.  Security Considerations

The LoST security considerations are discussed in [RFC5222] (Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” August 2008.). The operations described in this document involve mutually-trusting LoST nodes. These nodes need to authenticate each other, using mechanisms such as HTTP Digest (Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication: Basic and Digest Access Authentication,” June 1999.) [RFC2617], HTTP Basic (Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication: Basic and Digest Access Authentication,” June 1999.) [RFC2617] over TLS (Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2,” August 2008.) [RFC5246] or TLS client and server certificates.



 TOC 

8.  IANA Considerations



 TOC 

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] (Freed, N. and J. Klensin, “Media Type Specifications and Registration Procedures,” December 2005.) and guidelines in RFC 3023 [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.).

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] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), 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:
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>



 TOC 

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 (RelaxNG). Its first line is
default namespace = "urn:ietf:params:xml:ns:lost1"
and its last line is
}



 TOC 

8.3.  LoST Synchronization Namespace Registration

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



 TOC 

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.



 TOC 

10.  References



 TOC 

10.1. Normative References

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[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 (TXT, PS, PDF, HTML, XML).
[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 (TXT, HTML, XML).
[RFC2818] Rescorla, E., “HTTP Over TLS,” RFC 2818, May 2000 (TXT).
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” RFC 3023, January 2001 (TXT).
[RFC4288] Freed, N. and J. Klensin, “Media Type Specifications and Registration Procedures,” BCP 13, RFC 4288, December 2005 (TXT).
[RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. Tschofenig, “LoST: A Location-to-Service Translation Protocol,” RFC 5222, August 2008 (TXT).
[RFC5246] Dierks, T. and E. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2,” RFC 5246, August 2008 (TXT).


 TOC 

10.2. Informative References

[I-D.ietf-ecrit-mapping-arch] Schulzrinne, H., “Location-to-URL Mapping Architecture and Framework,” draft-ietf-ecrit-mapping-arch-04 (work in progress), March 2009 (TXT).


 TOC 

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