draft-ietf-ecrit-lost-sync-18.txt   rfc6739.txt 
ECRIT H. Schulzrinne Internet Engineering Task Force (IETF) H. Schulzrinne
Internet-Draft Columbia University Request for Comments: 6739 Columbia University
Intended status: Experimental H. Tschofenig Category: Experimental H. Tschofenig
Expires: January 11, 2013 Nokia Siemens Networks ISSN: 2070-1721 Nokia Siemens Networks
July 10, 2012 October 2012
Synchronizing Location-to-Service Translation (LoST) Protocol based Synchronizing Service Boundaries and <mapping> Elements Based on the
Service Boundaries and Mapping Elements Location-to-Service Translation (LoST) Protocol
draft-ietf-ecrit-lost-sync-18.txt
Abstract Abstract
The Location-to-Service Translation (LoST) protocol is an XML-based The Location-to-Service Translation (LoST) protocol is an XML-based
protocol for mapping service identifiers and geodetic or civic protocol for mapping service identifiers and geodetic or civic
location information to service URIs and service boundaries. In location information to service URIs and service boundaries. In
particular, it can be used to determine the location-appropriate particular, it can be used to determine the location-appropriate
Public Safety Answering Point (PSAP) for emergency services. Public Safety Answering Point (PSAP) for emergency services.
The <mapping> element is used to encapsulate information about The <mapping> element in the LoST protocol specification encapsulates
service boundaries is defined in the LoST protocol specification and information about service boundaries and circumscribes the region
circumscribes the region within which all locations map to the same within which all locations map to the same service Uniform Resource
service Uniform Resource Identifier (URI) or set of URIs for a given Identifier (URI) or set of URIs for a given service.
service.
This document defines an XML protocol to exchange these mappings This document defines an XML protocol to exchange these mappings
between two nodes. This mechanism is designed for the exchange of between two nodes. This mechanism is designed for the exchange of
authoritative <mapping> elements between two entities. Exchanging authoritative <mapping> elements between two entities. Exchanging
cached <mapping> elements, i.e. non-authoritative elements, is cached <mapping> elements, i.e., non-authoritative elements, is
possible but not envisioned. In any case, this document can also be possible but not envisioned. Even though the <mapping> element
used without the LoST protocol even though the format of the format is reused from the LoST specification, the mechanism in this
<mapping> element is re-used from the LoST specification. document can be used without the LoST protocol.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for examination, experimental implementation, and
evaluation.
Internet-Drafts are working documents of the Internet Engineering This document defines an Experimental Protocol for the Internet
Task Force (IETF). Note that other groups may also distribute community. This document is a product of the Internet Engineering
working documents as Internet-Drafts. The list of current Internet- Task Force (IETF). It represents the consensus of the IETF
Drafts is at http://datatracker.ietf.org/drafts/current/. community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are a candidate for any level of
Internet Standard; see Section 2 of RFC 5741.
Internet-Drafts are draft documents valid for a maximum of six months Information about the current status of this document, any errata,
and may be updated, replaced, or obsoleted by other documents at any and how to provide feedback on it may be obtained at
time. It is inappropriate to use Internet-Drafts as reference http://www.rfc-editor.org/info/rfc6739.
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 11, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. A Motivating Example . . . . . . . . . . . . . . . . . . . . . 6 3. A Motivating Example . . . . . . . . . . . . . . . . . . . . . 4
4. Querying for Mappings with a <getMappingsRequest> / 4. Querying for Mappings with a
<getMappingsResponse> Exchange . . . . . . . . . . . . . . . . 12 <getMappingsRequest>/<getMappingsResponse> Exchange . . . . . 9
4.1. Behavior of the LoST Sync Destination . . . . . . . . . . 12 4.1. Behavior of the LoST Sync Destination . . . . . . . . . . 9
4.2. Behavior of the LoST Sync Source . . . . . . . . . . . . . 12 4.2. Behavior of the LoST Sync Source . . . . . . . . . . . . . 10
4.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 10
5. Pushing Mappings via <pushMappings> and 5. Pushing Mappings via <pushMappings> and
<pushMappingsResponse> . . . . . . . . . . . . . . . . . . . . 15 <pushMappingsResponse> . . . . . . . . . . . . . . . . . . . . 12
5.1. Behavior of the LoST Sync Source . . . . . . . . . . . . . 15 5.1. Behavior of the LoST Sync Source . . . . . . . . . . . . . 12
5.2. Behavior of the LoST Sync Destination . . . . . . . . . . 15 5.2. Behavior of the LoST Sync Destination . . . . . . . . . . 13
5.3. Example . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.3. Example . . . . . . . . . . . . . . . . . . . . . . . . . 14
6. Transport . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6. Transport . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. RelaxNG . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 7. RELAX NG . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8. Operational Considerations . . . . . . . . . . . . . . . . . . 23 8. Operational Considerations . . . . . . . . . . . . . . . . . . 19
9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21
10.1. Media Type Registration . . . . . . . . . . . . . . . . . 25 10.1. Media Type Registration . . . . . . . . . . . . . . . . . 21
10.2. LoST Sync Relax NG Schema Registration . . . . . . . . . . 26 10.2. LoST Sync RELAX NG Schema Registration . . . . . . . . . . 22
10.3. LoST Synchronization Namespace Registration . . . . . . . 27 10.3. LoST Synchronization Namespace Registration . . . . . . . 22
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.1. Normative References . . . . . . . . . . . . . . . . . . . 29 12.1. Normative References . . . . . . . . . . . . . . . . . . . 24
12.2. Informative References . . . . . . . . . . . . . . . . . . 29 12.2. Informative References . . . . . . . . . . . . . . . . . . 24
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30
1. Introduction 1. Introduction
Since the early days of emergency services there has been a desire to Since the early days of emergency services, there has been a desire
route emergency calls to Public Safety Answering Points (PSAPs) that to route emergency calls to Public Safety Answering Points (PSAPs)
are nearest to the location of the emergency caller. For this that are nearest to the location of the emergency caller. For this
purpose each PSAP discloses one or multiple service boundaries so purpose each PSAP discloses one or more service boundaries so that
that this information can be used to select the appropriate PSAP and this information can be used to select the appropriate PSAP and to
to route the call to it. RFC 5222 [RFC5222] defines this data route the call to it. RFC 5222 [RFC5222] defines this data structure
structure in the following way: in the following way:
A service boundary circumscribes the region within which all A service boundary circumscribes the region within which all
locations map to the same service Uniform Resource Identifier locations map to the same service URI or set of URIs for a given
(URI) or set of URIs for a given service. A service boundary may service. A service boundary may consist of several non-contiguous
consist of several non-contiguous geometric shapes. geometric shapes.
RFC 5222 [RFC5222] not only defines the term but it also specifies RFC 5222 [RFC5222] also specifies the data structure itself as the
the data structure itself: the <mapping> element. <mapping> element.
This document re-uses this existing data structure and defines an This document reuses this existing data structure and defines an XML-
XML-based protocol to exchange authoritative service boundaries based protocol to exchange authoritative service boundaries between
between two entities (the LoST Sync source and the LoST Sync two entities, namely, the LoST Sync source and the LoST Sync
destination). This protocol can be used with and without the actual destination. This protocol can be used whether or not the LoST
LoST protocol. protocol is used for querying for service boundary information.
The rest of the document is structured as follows: Section 3 starts The rest of the document is structured as follows. Section 3 starts
with an example usage of the LoST protocol. In Section 4, Section 5, with an example usage of the LoST protocol. In Sections 4, 5, 6, and
Section 6, and Section 7 we describe the protocol semantics, 7, we describe the protocol semantics, transport considerations, and
transport considerations and the schema. Finally, we conclude with the schema. Finally, we conclude with operational, security, and
operational and security considerations in Section 8, and in IANA considerations in Sections 8, 9, and 10.
Section 9.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
This document reuses terminology introduced by the mapping This document reuses terminology introduced by the mapping
architecture document [RFC5582], such as 'coverage region', 'forest architecture document [RFC5582], such as 'coverage region', 'forest
guide', 'mapping', 'authoritative mapping server', and 'ESRP'. guide', 'mapping', and 'authoritative mapping server'. This document
also uses the term 'ESRP', defined in [RFC5012].
Throughout this document we use the term LoST Sync source and LoST Throughout this document, we use the terms 'LoST Sync source' and
Sync destination to denote the protocol end points of the exchange. 'LoST Sync destination' to denote the protocol endpoints of the
The protocol is referred as LoST Sync within the text. exchange. The protocol is referred to as 'LoST Sync' within the
text.
3. A Motivating Example 3. A Motivating Example
The LoST Sync mechanism can, for example, be used in the LoST The LoST Sync mechanism can, for example, be used in the LoST
architecture, as specified in the [RFC5582]. There, LoST servers act architecture, as specified in [RFC5582]. There, LoST servers
in different roles that cooperate to provide an ubiquitous, globally cooperate to provide an ubiquitous, globally scalable, and resilient
scalable and resilient mapping service. In the LoST mapping mapping service. In the LoST mapping architecture, LoST servers can
architecture, LoST servers can peer, i.e., have an on-going data peer, i.e., have an ongoing data exchange relationship. Peering
exchange relationship. Peering relationships are set up manually, relationships are set up manually, based on local policies. A LoST
based on local policies. A LoST server may peer with any number of server may peer with any number of other LoST servers. Forest guides
other LoST servers. Forest guides peer with other forest guides; peer with other forest guides; authoritative mapping servers peer
authoritative mapping servers peer with forest guides and other with forest guides and other authoritative servers, either in the
authoritative servers, either in the same cluster or above or below same cluster or above or below them in the tree. Authoritative
them in the tree. Authoritative mapping servers push coverage mapping servers push coverage regions "up" the tree, i.e., from child
regions "up" the tree, i.e., from child nodes to parent nodes. The nodes to parent nodes. The child informs the parent of the
child informs the parent of the geospatial or civic region that it geospatial or civic region that it covers for a specific service.
covers for a specific service.
Consider a hypothetical deployent of LoST in two countries, for Consider a hypothetical deployment of LoST in two countries, for
example Austria and Finland. Austria, in our example, runs three example, Austria and Finland. Austria, in our example, runs three
authoritative mapping servers labeled as 'East', 'West' and 'Vienna' authoritative mapping servers labeled as 'East', 'West', and
whereby the former two cover the entire country expect for Vienna, 'Vienna', where the former two cover the entire country except for
which is covered by a separate LoST server. There may be other Vienna, which is covered by a separate LoST server. There may be
caching LoST servers run by ISPs, universities, and VSPs but they are other caching LoST servers run by ISPs, universities, and Voice
not relevant for this illustration. Finland, on the other hand, Service Providers (VSPs), but they are not relevant for this
decided to only deploy a single LoST server that also acts as a illustration. Finland, on the other hand, decided to only deploy a
Forest Guide. For this simplistic illustration we assume that only single LoST server that also acts as a forest guide. For this
one service is available, namely 'urn:service:sos' since otherwise simplistic illustration, we assume that only one service is
the number of stored mappings would have to be multiplied by the available, namely 'urn:service:sos' since otherwise the number of
number of used services. stored mappings would have to be multiplied by the number of used
services.
Figure 1 shows the example deployment. Figure 1 shows the example deployment.
+---LoST-Sync-->\\ //<--LoST-Sync----+ +---LoST-Sync-->\\ //<--LoST-Sync----+
| ----- | | ----- |
| | | |
\/ \/ \/ \/
----- ----- ----- -----
// \\ // \\ // \\ // \\
/ \ / \ / \ / \
skipping to change at page 7, line 26 skipping to change at page 5, line 26
+--------->\\ //<--------+ \\ // +--------->\\ //<--------+ \\ //
| ----- | ----- | ----- | -----
| /\ | | | /\ | |
LoST | LoST //------\\ LoST | LoST //------\\
Sync LoST Sync |Co-Located| Sync LoST Sync |Co-Located|
| Sync | | LoST | | Sync | | LoST |
\/ | \/ | Server | \/ | \/ | Server |
//----\\ \/ //----\\ \\------// //----\\ \/ //----\\ \\------//
| LoST | //----\\ | LoST | | LoST | //----\\ | LoST |
| Server | | LoST | | Server | | Server | | LoST | | Server |
| (East) | | Server | |(Vienna)| | 'East' | | Server | |'Vienna'|
\\----// | (West) | \\----// \\----// | 'West' | \\----//
\\----// \\----//
Figure 1: LoST Deployment Example Figure 1: LoST Deployment Example
The configuration of these nodes would therefore be as follows: The nodes are configured as follows:
Forest Guide Austria: This forest guide would contain mappings for Forest Guide Austria: This forest guide contains mappings for the
the three authoritative mapping servers (East, West and Vienna) three authoritative mapping servers (East, West, and Vienna)
describing what area they are responsible for. Note that each describing the area for which they are responsible. Note that
mapping would contain a service URN and these mappings point to each mapping contains a service URN, and these mappings point to
LoST servers rather than to PSAPs or ESRPs. LoST servers rather than to PSAPs or Emergency Services Routing
Proxies (ESRPs).
LoST Server 'East': This LoST server would contain all the mappings LoST Server 'East': This LoST server contains all the mappings to
to PSAPs covering one half of the country. PSAPs covering the eastern part of the country.
Additionally, the LoST server aggregates all the information it Additionally, the LoST server aggregates all the information it
has and provides an abstracted view towards the Forest Guide has and provides an abstracted view towards the forest guide
indicating that it is responsible for a certain area (for a given indicating that it is responsible for a certain area (for a given
service, and for a given location profile). Such a mapping could service and for a given location profile). For our example, the
have the following structure: structure of a mapping is shown below:
<mapping <mapping
xmlns="urn:ietf:params:xml:ns:lost1" xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:gml="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml"
expires="2009-01-01T01:44:33Z" expires="2009-01-01T01:44:33Z"
lastUpdated="2009-12-01T01:00:00Z" lastUpdated="2009-12-01T01:00:00Z"
source="east-austria.lost-example.com" source="east-austria.lost-example.com"
sourceId="e8b05a41d8d1415b80f2cdbb96ccf109"> sourceId="e8b05a41d8d1415b80f2cdbb96ccf109">
<displayName xml:lang="en">LoST Server 'East'</displayName> <displayName xml:lang="en">LoST Server 'East'</displayName>
<service>urn:service:sos</service> <service>urn:service:sos</service>
skipping to change at page 8, line 32 skipping to change at page 6, line 32
</gml:LinearRing> </gml:LinearRing>
</gml:exterior> </gml:exterior>
</gml:Polygon> </gml:Polygon>
</serviceBoundary> </serviceBoundary>
<uri/> <uri/>
</mapping> </mapping>
Figure 2: Forest Guide Austria Mapping XML Snippet Figure 2: Forest Guide Austria Mapping XML Snippet
Note that the XML code snippet in Figure 2 serves illustrative Note that the XML code snippet in Figure 2 serves illustrative
purposes only and does not validate. As it can be seen in this purposes only and does not validate. As can be seen in this
example the <uri> element is absent and the 'source' attribute example, the <uri> element is absent, and the 'source' attribute
identifies the LoST server, namely "east-austria.lost- identifies the LoST server, namely "east-austria.lost-
example.com". example.com".
The above-shown mapping is what is the LoST server "east- The mapping shown above is what is the LoST server "east-
austria.lost-example.com" provides to the Austrian Forest Guide. austria.lost-example.com" provides to the Austrian forest guide.
LoST Server 'West': This LoST server would contain all the mappings LoST Server 'West': This LoST server contains all the mappings to
to PSAPs covering the other half of the country. PSAPs covering the western half of the country.
LoST Server 'Vienna': This LoST server would contain all the LoST Server 'Vienna': This LoST server contains all the mappings to
mappings to PSAPs in the area of Vienna. PSAPs for the city of Vienna.
Forest Guide Finland: In our example we assume that Finland would Forest Guide Finland: In our example, we assume that Finland deploys
deploy a single ESRP for the entire country as their IP-based a single ESRP for the entire country as their IP-based emergency
emergency services solution. There is only a single LoST server services solution. There is only a single LoST server, and it is
and it is co-located with the Forest Guide, as shown in Figure 1. co-located with the forest guide, as shown in Figure 1. The
The mapping data this FG would distribute via LoST sync is shown mapping data this forest guide (FG) then distributes via LoST Sync
in Figure 3. is shown in Figure 3.
<mapping xmlns="urn:ietf:params:xml:ns:lost1" <mapping xmlns="urn:ietf:params:xml:ns:lost1"
expires="2007-01-01T01:44:33Z" expires="2007-01-01T01:44:33Z"
lastUpdated="2006-11-01T01:00:00Z" lastUpdated="2006-11-01T01:00:00Z"
source="finland.lost-example.com" source="finland.lost-example.com"
sourceId="7e3f40b098c711dbb6060800200c9a66"> sourceId="7e3f40b098c711dbb6060800200c9a66">
<displayName xml:lang="en">Finland ESRP</displayName> <displayName xml:lang="en">Finland ESRP</displayName>
<service>urn:service:sos</service> <service>urn:service:sos</service>
<serviceBoundary profile="civic"> <serviceBoundary profile="civic">
<civicAddress <civicAddress
skipping to change at page 9, line 47 skipping to change at page 7, line 47
</civicAddress> </civicAddress>
</serviceBoundary> </serviceBoundary>
<uri>sip:esrp@finland-example.com</uri> <uri>sip:esrp@finland-example.com</uri>
<uri>xmpp:esrp@finland-example.com</uri> <uri>xmpp:esrp@finland-example.com</uri>
<serviceNumber>112</serviceNumber> <serviceNumber>112</serviceNumber>
</mapping> </mapping>
Figure 4: Forest Guide Finland / Co-Located LoST Server Mapping Figure 4: Forest Guide Finland / Co-Located LoST Server Mapping
XML Snippet XML Snippet
The LoST sync mechanism described in this document could be run The LoST Sync mechanism described in this document can be run between
between the two Forest Guides. Thereby, the three mappings stored in the two forest guides. That way, the three mappings stored in the FG
the Austria FG are sent to the FG Finland and a single mapping in the Austria are sent to the FG Finland, and a single mapping in the FG
FG Finland is sent to the FG Austria. Additionally, the three Finland is sent to the FG Austria. Additionally, the three Austrian
Austrian LoST servers could utilize LoST sync to inform the Austrian LoST servers could utilize LoST Sync to inform the Austrian FG about
FG about their boundaries. These three authoritative mapping servers their boundaries. These three authoritative mapping servers in
in Austria would be responsible to maintain their own mapping Austria would be responsible for maintaining their own mapping
information. Since the amount of data being exchanged is small and information. Since the amount of data being exchanged is small and
the expected rate of change is low the nodes are configured to always the expected rate of change is low, the nodes are configured to
exchange all their mapping information whenever a change happens. always exchange all their mapping information whenever a change
happens.
This document defines two types of exchanges and those are best This document defines two types of exchanges, which are best
described by the exchange between two nodes as shown in Figure 5 and described by the exchange between two nodes as shown in Figures 5 and
Figure 6. The protocol exchange always runs between a LoST Sync 6. The protocol exchange always runs between a LoST Sync source and
source and a LoST Sync destination. Node A in the examples of a LoST Sync destination. Node A in the examples of Figures 5 and 6
Figure 5 and Figure 6 has mappings that Node B is going to retrieve. has mappings that Node B is going to retrieve. Node A acts as the
Node A acts as the source for the data and Node B is the destination. source for the data and Node B is the destination.
The <getMappingsRequest> request allows a LoST Sync source to request The <getMappingsRequest> request allows a LoST Sync source to request
mappings from a LoST Sync destination. mappings from a LoST Sync destination.
+---------+ +---------+ +---------+ +---------+
| Node B | | Node A | | Node B | | Node A |
| acting | | acting | | acting | | acting |
| as | | as | | as | | as |
| LoST | | LoST | | LoST | | LoST |
| Sync | | Sync | | Sync | | Sync |
skipping to change at page 10, line 41 skipping to change at page 8, line 42
|----------------------------->| |----------------------------->|
| | | |
| <getMappingsResponse> | | <getMappingsResponse> |
|<-----------------------------| |<-----------------------------|
| | | |
| | | |
| | | |
Figure 5: Querying for Mappings with a <getMappingsRequest> Message Figure 5: Querying for Mappings with a <getMappingsRequest> Message
Note that in the exchange illustrated in Figure 5 Node B is issuing Note that in the exchange illustrated in Figure 5, Node B is issuing
the first request and plays the role of the HTTPS client and Node A the first request and plays the role of the HTTPS client, and Node A
plays the role of the HTTPS server. plays the role of the HTTPS server.
The <pushMappingsRequest> exchange allows a LoST Sync source to push In Figure 6, the <pushMappingsRequest> exchange allows a LoST Sync
mappings to LoST Sync destination. In this example we assume that source to push mappings to a LoST Sync destination. In this example,
Node A has been configured maintain state about the mappings it had we assume that Node A has been configured maintain state about the
pushed to Node B. mappings it had pushed to Node B.
No publish/subscribe mechanism is defined in this document that would This document does not define a publish/subscribe mechanism. Such a
allow Node B to tell Node A about what mappings it is interested in mechanism would allow Node B to tell Node A what mappings it is
nor a mechanism for learning to which entities mappings have to be interested in. This document also does not define a mechanism for
pushed. nodes to find out to which other entities mappings have to be pushed.
+---------+ +---------+ +---------+ +---------+
| Node A | | Node B | | Node A | | Node B |
| acting | | acting | | acting | | acting |
| as | | as | | as | | as |
| LoST | | LoST | | LoST | | LoST |
| Sync | | Sync | | Sync | | Sync |
| Source | | Dest. | | Source | | Dest. |
+---------+ +---------+ +---------+ +---------+
| | | |
skipping to change at page 11, line 30 skipping to change at page 9, line 33
| | | |
| <pushMappingsResponse> | | <pushMappingsResponse> |
|<-----------------------------| |<-----------------------------|
| | | |
| | | |
| | | |
Figure 6: Pushing Mappings with a <pushMappingsRequest> Message Figure 6: Pushing Mappings with a <pushMappingsRequest> Message
Node A issuing the first request in Figure 6 plays the role of the Node A issuing the first request in Figure 6 plays the role of the
HTTPS client and Node B plays the role of the HTTPS server. HTTPS client, and Node B plays the role of the HTTPS server.
4. Querying for Mappings with a <getMappingsRequest> / 4. Querying for Mappings with a <getMappingsRequest>/
<getMappingsResponse> Exchange <getMappingsResponse> Exchange
4.1. Behavior of the LoST Sync Destination 4.1. Behavior of the LoST Sync Destination
A LoST Sync destination has two ways to retrieve mapping elements A LoST Sync destination has two ways to retrieve <mapping> elements
from a LoST Sync source. from a LoST Sync source.
1. A mechanisms that is suitable when no mappings are available on 1. When the Lost Sync destination does not have any mappings, it
the LoST Sync destination is to submit an empty submits an empty <getMappingsRequest> message, as shown in
<getMappingsRequest> message, as shown in Figure 7. The intent Figure 7. This indicates that it wishes to retrieve all mappings
by the LoST Sync destination thereby is to retrieve all mappings
from the LoST Sync source. Note that the request does not from the LoST Sync source. Note that the request does not
propagate further to other nodes. propagate further to other nodes.
2. In case a LoST Sync destination node has already obtained 2. In case a LoST Sync destination node has already obtained
mappings in previous exchanges then it may want to check whether mappings in previous exchanges, then it may want to check whether
these mappings have been updated in the meanwhile. The policy these mappings have been updated in the meanwhile. The policy
when to poll for updated mapping information is outside the scope regarding when to poll for updated mapping information is outside
of this document. The <getMappingsRequest> message with one or the scope of this document. The <getMappingsRequest> message
multiple <exists> child element(s) allows to reduce the number of with one or more <exists> child element(s) allows the source to
returned mappings to those that have been updated and also to only return mappings that are missing at the destination or have
those that are missing. been updated.
In response to the <getMappingsRequest> message the LoST Sync After issuing the <getMappingsRequest> message, the LoST Sync
destination waits for the <getMappingsResponse> message. In case of destination waits for the <getMappingsResponse> message. In case of
a successful response the LoST Sync destination stores the received a successful response, the LoST Sync destination stores the received
mappings and determines which mappings to update. mappings and determines which mappings to update.
4.2. Behavior of the LoST Sync Source 4.2. Behavior of the LoST Sync Source
When a LoST Sync source receives an empty <getMappingsRequest> When a LoST Sync source receives an empty <getMappingsRequest>
message then all locally available mappings MUST be returned. message, then all locally available mappings MUST be returned.
When a LoST Sync source receives a <getMappingsRequest> message with When a LoST Sync source receives a <getMappingsRequest> message with
one or multiple <exists> child element(s) then it MUST consult with one or more <exists> child element(s), then it MUST consult with the
the local mapping database to determine whether any of the mappings local mapping database to determine whether any of the mappings of
of the client is stale and whether there are mappings locally that the client is stale and whether there are mappings locally that the
the client does not yet have. The former can be determined by client does not yet have. The former can be determined by finding
finding mappings corresponding to the 'source' and 'sourceID' mappings corresponding to the 'source' and 'sourceID' attributes
attribut where a mapping with a more recent lastUpdated date exists. where a mapping with a more recent 'lastUpdated' date exists.
Processing a <getMappingsRequest> message MAY lead to a successful Processing a <getMappingsRequest> message MAY lead to a successful
response in the form of a <getMappingsResponse> or an <errors> response in the form of a <getMappingsResponse> or an <errors>
message. Only the <badRequest>, <forbidden>, <internalError>, message. Only the <badRequest>, <forbidden>, <internalError>, and
<serverTimeout> errors, defined in [RFC5222], are utilized by this <serverTimeout> errors, defined in [RFC5222], are used by this
specification. Neither the <redirect> nor the <warnings> messages specification. Neither the <redirect> nor the <warnings> messages
are reused by this message. are reused by this message.
4.3. Examples 4.3. Examples
The first example shows an empty <getMappingsRequest> message that The first example shows an empty <getMappingsRequest> message that
would retrieve all locally stored mappings at the LoST Sync source. would retrieve all locally stored mappings at the LoST Sync source.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"/> <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"/>
Figure 7: Example of empty <getMappingsRequest> message Figure 7: Example of Empty <getMappingsRequest> Message
A further example request is shown in Figure 8 and the corresponding A further example request is shown in Figure 8, and the corresponding
response is depicted in Figure 9. In this example the response is depicted in Figure 9. In this example, the
<getMappingsRequest> element contains information about the mapping <getMappingsRequest> element contains information about the mapping
that is locally available to the client inside the <mapping- that is locally available to the client inside the
fingerprint> element (with source="authoritative.bar.example", <mapping-fingerprint> element (with
source="authoritative.bar.example",
sourceId="7e3f40b098c711dbb6060800200c9a66", and lastUpdated="2006- sourceId="7e3f40b098c711dbb6060800200c9a66", and lastUpdated="2006-
11-01T01:00:00Z"). The query asks for mappings that are more recent 11-01T01:00:00Z"). The query asks for mappings that are more recent
than the available one as well as any missing mapping. than the available one as well as any missing mapping.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"> <getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1">
<exists> <exists>
<mapping-fingerprint source="authoritative.bar.example" <mapping-fingerprint source="authoritative.bar.example"
sourceId="7e3f40b098c711dbb6060800200c9a66" sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2006-11-01T01:00:00Z"> lastUpdated="2006-11-01T01:00:00Z">
</mapping-fingerprint> </mapping-fingerprint>
</exists> </exists>
</getMappingsRequest> </getMappingsRequest>
Figure 8: Example <getMappingsRequest> Message Figure 8: Example <getMappingsRequest> Message
The response to the above request is shown in Figure 9. A more The response to the above request is shown in Figure 9. A more
recent mapping was available with the identification of recent mapping was available with the identification of
source="authoritative.bar.example" and source="authoritative.bar.example" and
sourceId="7e3f40b098c711dbb6060800200c9a66". Only one mapping that sourceId="7e3f40b098c711dbb6060800200c9a66". Only one missing
matched source="authoritative.foo.example" was found and returned. mapping, with source "authoritative.foo.example", was found and
returned.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<sync:getMappingsResponse <sync:getMappingsResponse
xmlns:sync="urn:ietf:params:xml:ns:lostsync1" xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
xmlns="urn:ietf:params:xml:ns:lost1" xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:gml="http://www.opengis.net/gml"> xmlns:gml="http://www.opengis.net/gml">
<mapping source="authoritative.bar.example" <mapping source="authoritative.bar.example"
sourceId="7e3f40b098c711dbb6060800200c9a66" sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2008-11-26T01:00:00Z" lastUpdated="2008-11-26T01:00:00Z"
expires="2009-12-26T01:00:00Z"> expires="2009-12-26T01:00:00Z">
<displayName xml:lang="en">Leonia Police Department <displayName xml:lang="en">Leonia Police Department
</displayName> </displayName>
<service>urn:service:sos.police</service> <service>urn:service:sos.police</service>
<serviceBoundary <serviceBoundary
profile="urn:ietf:params:lost:location-profile:basic-civic"> profile="urn:ietf:params:lost:location-profile:basic-civic">
<civicAddress <civicAddress
xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
<country>US</country> <country>US</country>
<A1>NJ</A1> <A1>NJ</A1>
<A3>Leonia</A3> <A3>Leonia</A3>
<PC>07605</PC> <PC>07605</PC>
</civicAddress> </civicAddress>
</serviceBoundary> </serviceBoundary>
<uri>sip:police@leonianj2.example.org</uri> <uri>sip:police@leonianj2.example.org</uri>
<serviceNumber>911</serviceNumber> <serviceNumber>911</serviceNumber>
</mapping> </mapping>
skipping to change at page 14, line 48 skipping to change at page 12, line 33
<gml:pos>37.775 -122.4194</gml:pos> <gml:pos>37.775 -122.4194</gml:pos>
</gml:LinearRing> </gml:LinearRing>
</gml:exterior> </gml:exterior>
</gml:Polygon> </gml:Polygon>
</serviceBoundary> </serviceBoundary>
<uri>sip:nypd@example.com</uri> <uri>sip:nypd@example.com</uri>
<uri>xmpp:nypd@example.com</uri> <uri>xmpp:nypd@example.com</uri>
<serviceNumber>911</serviceNumber> <serviceNumber>911</serviceNumber>
</mapping> </mapping>
</sync:getMappingsResponse> </sync:getMappingsResponse>
Figure 9: Example <getMappingsResponse> Message Figure 9: Example <getMappingsResponse> Message
5. Pushing Mappings via <pushMappings> and <pushMappingsResponse> 5. Pushing Mappings via <pushMappings> and <pushMappingsResponse>
5.1. Behavior of the LoST Sync Source 5.1. Behavior of the LoST Sync Source
When a LoST Sync source obtains new information that is of interest When a LoST Sync source obtains new information that is of interest
to its peers, it may push the new mappings to its peers. to its peers, it may push the new mappings to its peers.
Configuration settings at both peers decide whether this Configuration settings at both peers decide whether this
functionality is used and what mappings are pushed to which other functionality is used and what mappings are pushed to which other
peers. New mappings may arrive through various means, such as a peers. New mappings may arrive through various means, such as a
manual addition to the local mapping database, or through the manual addition to the local mapping database, or through the
interaction with other entities. Deleting mappings may also trigger interaction with other entities. Deleting mappings may also trigger
a protocol interaction. a protocol interaction.
The LoST Sync source SHOULD keep track of which LoST Sync destination The LoST Sync source SHOULD keep track of which LoST Sync destination
it has pushed mapping elements. If it does not keep state it has pushed <mapping> elements to. If it does not keep state
information then it always has to push the complete data set. As information, then it always has to push the complete data set. As
discussed in Section 5.1 of [RFC5222], mapping elements are discussed in Section 5.1 of [RFC5222], <mapping> elements are
identified by the 'source', 'sourceID' and 'lastUpdated' attributes. identified by the 'source', 'sourceID', and 'lastUpdated' attributes.
A mapping is considered the same if these three attributes match. A mapping is considered the same if these three attributes match.
A <pushMappings> request sent by a LoST Sync source MUST containing A <pushMappings> request sent by a LoST Sync source MUST contain one
one or more <mapping> elements. or more <mapping> elements.
To delete a mapping, the content of the mapping is left empty, i.e. To delete a mapping, the content of the mapping is left empty, i.e.,
the <mapping> element only contains the 'source', 'sourceID', the <mapping> element only contains the 'source', 'sourceID',
'lastUpdated', and 'expires" attribute. Figure 10 shows an example 'lastUpdated', and 'expires' attributes. Figure 10 shows an example
request where the mapping with the source="nj.us.example", request where the mapping with the source="nj.us.example",
sourceId="123", lastUpdated="2008-11-01T01:00:00Z", expires="2008-11- sourceId="123", lastUpdated="2008-11-01T01:00:00Z", and
01T01:00:00Z" is requested to be deleted. Note that the 'expires' expires="2008-11-01T01:00:00Z" is requested to be deleted. Note that
attribute is required per schema definition but will be ignored in the 'expires' attribute is required per the schema definition but
processing the request on the receiving side. A sync source may want will be ignored in processing the request on the receiving side. A
to delete the mapping from its internal mapping database, but has to sync source may want to delete the mapping from its internal mapping
remember which peers it has distributed this update to unless it has database but has to remember the peers to which it has distributed
other ways to ensure that databases do not get out of sync. this update unless it has other ways to ensure that databases do not
get out of sync.
5.2. Behavior of the LoST Sync Destination 5.2. Behavior of the LoST Sync Destination
When a LoST Sync destination receives a <pushMappingsRequest> message When a LoST Sync destination receives a <pushMappingsRequest>
then the cache with the existing mappings is inspected to determine message, then the cache with the existing mappings is inspected to
whether the received mapping should lead to an update of an already determine whether the received mapping should lead to an update of an
existing mapping, should create a new mapping in the cache, or should already existing mapping, should create a new mapping in the cache,
be discarded. or should be discarded.
If a newly received mapping has a more recent time in its If a newly received mapping has a more recent time in its
'lastUpdated' attribute, it MUST update an existing mapping that has 'lastUpdated' attribute, it MUST update an existing mapping that has
matching 'source' and 'sourceID' attributes. matching 'source' and 'sourceID' attributes.
If the received mapping does not match with any existing mapping If the received mapping does not match with any existing mapping
based on the 'source' and 'sourceId' then it MUST be added to the based on the 'source' and 'sourceId', then it MUST be added to the
local cache as an independent mapping. local cache as an independent mapping.
If a <pushMappingsRequest> message with an empty <mapping> element is If a <pushMappingsRequest> message with an empty <mapping> element is
received then a corresponding mapping has to be determined based on received, then a corresponding mapping has to be determined based on
the 'source', and the 'sourceID'. the 'source' and the 'sourceID'.
If no mapping can be identified then an <errors> response MUST be If no mapping can be identified, then an <errors> response MUST be
returned that contains the <notDeleted> child element. The returned that contains the <notDeleted> child element. The
<notDeleted> element MAY contain a 'message' attribute with an error <notDeleted> element MAY contain a 'message' attribute with an error
description used for debugging purposes. The <notDeleted> element description used for debugging purposes. The <notDeleted> element
MUST contain the <mapping> element(s) that caused the error. MUST contain the <mapping> element(s) that caused the error.
The response to a <pushMappingsRequest> request is a The response to a <pushMappingsRequest> request is a
<pushMappingsResponse> message. With this specification, a <pushMappingsResponse> message. With this specification, a
successful response message returns no additional elements, whereas successful response message returns no additional elements, whereas
an <errors> response is returned in the response message, if the an <errors> response is returned in the response message if the
request failed. Only the <badRequest>, <forbidden>, <internalError> request failed. Only the <badRequest>, <forbidden>, <internalError>,
or <serverTimeout> errors defined in Section 13.1 of [RFC5222], are or <serverTimeout> errors defined in Section 13.1 of [RFC5222] are
used. The <redirect> and <warnings> messages are not used for this used. The <redirect> and <warnings> messages are not used for this
query/response. query/response.
If the set of nodes that are synchronizing their data does not form a If the set of nodes that are synchronizing their data does not form a
tree, it is possible that the same information arrives through tree, it is possible that the same information arrives through
several other nodes. This is unavoidable, but generally only imposes several other nodes. This is unavoidable but generally only imposes
a modest overhead. (It would be possible to create a spanning tree 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 in the same fashion as IP multicast, but the complexity does not seem
warranted, given the relatively low volume of data.) warranted, given the relatively low volume of data.)
5.3. Example 5.3. Example
An example is shown in Figure 10. Imagine a LoST node that obtained An example is shown in Figure 10. Imagine a LoST node that obtained
two new mappings identified as follows: two new mappings identified as follows:
o o source="authoritative.example"
sourceId="7e3f40b098c711dbb6060800200c9a66"
source="authoritative.example" lastUpdated="2008-11-26T01:00:00Z"
sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2008-11-26T01:00:00Z"
o
source="authoritative.example" o source="authoritative.example"
sourceId="7e3f40b098c711dbb606011111111111" sourceId="7e3f40b098c711dbb606011111111111"
lastUpdated="2008-11-01T01:00:00Z" lastUpdated="2008-11-01T01:00:00Z"
These two mappings have to be added to the peer's mapping database. These two mappings have to be added to the peer's mapping database.
Additionally, the following mapping has to be deleted: Additionally, the following mapping has to be deleted:
o source="nj.us.example" sourceId="123" lastUpdated="2008-11- o source="nj.us.example"
01T01:00:00Z" sourceId="123"
lastUpdated="2008-11-01T01:00:00Z"
<?xml version="1.0" encoding="UTF-8"?>
<sync:pushMappings
xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:gml="http://www.opengis.net/gml">
<?xml version="1.0" encoding="UTF-8"?>
<sync:pushMappings
xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:gml="http://www.opengis.net/gml">
<mapping source="authoritative.example" <mapping source="authoritative.example"
sourceId="7e3f40b098c711dbb6060800200c9a66" sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2008-11-26T01:00:00Z" lastUpdated="2008-11-26T01:00:00Z"
expires="2009-12-26T01:00:00Z"> expires="2009-12-26T01:00:00Z">
<displayName xml:lang="en">Leonia Police Department <displayName xml:lang="en">Leonia Police Department
</displayName> </displayName>
<service>urn:service:sos.police</service> <service>urn:service:sos.police</service>
<serviceBoundary <serviceBoundary
profile="urn:ietf:params:lost:location-profile:basic-civic"> profile="urn:ietf:params:lost:location-profile:basic-civic">
<civicAddress <civicAddress
skipping to change at page 18, line 13 skipping to change at page 16, line 4
<gml:pos>37.775 -122.4264</gml:pos> <gml:pos>37.775 -122.4264</gml:pos>
<gml:pos>37.775 -122.4194</gml:pos> <gml:pos>37.775 -122.4194</gml:pos>
</gml:LinearRing> </gml:LinearRing>
</gml:exterior> </gml:exterior>
</gml:Polygon> </gml:Polygon>
</serviceBoundary> </serviceBoundary>
<uri>sip:nypd@example.com</uri> <uri>sip:nypd@example.com</uri>
<uri>xmpp:nypd@example.com</uri> <uri>xmpp:nypd@example.com</uri>
<serviceNumber>911</serviceNumber> <serviceNumber>911</serviceNumber>
</mapping> </mapping>
<mapping source="nj.us.example" <mapping source="nj.us.example"
sourceId="123" sourceId="123"
lastUpdated="2008-11-01T01:00:00Z" lastUpdated="2008-11-01T01:00:00Z"
expires="2008-11-01T01:00:00Z"/> expires="2008-11-01T01:00:00Z"/>
</sync:pushMappings> </sync:pushMappings>
Figure 10: Example <pushMappingsRequest> Message Figure 10: Example <pushMappingsRequest> Message
In response, the peer performs the necessary operation and updates In response, the peer performs the necessary operations and updates
its mapping database. In particular, it will check whether the other its mapping database. In particular, it will check whether the other
peer is authorized to perform the update and whether the elements and peer is authorized to perform the update and whether the elements and
attributes contain values that it understands. In our example, a attributes contain values that it understands. In our example, a
positive response is returned as shown in Figure 11. positive response is returned as shown in Figure 11.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<pushMappingsResponse xmlns="urn:ietf:params:xml:ns:lostsync1" /> <pushMappingsResponse xmlns="urn:ietf:params:xml:ns:lostsync1" />
Figure 11: Example <pushMappingsResponse> Figure 11: Example <pushMappingsResponse>
In case that a mapping could not be deleted as requested the In case a mapping could not be deleted as requested, the following
following error response might be returned instead. error response might be returned instead.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<errors xmlns="urn:ietf:params:xml:ns:lost1" <errors xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:sync="urn:ietf:params:xml:ns:lostsync1" xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
source="nodeA.example.com"> source="nodeA.example.com">
<sync:notDeleted <sync:notDeleted
message="Could not delete the indicated mapping." message="Could not delete the indicated mapping."
xml:lang="en"> xml:lang="en">
skipping to change at page 20, line 11 skipping to change at page 17, line 5
</errors> </errors>
Figure 12: Example <errors> Message Figure 12: Example <errors> Message
6. Transport 6. Transport
LoST Sync needs an underlying protocol transport mechanism to carry LoST Sync needs an underlying protocol transport mechanism to carry
requests and responses. This document uses HTTPS as a transport to requests and responses. This document uses HTTPS as a transport to
exchange XML documents. No fallback to HTTP is provided. exchange XML documents. No fallback to HTTP is provided.
When using HTTP-over-TLS [RFC2818], LoST Sync messages use the POST When using HTTP over Transport Layer Security (TLS) [RFC2818], LoST
method. Request MUST use the Cache-Control response directive "no- Sync messages use the POST method. Requests MUST use the Cache-
cache". Control response directive "no-cache".
All LoST Sync responses, including those indicating a LoST warning or All LoST Sync responses, including those indicating a LoST warning or
error, are carried in 2xx responses, typically 200 (OK). 3xx, 4xx and error, are carried in 2xx responses, typically 200 (OK). 3xx, 4xx,
5xx HTTP response codes indicates that the request itself failed or and 5xx HTTP response codes indicate that the request itself failed
was redirected; these responses do not contain any LoST Sync XML or was redirected; these responses do not contain any LoST Sync XML
elements. elements.
7. RelaxNG 7. RELAX NG
Note: In order to avoid copying pattern definitions from the LoST Note: In order to avoid copying pattern definitions from the LoST
Relax NG schema [RFC5222] to this document we include it as Regular Language for XML Next Generation (RELAX NG) schema [RFC5222]
"lost.rng" (XML syntax) in the Relax NG schema below. to this document, we include it as "lost.rng" (XML syntax) in the
RELAX NG schema below.
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<grammar ns="urn:ietf:params:xml:ns:lostsync1" <grammar ns="urn:ietf:params:xml:ns:lostsync1"
xmlns="http://relaxng.org/ns/structure/1.0" xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<include href="lost.rng"/> <include href="lost.rng"/>
skipping to change at page 23, line 7 skipping to change at page 19, line 15
<ref name="basicException"/> <ref name="basicException"/>
<oneOrMore> <oneOrMore>
<ref name="mapping"/> <ref name="mapping"/>
</oneOrMore> </oneOrMore>
</element> </element>
</define> </define>
</grammar> </grammar>
8. Operational Considerations 8. Operational Considerations
When different LoST servers use the mechanism described in this It is important to avoid loops when more than two LoST servers use
document to synchronize their mapping data then it is important to the mechanism described in this document. The example shown in
ensure that loops are avoided. The example shown in Figure 13 with Figure 13 with three LoST servers A, B, and C (each of them acts as a
three LoST servers A, B and C (each of them acts as a sync source and sync source and a sync destination) illustrates the challenge in more
a sync destination) illustrates the challenge in more detail. A and detail. A and B synchronize data between each other; the same is
B synchronize data between each other; the same is true for A and C, true for A and C, and B and C, respectively.
and B and C, respectively.
A -------- B A -------- B
\ / \ /
\ / \ /
\ / \ /
\ / \ /
C C
Figure 13: Synchronization Configuration Example Figure 13: Synchronization Configuration Example
Now, imagine that server A adds a new mapping. This mapping is Now, imagine that server A adds a new mapping. This mapping is
uniquely identified by the combination of "source", "sourceid" and uniquely identified by the combination of "source", "sourceid", and
"last updated". Assume that A would push this new mapping to B and "last updated". Assume that A wants to push this new mapping to B
C. When B obtained this new mapping it would find out that it has to and C. When B obtains this new mapping, it determines that it has to
distribute it to its peer C. C would also want to distribute the distribute it to its peer C. C also needs to distribute the mapping
mapping to B. If the original mapping with the "source", "sourceid" to its peer B. If the original mapping with the "source",
and "last updated" is not modified by either B or C then these two "sourceid", and "last updated" is not modified by either B or C, then
servers would recognize that they already possess the mapping and can these two servers would recognize that they already possess the
ignore the update. mapping and can ignore the update.
It is important that implementations MUST NOT modify mappings they Implementations MUST NOT modify mappings they receive. An entity
receive. An entity acting maliciously would, however, intentially acting maliciously would, however, intentionally modify mappings or
modify mappings or inject bogus mappings. To avoid the possibility inject bogus mappings. To avoid the possibility of an untrustworthy
of an untrustworthy member claiming a coverage region that it is not member claiming a coverage region for which it is not authorized,
authorized for, authoritative mapping server MUST sign mappings they authoritative mapping servers MUST sign mappings they distribute
distribute using an XML digital signature using an XML digital signature [W3C.REC-xmldsig-core-20020212]. A
[W3C.REC-xmldsig-core-20020212]. A recipient MUST verify that the recipient MUST verify that the signing entity is indeed authorized to
signing entity is indeed authorized to speak for that region. In speak for that region. In many cases, this will require an out-of-
many cases, this will require an out-of-band agreement to be in place band agreement to be in place to agree on specific entities to take
to agree on specific entities to take on this role. Determining who on this role. Determining who can speak for a particular region is
can speak for a particular region is inherently difficult unless inherently difficult unless there is a small set of authorizing
there is a small set of authorizing entities that participants in the entities that participants in the mapping architecture can trust.
mapping architecture can trust. Receiving systems should be Receiving systems should be particularly suspicious if an existing
particularly suspicious if an existing coverage region is replaced by coverage region is replaced by a new one that contains a different
a new one that contains a different value in the <uri> element. When value in the <uri> element. When mappings are digitally signed, they
mappings are digitially signed, they cannot be modified by cannot be modified by intermediate LoST servers.
intermediate LoST servers.
9. Security Considerations 9. Security Considerations
This document defines a protocol for exchange of authoritative This document defines a protocol for exchange of authoritative
mapping information between two entities. Hence, the protocol mapping information between two entities. Hence, the protocol
operations described in this document require authentication of operations described in this document require authentication of
neighboring nodes. neighboring nodes.
The LoST Sync client and servers MUST implement TLS and use TLS. The LoST Sync client and servers MUST implement TLS and use TLS.
Which version(s) ought to be implemented will vary over time, and Which version(s) ought to be implemented will vary over time and
depend on the widespread deployment and known security depend on the widespread deployment and known security
vulnerabilities at the time of implementation. At the time of this vulnerabilities at the time of implementation. At the time of this
writing, TLS version 1.2 [RFC5246] is the most recent version, but writing, TLS version 1.2 [RFC5246] is the most recent version but has
has very limited actual deployment, and might not be readily very limited actual deployment and might not be readily available in
available in implementation toolkits. TLS version 1.0 [RFC2246] is implementation tool kits. TLS version 1.0 [RFC2246] is the most
the most widely deployed version, and will give the broadest widely deployed version and will give the broadest interoperability.
interoperability.
Mutual authentication between the LoST Sync source and the LoST Sync Mutual authentication between the LoST Sync source and the LoST Sync
destination is not necessarily required in all deployments unless an destination is not necessarily required in all deployments unless an
emergency service authority wants to enforce access control prior to emergency service authority wants to enforce access control prior to
the distribution of their mapping elements. This may, for example, the distribution of their <mapping> elements. This may, for example,
be the case when certain emergency services network internal mappings be the case when certain emergency services networks distribute
are not meant for public distribution. internal mappings that are not meant for public distribution.
An additional threat is caused by compromised or misconfigured LoST An additional threat is caused by compromised or misconfigured LoST
servers. A denial of service could be the consequence of an injected servers. A denial of service could be the consequence of an injected
mapping. If the mapping data contains an URL that does not exist mapping. If the mapping data contains a URL that does not exist,
then emergency services for the indicated area are not reachable. If then emergency services for the indicated area are not reachable. If
all mapping data contains URLs that point to a single PSAP (rather all mapping data contains URLs that point to a single PSAP (rather
than a large number of PSAPs) then this PSAP is likely to experience than a large number of PSAPs), then this PSAP is likely to experience
overload conditions. If the mapping data contains a URL that points overload conditions. If the mapping data contains a URL that points
to a server controlled by the adversary itself then it might to a server controlled by the adversary itself, then it might
impersonate PSAPs. impersonate PSAPs.
Section 8 discusses this security threat and mandates signed Section 8 discusses this security threat and mandates signed
mappings. For unusal changes to the mapping database approval by a mappings. For unusual changes to the mapping database, approval by a
system administrator of the emergency services infrastructure (or a system administrator of the emergency services infrastructure (or a
similar expert) may be required before any mappings are installed. similar expert) may be required before any mappings are installed.
10. IANA Considerations 10. IANA Considerations
10.1. Media Type Registration 10.1. Media Type Registration
This specification requests the registration of a new media type This specification requests the registration of a new media type
according to the procedures of RFC 4288 [RFC4288] and guidelines in according to the procedures of RFC 4288 [RFC4288] and guidelines in
RFC 3023 [RFC3023]. RFC 3023 [RFC3023].
skipping to change at page 25, line 28 skipping to change at page 21, line 28
Optional parameters: charset Optional parameters: charset
Same as charset parameter of application/xml as specified in RFC Same as charset parameter of application/xml as specified in RFC
3023 [RFC3023]. 3023 [RFC3023].
Encoding considerations: Identical to those of "application/xml" as Encoding considerations: Identical to those of "application/xml" as
described in [RFC3023], Section 3.2. described in [RFC3023], Section 3.2.
Security considerations: This content type is designed to carry LoST Security considerations: This content type is designed to carry LoST
Synchronization protocol payloads and the security considerations Synchronization protocol payloads, and the security considerations
section of RFCXXXX is applicable. In addition, as this media type section of RFC 6739 is applicable. In addition, as this media
uses the "+xml" convention, it shares the same security type uses the "+xml" convention, it shares the same security
considerations as described in [RFC3023], Section 10. [NOTE TO considerations as described in [RFC3023], Section 10.
IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this
specification.]
Interoperability considerations: None Interoperability considerations: None
Published specification: RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please Published specification: RFC 6739
replace XXXX with the RFC number of this specification.]
Applications which use this media type: Emergency and Location-based Applications that use this media type: Emergency and Location-based
Systems Systems
Additional information: Additional information:
Magic number(s): None Magic number(s): None
File extension(s): .lostsyncxml File extension(s): .lostsyncxml
Macintosh file type code(s): 'TEXT' Macintosh file type code(s): 'TEXT'
Person & email address to contact for further information: Hannes Person & email address to contact for further information:
Tschofenig <Hannes.Tschofenig@gmx.net> Hannes Tschofenig <Hannes.Tschofenig@gmx.net>
Intended usage: LIMITED USE Intended usage: LIMITED USE
Restrictions on usage: None Restrictions on usage: None
Author: Hannes Tschofenig <Hannes.Tschofenig@gmx.net> Author: Hannes Tschofenig <Hannes.Tschofenig@gmx.net>
Change controller: Change controller:
This specification is a work item of the IETF ECRIT working group, This specification is a work item of the IETF ECRIT working group,
with mailing list address <ecrit@ietf.org>. with mailing list address <ecrit@ietf.org>.
Change controller: Change controller:
skipping to change at page 26, line 31 skipping to change at page 22, line 17
Change controller: Change controller:
This specification is a work item of the IETF ECRIT working group, This specification is a work item of the IETF ECRIT working group,
with mailing list address <ecrit@ietf.org>. with mailing list address <ecrit@ietf.org>.
Change controller: Change controller:
The IESG <iesg@ietf.org> The IESG <iesg@ietf.org>
10.2. LoST Sync Relax NG Schema Registration 10.2. LoST Sync RELAX NG Schema Registration
Please register the schema defined in this document under the XML The schema defined in this document has been registered under the XML
schema registry at schema registry at
http://www.iana.org/assignments/xml-registry/schema.html http://www.iana.org/assignments/xml-registry/schema.html
URI: urn:ietf:params:xml:schema:lostsync1 URI: urn:ietf:params:xml:schema:lostsync1
Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig
(Hannes.Tschofenig@gmx.net). (Hannes.Tschofenig@gmx.net).
Relax NG Schema: The Relax NG schema to be registered is contained RELAX NG Schema: The RELAX NG schema that has been registered is
in Section 7. contained in Section 7.
10.3. LoST Synchronization Namespace Registration 10.3. LoST Synchronization Namespace Registration
Please register the namespace defined in this document under the XML The namespace defined in this document has been registered under the
namespace registry at XML namespace registry at
http://www.iana.org/assignments/xml-registry/ns.html http://www.iana.org/assignments/xml-registry/ns.html
URI: urn:ietf:params:xml:ns:lostsync1 URI: urn:ietf:params:xml:ns:lostsync1
Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig
(Hannes.Tschofenig@gmx.net). (Hannes.Tschofenig@gmx.net).
XML: XML:
BEGIN BEGIN
skipping to change at page 27, line 34 skipping to change at page 23, line 20
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head> <head>
<meta http-equiv="content-type" <meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/> content="text/html;charset=iso-8859-1"/>
<title>LoST Synchronization Namespace</title> <title>LoST Synchronization Namespace</title>
</head> </head>
<body> <body>
<h1>Namespace for LoST server synchronization</h1> <h1>Namespace for LoST server synchronization</h1>
<h2>urn:ietf:params:xml:ns:lostsync1</h2> <h2>urn:ietf:params:xml:ns:lostsync1</h2>
<p>See <a href="[URL of published RFC]">RFCXXXX <p>See <a href="[URL of published RFC]">RFC 6739
[NOTE TO IANA/RFC-EDITOR: </a>.</p>
Please replace XXXX with the RFC number of this
specification.]</a>.</p>
</body> </body>
</html> </html>
END END
11. Acknowledgments 11. Acknowledgments
Robins George, Cullen Jennings, Karl Heinz Wolf, Richard Barnes, Robins George, Cullen Jennings, Karl Heinz Wolf, Richard Barnes,
Mayutan Arumaithurai, Alexander Mayrhofer, and Andrew Newton provided Mayutan Arumaithurai, Alexander Mayrhofer, and Andrew Newton provided
helpful input. Jari Urpalainen assisted with the Relax NG schema. helpful input. Jari Urpalainen assisted with the RELAX NG schema.
We would also like to thank our document shepherd Roger Marshall for We would also like to thank our document shepherd Roger Marshall for
his help with the document. his help with the document.
We would like to particularly thank Andrew Newton for his timely and We would like to particularly thank Andrew Newton for his timely and
valuable review of the XML-related content. valuable review of the XML-related content.
We would like to thank Robert Sparks, Barry Leiba, Stephen Farrell, We would like to thank Robert Sparks, Barry Leiba, Stephen Farrell,
Brian Haberman, Pete Resnick, and Sean Turner for their AD reviews. Brian Haberman, Pete Resnick, and Sean Turner for their AD reviews.
We would also like to thank Bjoern Hoehrmann for his media type We would also like to thank Bjoern Hoehrmann for his media type
review, Julian Reschke and Martin Duerst for their applications area review, Julian Reschke and Martin Duerst for their applications area
skipping to change at page 29, line 15 skipping to change at page 24, line 15
12. References 12. References
12.1. Normative References 12.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
RFC 2246, January 1999. RFC 2246, January 1999.
[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. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3023, January 2001. Types", RFC 3023, January 2001.
[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", BCP 13, RFC 4288, December 2005. Registration Procedures", BCP 13, RFC 4288, December 2005.
[RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. [RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H.
Tschofenig, "LoST: A Location-to-Service Translation Tschofenig, "LoST: A Location-to-Service Translation
Protocol", RFC 5222, August 2008. Protocol", RFC 5222, August 2008.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, August 2008. (TLS) Protocol Version 1.2", RFC 5246, August 2008.
[W3C.REC-xmldsig-core-20020212] [W3C.REC-xmldsig-core-20020212]
Eastlake, D., Reagle, J., Solo, D., Hirsch, F., and T. Eastlake, D., Reagle, J., Solo, D., Hirsch, F., and T.
Roessler, "XML-Signature Syntax and Processing", World Roessler, "XML-Signature Syntax and Processing", World
Wide Web Consortium Second Edition REC-xmldsig-core- Wide Web Consortium, Second Edition, REC-xmldsig-core-
20020212, June 2008. 20020212, June 2008.
12.2. Informative References 12.2. Informative References
[RFC5012] Schulzrinne, H. and R. Marshall, "Requirements for
Emergency Context Resolution with Internet Technologies",
RFC 5012, January 2008.
[RFC5582] Schulzrinne, H., "Location-to-URL Mapping Architecture and [RFC5582] Schulzrinne, H., "Location-to-URL Mapping Architecture and
Framework", RFC 5582, September 2009. Framework", RFC 5582, September 2009.
Authors' Addresses Authors' Addresses
Henning Schulzrinne Henning Schulzrinne
Columbia University Columbia University
Department of Computer Science Department of Computer Science
450 Computer Science Building 450 Computer Science Building
New York, NY 10027 New York, NY 10027
US USA
Phone: +1 212 939 7004 Phone: +1 212 939 7004
Email: hgs+ecrit@cs.columbia.edu EMail: hgs+ecrit@cs.columbia.edu
URI: http://www.cs.columbia.edu URI: http://www.cs.columbia.edu
Hannes Tschofenig Hannes Tschofenig
Nokia Siemens Networks Nokia Siemens Networks
Linnoitustie 6 Linnoitustie 6
Espoo 02600 Espoo 02600
Finland Finland
Phone: +358 (50) 4871445 Phone: +358 (50) 4871445
Email: Hannes.Tschofenig@gmx.net EMail: Hannes.Tschofenig@gmx.net
URI: http://www.tschofenig.priv.at URI: http://www.tschofenig.priv.at
 End of changes. 107 change blocks. 
341 lines changed or deleted 328 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/