ECRIT H. Schulzrinne
Internet-Draft Columbia University
Intended status: Experimental H. Tschofenig
Expires: February 7, 2010 Nokia Siemens Networks
August 6, 2009
Synchronizing Location-to-Service Translation (LoST) Protocol basedService Boundaries and Mapping Elementsdraft-ietf-ecrit-lost-sync-06.txt
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on February 7, 2010.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 1]

Internet-Draft LoST Sync August 2009
Abstract
The Location-to-Service Translation (LoST) protocol is an XML-based
protocol for mapping service identifiers and geodetic or civic
location information to service URIs and service boundaries. In
particular, it can be used to determine the location-appropriate
Public Safety Answering Point (PSAP) for emergency services.
The main data structure, the <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 Uniform Resource Identifier
(URI) or set of URIs for a given service.
This document defines an XML protocol to exchange these mappings
between two nodes. This mechanism can be used for bulk exchange of
<mapping> elements between two entities. As such, this document can
also be used without the LoST protocol.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 2]

Internet-Draft LoST Sync August 20091. Introduction
The LoST (Location-to-Service Translation) protocol [RFC5222] maps
service identifiers and geodetic or civic location information to
service URIs. The main data structure, the <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 Uniform Resource
Identifier (URI) or set of URIs for a given service.
This document enables a bulk exchange of <mapping> elements between
two entities (the LoST Sync client and the LoST Sync server).
The LoST Sync mechanism can, for example, be used in the LoST
architecture, as specified in the [I-D.ietf-ecrit-mapping-arch].
There, 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.
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.
This document defines two types of exchanges and those are best
described by the exchange between two nodes as shown in Figure 1 and
Figure 2. The protocol exchange always runs between a LoST Sync
client and a LoST Sync server even through the roles are reversed for
the two available exchanges and logically the two nodes might often
be peers rather than in a client-server relationship. Node A in the
example of Figure 1 and Figure 2 has mappings that Node B is going to
retrieve.
The <getMappingsRequest> and <getMappingsResponse> exchange allows a
LoST Sync client to request mappings from a LoST Sync server.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 4]

Internet-Draft LoST Sync August 2009
+---------+ +---------+
| Node B | | Node A |
| acting | | acting |
| as | | as |
| LoST | | LoST |
| Sync | | Sync |
| Client | | Server |
+---------+ +---------+
| |
| |
| |
| <getMappingsRequest> |
|----------------------------->|
| |
| <getMappingsResponse> |
|<-----------------------------|
| |
| |
| |
Figure 1: Querying for Mappings with a <getMappingsRequest> Message
The <pushMappingsRequest> and <pushMappingsResponse> exchange allows
a LoST Sync client to push mappings to LoST Sync server. The
assumption is being made that Node A and B have previously been
configured in a way that they push mappings in such a fashion and
that Node A maintains state about the mappings that have to be pushed
to Node B. No subscribe mechanism is defined in this document that
would allow Node B to tell Node A about what mappings it is
interested.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 5]

Internet-Draft LoST Sync August 20092. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
This document reuses terminology introduced by the mapping
architecture document [I-D.ietf-ecrit-mapping-arch].
Throughout this document we use the term LoST Sync client and LoST
Sync server to denote the protocol end points of the exchange. The
protocol is referred as LoST Sync within the text.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 7]

Internet-Draft LoST Sync August 20093. Querying for Mappings with a <getMappingsRequest> /
<getMappingsResponse> Exchange
3.1. LoST Sync Client's Behavior
A LoST Sync client has two ways to retrieve mapping elements from a
LoST Sync server node.
1. A mechanisms that is suitable when no mappings are available on
the client side is to submit an empty <getMappingsRequest>
message, as shown in Figure 3. The intent by the LoST Sync
client thereby is to retrieve all mappings from the LoST Sync
server. Note that the request does not propagate further to
other nodes.
2. 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) allows to reduce the number of returned mappings to
those that have been updated and also to those that are missing.
In response to the <getMappingsRequest> message the client waits for
the <getMappingsResponse> message. In case of a successful response
the client stores the received mappings and determines which mappings
to replace.
3.2. LoST Sync Server's Behavior
When a LoST Sync server receives an empty <getMappingsRequest>
message then all locally available mappings MUST be returned
(assuming that the client has been properly authenticated and
authorized).
When a LoST Sync server receives a <getMappingsRequest> message with
one or multiple <exists> child element(s) then it MUST consult with
the local mapping database to determine whether any of the mappings
of the client is stale and whether there are mappings locally that
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.
Processing a <getMappingsRequest> message MAY lead to a successful
response in the form of a <getMappingsResponse> or an <errors>
message. Only the <badRequest>, <forbidden>, <internalError>,
<serverTimeout> errors, defined in [RFC5222], are utilized by this
specification. Neither the <redirect> nor the <warnings> messages
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 8]

