One document matched: draft-ietf-ecrit-lost-sync-03.xml
<?xml version="1.0"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY rfc2617 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2617.xml'>
<!ENTITY rfc5222 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5222.xml'>
<!ENTITY rfc5246 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml'>
<!ENTITY I-D.ietf-ecrit-mapping-arch PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-ecrit-mapping-arch.xml'>
<!ENTITY RFC3023 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3023.xml'>
<!ENTITY RFC4288 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4288.xml'>
<!ENTITY RFC2616 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml'>
<!ENTITY RFC2818 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2818.xml'>
]>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<rfc ipr="trust200811" category="std" docName="draft-ietf-ecrit-lost-sync-03.txt">
<front>
<title abbrev="LoST Sync">Synchronizing Location-to-Service Translation (LoST) Protocol
based Service Boundaries and Mapping Elements</title>
<author initials="H." surname="Schulzrinne" fullname="Henning Schulzrinne">
<organization>Columbia University</organization>
<address>
<postal>
<street>Department of Computer Science</street>
<street>450 Computer Science Building</street>
<city>New York</city>
<region>NY</region>
<code>10027</code>
<country>US</country>
</postal>
<phone>+1 212 939 7004</phone>
<email>hgs+ecrit@cs.columbia.edu</email>
<uri>http://www.cs.columbia.edu</uri>
</address>
</author>
<author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
<organization>Nokia Siemens Networks</organization>
<address>
<postal>
<street>Linnoitustie 6</street>
<city>Espoo</city>
<code>02600</code>
<country>Finland</country>
</postal>
<phone>+358 (50) 4871445</phone>
<email>Hannes.Tschofenig@gmx.net</email>
<uri>http://www.tschofenig.priv.at</uri>
</address>
</author>
<date year="2009"/>
<area>RAI</area>
<workgroup>ECRIT</workgroup>
<keyword>Internet-Draft</keyword>
<keyword>Location</keyword>
<abstract>
<t>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. </t>
<t>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.</t>
<t>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. </t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>The <xref target="RFC5222">LoST (Location-to-Service Translation) protocol</xref>
maps service identifiers and geodetic or civic location information to service URIs.
As specified in the <xref target="I-D.ietf-ecrit-mapping-arch">LoST architecture
description</xref>, 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.</t>
<t>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.</t>
<t>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.</t>
<t>This document defines two types of exchanges and those are best described by the
exchange between two nodes as shown in <xref target="overview1"/> and <xref
target="overview2"/>. 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 <xref
target="overview1"/> and <xref target="overview2"/> has mappings that Node B is
going to retrieve. </t>
<t> The <getMappingsRequest> and <getMappingsResponse> exchange allows a
LoST Sync client to request mappings from a LoST Sync server. As described in <xref
target="query"/> the <getMappingsRequest> message may contain further
information to scope the retrieval of all available mappings on the LoST Sync server
node. <figure anchor="overview1"
title="Querying for Mappings with a <getMappingsRequest> Message">
<artwork><![CDATA[
+---------+ +---------+
| Node B | | Node A |
| acting | | acting |
| as | | as |
| LoST | | LoST |
| Sync | | Sync |
| Client | | Server |
+---------+ +---------+
| |
| |
| |
| <getMappingsRequest> |
|----------------------------->|
| |
| <getMappingsResponse> |
|<-----------------------------|
| |
| |
| |
]]></artwork>
</figure>
</t>
<t> 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. <figure
anchor="overview2"
title="Pushing Mappings with a <pushMappingsRequest> Message">
<artwork><![CDATA[
+---------+ +---------+
| Node A | | Node B |
| acting | | acting |
| as | | as |
| LoST | | LoST |
| Sync | | Sync |
| Client | | Server |
+---------+ +---------+
| |
| |
| |
| <pushMappingsRequest> |
|----------------------------->|
| |
| <pushMappingsResponse> |
|<-----------------------------|
| |
| |
| |
]]></artwork>
</figure>
</t>
</section>
<!-- ******************************************************************************** -->
<section anchor="terminology" title="Terminology">
<t>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 <xref target="RFC2119"/>.</t>
<t>This document reuses terminology introduced by the <xref
target="I-D.ietf-ecrit-mapping-arch">mapping architecture document</xref>.</t>
<t>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.</t>
</section>
<!-- ******************************************************************************** -->
<section anchor="query"
title="Querying for Mappings with a <getMappingsRequest> / <getMappingsResponse> Exchange ">
<section title="LoST Sync Client's Behavior">
<t>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 <xref target="empty-request"/>. 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.</t>
<t>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. </t>
<t>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.</t>
<t>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.</t>
</section>
<section title="LoST Sync Server's Behavior">
<t>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).</t>
<t>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. </t>
<t>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. </t>
<t>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 <xref
target="RFC5222"/>, are used by this specification. Neither the
<redirect> nor the <warnings> messages are reused by this
message.</t>
</section>
<section title="Examples">
<t>The first examples show the simplest <getMappingsRequest> message. <figure
anchor="empty-request"
title="Example of empty <getMappingsRequest> message">
<artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"/>
]]></artwork>
</figure>
</t>
<t>An further example request is shown in <xref target="getMappings"/>, the
corresponding response in <xref target="getMappingsResponse"/>. 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". </t>
<t>
<figure anchor="getMappings" title="Example <getMappingsRequest> Message">
<artwork><![CDATA[
<?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>
]]></artwork>
</figure>
</t>
<t>The following <getMappingsRequest> message quests all mappings that where
the 'source' attribute matches "authoritative.foo.example".</t>
<t>
<figure anchor="getMappings-scope"
title="Example of scoped <getMappingsRequest> message">
<artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1">
<query>
<scope source="authoritative.bar.example"/>
</query>
</getMappingsRequest>
]]></artwork>
</figure>
</t>
<t>The response is shown in <xref target="getMappingsResponse"/>. 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. </t>
<t>
<figure anchor="getMappingsResponse"
title="Example <getMappingsResponse> Message">
<artwork><![CDATA[
<?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>
]]></artwork>
</figure>
</t>
</section>
</section>
<!-- ******************************************************************************** -->
<section
title="Pushing Mappings via <pushMappings> and
<pushMappingsResponse>">
<section title="LoST Sync Client's Behavior">
<t>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.</t>
<t>A sending node keeps track with which recipient it has exchanged mapping elements
with. As discussed in Section 5.1 of <xref target="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.</t>
<t>A LoST Sync client MUST send a <pushMappings> request containing one or
more <mapping> elements. </t>
<t>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.</t>
</section>
<section title="LoST Sync Server's Behavior">
<t>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: <list style="numbers">
<t>M'.source equals M.source</t>
<t>M'.sourceID' equals M.sourceID</t>
<t>M'.lastUpdated greater than M.lastUpdated</t>
</list>
</t>
<t>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.</t>
<t>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.</t>
<t>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 <xref target="RFC5222"
/>, are used. The <redirect> and <warnings> messages are not used
for this query/response.</t>
<t>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.)</t>
</section>
<section title="Example">
<t> An example is shown in <xref target="pushMappings"/>. Image a LoST node that
obtained two new mappings identified as follows: <list style="symbols">
<t> source="authoritative.example"
sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2008-11-26T01:00:00Z" </t>
<t>source="authoritative.example"
sourceId="7e3f40b098c711dbb606011111111111"
lastUpdated="2008-11-01T01:00:00Z" </t>
</list>
</t>
<t> These two mappings have to be added to the peer's mapping database. </t>
<t> Additionally, the following mapping has to be deleted: <list style="symbols">
<t> source="nj.us.example" sourceId="123" lastUpdated="2008-11-01T01:00:00Z"
</t>
</list>
</t>
<t>
<figure anchor="pushMappings"
title="Example <pushMappingsRequest> Message">
<artwork><![CDATA[
<?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>
]]></artwork>
</figure>
</t>
<t>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
<xref target="pushMappingsResponse"/>.</t>
<t>
<figure anchor="pushMappingsResponse"
title="Example <pushMappingsResponse>">
<artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<pushMappingsResponse xmlns="urn:ietf:params:xml:ns:lostsync1" />
]]></artwork>
</figure>
</t>
<t>In case that a mapping could not be deleted as requested the following error
response might be returned instead. <figure anchor="error"
title="Example <errors> Message">
<artwork><![CDATA[
<?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>
]]></artwork>
</figure>
</t>
</section>
</section>
<!-- ******************************************************************************** -->
<section title="Transport">
<t> 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.</t>
<t>When using HTTP <xref target="RFC2616"/> and HTTP-over-TLS <xref target="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.</t>
<t>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. </t>
<t>The HTTP URL is derived from the LoST Sync server name via U-NAPTR application.</t>
</section>
<!-- ******************************************************************************** -->
<section anchor="schema" title="RelaxNG">
<t> <figure>
<artwork><![CDATA[
<?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>
]]></artwork>
</figure>
</t>
</section>
<!-- ******************************************************************************** -->
<section title="Security Considerations">
<t>The LoST security considerations are discussed in <xref target="RFC5222"/>. The
operations described in this document involve mutually-trusting LoST nodes. These
nodes need to authenticate each other, using mechanisms such as <xref
target="RFC2617">HTTP Digest</xref>, <xref target="RFC2617">HTTP Basic</xref>
over <xref target="RFC5246">TLS</xref> or TLS client and server certificates.</t>
</section>
<!-- ******************************************************************************** -->
<section title="IANA Considerations">
<section title="Content-type registration for 'application/lostsync+xml'">
<t>This specification requests the registration of a new MIME type according to the
procedures of RFC 4288 <xref target="RFC4288"/> and guidelines in RFC 3023 <xref
target="RFC3023"/>.</t>
<t>
<list style="hanging">
<t hangText="MIME media type name:">application <vspace blankLines="1"/>
</t>
<t hangText="MIME subtype name:">lostsync+xml <vspace blankLines="1"/>
</t>
<t hangText="Mandatory parameters:">none<vspace blankLines="1"/>
</t>
<t hangText="Optional parameters:">charset<vspace blankLines="1"/> Indicates
the character encoding of enclosed XML.<vspace blankLines="1"/>
</t>
<t hangText="Encoding considerations:"> Uses XML, which can employ 8-bit
characters, depending on the character encoding used. See RFC 3023 <xref
target="RFC3023"/>, Section 3.2.<vspace blankLines="1"/></t>
<t hangText="Security considerations:"> This content type is designed to
carry LoST Syncronization protocol payloads.<vspace blankLines="1"/></t>
<t hangText="Interoperability considerations:">None<vspace blankLines="1"
/><vspace blankLines="1"/></t>
<t hangText="Published specification:">RFCXXXX [NOTE TO IANA/RFC-EDITOR:
Please replace XXXX with the RFC number of this specification.]<vspace
blankLines="1"/>
</t>
<t hangText="Applications which use this media type:"> Emergency and
Location-based Systems<vspace blankLines="1"/>
</t>
<t hangText="Additional information:">
<list style="hanging">
<t hangText="Magic Number:">None<vspace blankLines="1"/>
</t>
<t hangText="File Extension:">.lostsyncxml<vspace blankLines="1"/>
</t>
<t hangText="Macintosh file type code:">'TEXT'<vspace blankLines="1"
/>
</t>
</list>
</t>
<t hangText="Personal and email address for further information:">Hannes
Tschofenig, Hannes.Tschofenig@nsn.com<vspace blankLines="1"/>
</t>
<t hangText="Intended usage:">LIMITED USE<vspace blankLines="1"/>
</t>
<t hangText="Author:">
<vspace blankLines="1"/> This specification is a work item of the IETF
ECRIT working group, with mailing list address
<ecrit@ietf.org>.<vspace blankLines="1"/>
</t>
<t hangText="Change controller:">
<vspace blankLines="1"/>The IESG <iesg@ietf.org> </t>
</list>
</t>
</section>
<section title="LoST Sync Relax NG Schema Registration">
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:schema:lostsync1</t>
<t hangText="Registrant Contact:">IETF ECRIT Working Group, Hannes
Tschofenig (Hannes.Tschofenig@nsn.com).</t>
<t hangText="Relax NG Schema:">The Relax NG schema to be registered is
contained in <xref target="schema"/>. Its first line is <figure>
<artwork><![CDATA[
default namespace = "urn:ietf:params:xml:ns:lost1"
]]></artwork>
</figure> and its last line is<figure>
<artwork><![CDATA[
}
]]></artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="LoST Synchronization Namespace Registration">
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:lostsync1</t>
<t hangText="Registrant Contact:">IETF ECRIT Working Group, Hannes
Tschofenig (Hannes.Tschofenig@nsn.com).</t>
<t hangText="XML:">
<figure>
<artwork><![CDATA[
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
]]></artwork>
</figure>
</t>
</list>
</t>
</section>
</section>
<!-- ******************************************************************************** -->
<section title="Acknowledgments">
<t>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.</t>
</section>
<!-- ******************************************************************************** -->
</middle>
<back>
<references title="Normative References"> &rfc2119; &rfc2617; &rfc5222;
&rfc5246; &RFC3023; &RFC4288; &RFC2616; &RFC2818; </references>
<references title="Informative References"> &I-D.ietf-ecrit-mapping-arch; </references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 04:33:28 |