Internet-Draft LoST Sync August 2009
are reused by this message.
3.3. Examples
The first examples show the simplest <getMappingsRequest> message.
<?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1"/>
Figure 3: Example of empty <getMappingsRequest> message
An further example request is shown in Figure 4, the corresponding
response in Figure 5. In this example a LoST node requests a
specific mapping for source="authoritative.bar.example" and
sourceId="7e3f40b098c711dbb6060800200c9a66" that is fresher than
"2006-11-01T01:00:00Z".
<?xml version="1.0" encoding="UTF-8"?>
<getMappingsRequest xmlns="urn:ietf:params:xml:ns:lostsync1">
<exists>
<mapping-fingerprint source="authoritative.bar.example"
sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2006-11-01T01:00:00Z">
</mapping-fingerprint>
</exists>
</getMappingsRequest>
Figure 4: Example <getMappingsRequest> Message
The response is shown in Figure 5. A more recent mapping was
available with the identification of
source="authoritative.bar.example" and
sourceId="7e3f40b098c711dbb6060800200c9a66". Only one mapping that
matched source="authoritative.foo.example" was found and returned.
<?xml version="1.0" encoding="UTF-8"?>
<sync:getMappingsResponse
xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml">
<mapping source="authoritative.bar.example"
sourceId="7e3f40b098c711dbb6060800200c9a66"
lastUpdated="2008-11-26T01:00:00Z"
expires="2009-12-26T01:00:00Z">
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 9]

Internet-Draft LoST Sync August 20094. Pushing Mappings via <pushMappings> and <pushMappingsResponse>4.1. LoST Sync Client's Behavior
When a LoST Sync node obtains new information that is of interest to
its peers, it MAY push the new mappings to its peers. Configuration
settings at both peers decide whether this functionality is used.
New mappings may arrive through non-LoST means, such as a manual
addition to the local mappings database, or through the interaction
with other LoST nodes. Mappings may also be deleted and this may
trigger events.
A sending node keeps track with which recipient it has exchanged
mapping elements with. As discussed in Section 5.1 of [RFC5222],
mapping elements are identified by the 'source', 'sourceID' and
'lastUpdated' attributes. A mapping is considered the same if these
three attributes match. It is RECOMMENDED not to push the same
information to the same peer more than once.
A LoST Sync client MUST send a <pushMappings> request containing one
or more <mapping> elements.
To delete a mapping, the content of the mapping is left empty. The
node can delete the mapping from its internal mapping database, but
has to remember which peers it has distributed this update to. The
'expires' attribute is required, but ignored. If an attempt is made
to delete a non-existent mapping, the request is silently ignored.
4.2. LoST Sync Server's Behavior
When a LoST Sync Server receives a <pushMappingsRequest> message then
a newly received mapping M' MUST replace an existing mapping M if all
of the following conditions hold:
1. M'.source equals M.source
2. M'.sourceID' equals M.sourceID
3. M'.lastUpdated greater than M.lastUpdated
If the received mapping M' does not update any existing mapping M
then it MUST be added to the local cache as an independent mapping.
If a <pushMappingsRequest> message with an empty <mapping> element is
received then a corresponding mapping has to be determined based on
the 'source', 'sourceID' and 'lastUpdated' attributes. If a mapping
has been found then it MUST be deleted. If no mapping can be
identified then an <errors> response MUST be returned that contains
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 11]

Internet-Draft LoST Sync August 2009
the <notDeleted> child element. The <notDeleted> element MAY carry a
<message> element and MUST contain the <mapping> element(s) that
caused the error.
The response to a <pushMappingsRequest> request is a
<pushMappingsResponse> message. With this specification, a
successful response message returns no additional elements, whereas
an <errors> response is returned in the response message, if the
request failed. Only the <badRequest>, <forbidden>, <internalError>
or <serverTimeout> errors defined in Section 13.1 of [RFC5222], are
used. The <redirect> and <warnings> messages are not used for this
query/response.
If the set of nodes that are synchronizing their data does not form a
tree, it is possible that the same information arrives through
several other nodes. This is unavoidable, but generally only imposes
a modest overhead. (It would be possible to create a spanning tree
in the same fashion as IP multicast, but the complexity does not seem
warranted, given the relatively low volume of data.)
4.3. Example
An example is shown in Figure 6. Image a LoST node that obtained two
new mappings identified as follows:
o source="authoritative.example"
sourceId="7e3f40b098c711dbb6060800200c9a66" lastUpdated="2008-11-
26T01:00:00Z"
o source="authoritative.example"
sourceId="7e3f40b098c711dbb606011111111111" lastUpdated="2008-11-
01T01:00:00Z"
These two mappings have to be added to the peer's mapping database.
Additionally, the following mapping has to be deleted:
o source="nj.us.example" sourceId="123" lastUpdated="2008-11-
01T01:00:00Z"
<?xml version="1.0" encoding="UTF-8"?>
<sync:pushMappingsRequest
xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml">
<mapping source="authoritative.example"
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 12]

Internet-Draft LoST Sync August 2009
sourceId="123"
lastUpdated="2008-11-01T01:00:00Z"
expires="2008-11-01T01:00:00Z"/>
</sync:pushMappingsRequest>
Figure 6: Example <pushMappingsRequest> Message
In response, the peer performs the necessary operation and updates
its mapping database. In particular, it will check whether the other
peer is authorized to perform the update and whether the elements and
attributes contain values that it understands. In our example, a
positive response is returned as shown in Figure 7.
<?xml version="1.0" encoding="UTF-8"?>
<pushMappingsResponse xmlns="urn:ietf:params:xml:ns:lostsync1" />
Figure 7: Example <pushMappingsResponse>
In case that a mapping could not be deleted as requested the
following error response might be returned instead.
<?xml version="1.0" encoding="UTF-8"?>
<errors xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:sync="urn:ietf:params:xml:ns:lostsync1"
source="nodeA.example.com">
<sync:notDeleted
message="Could not delete the indicated mapping."
xml:lang="en">
<mapping source="nj.us.example"
sourceId="123"
lastUpdated="2008-11-01T01:00:00Z"
expires="2008-11-01T01:00:00Z"/>
</sync:notDeleted>
</errors>
Figure 8: Example <errors> Message
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 14]

Internet-Draft LoST Sync August 20095. Transport
LoST Sync needs an underlying protocol transport mechanism to carry
requests and responses. This document defines the use of LoST Sync
over HTTP and LoST over HTTP-over-TLS. Client and server developers
are reminded that full support of RFC 2616 HTTP facilities is
expected. If LoST Sync clients or servers re-implement HTTP, rather
than using available servers or client code as a base, careful
attention must be paid to full interoperability. Other transport
mechanisms are left to future documents. The available transport
mechanisms are determined through the use of the LoST U-NAPTR
application. In protocols that support content type indication, LoST
Sync uses the media type application/lostsync+xml.
When using HTTP [RFC2616] and HTTP-over-TLS [RFC2818], LoST Sync
messages use the HTTP POST method. The HTTP request MUST use the
Cache-Control response directive "no-cache" to HTTP-level caching
even by caches that have been configured to return stale responses to
client requests.
All LoST Sync responses, including those indicating a LoST warning or
error, are carried in 2xx responses, typically 200 (OK). Other 2xx
responses, in particular 203 (Non-authoritative information) may be
returned by HTTP caches that disregard the caching instructions. 3xx,
4xx and 5xx HTTP response codes indicates that the HTTP request
itself failed or was redirected; these responses do not contain any
LoST Sync XML elements.
The HTTP URL is derived from the LoST Sync server name via U-NAPTR
application.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 15]

Internet-Draft LoST Sync August 20097. Security Considerations
The LoST security considerations are discussed in [RFC5222]. The
operations described in this document involve mutually-trusting LoST
nodes. These nodes need to authenticate each other, using mechanisms
such as HTTP Digest [RFC2617], HTTP Basic [RFC2617] over TLS
[RFC5246] or TLS client and server certificates.
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 18]

Internet-Draft LoST Sync August 20098. IANA Considerations8.1. Content-type registration for 'application/lostsync+xml'
This specification requests the registration of a new MIME type
according to the procedures of RFC 4288 [RFC4288] and guidelines in
RFC 3023 [RFC3023].
MIME media type name: application
MIME subtype name: lostsync+xml
Mandatory parameters: none
Optional parameters: charset
Indicates the character encoding of enclosed XML.
Encoding considerations: Uses XML, which can employ 8-bit
characters, depending on the character encoding used. See RFC3023[RFC3023], Section 3.2.
Security considerations: This content type is designed to carry LoST
Syncronization protocol payloads.
Interoperability considerations: None
Published specification: RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please
replace XXXX with the RFC number of this specification.]
Applications which use this media type: Emergency and Location-based
Systems
Additional information:
Schulzrinne & Tschofenig Expires February 7, 2010 [Page 19]