view Side-By-Side changes
Network Working Group T. Hardie Internet-Draft Qualcomm, Inc. Intended status: Standards Track A. Newton Expires:March 8,April 25, 2007 SunRocket H. Schulzrinne Columbia U. H. Tschofenig SiemensSeptember 4,October 22, 2006 LoST: A Location-to-Service Translation Protocoldraft-ietf-ecrit-lost-01.txtdraft-ietf-ecrit-lost-02.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of 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 onMarch 8,April 25, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 1] Internet-Draft LoSTSeptemberOctober 2006 Abstract This document describes an XML-based protocol for mapping service identifiers andgeospatialgeodetic or civic location information to service contact URIs. In particular, it can be used to determine the location-appropriate PSAP for emergency services. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 6 3.Usage . . .Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.Resolving Service URNs Using LoST .Overview of Protocol Usage . . . . . . . . . . . . .8 5. Query. . . . . 8 5. LoST Uniform Resource Locators and Their Resolution . . . . . 9 6. Mapping a Location and Service to URLs: <findService> . . . . 10 6.1. Overview . . . . . . . . . . . . . .9 5.1. Location Information Element. . . . . . . . . . . 10 6.2. Examples . . . .9 5.2. Service Element. . . . . . . . . . . . . . . . . . . . .9 5.3. Validate Attribute10 6.2.1. Example Using Geodetic Coordinates . . . . . . . . . . 10 6.2.2. Civic Address Mapping Example . . . . . . . . . .9 5.4. Query Message Examples. . 11 6.3. Components of <findService> Request . . . . . . . . . . . 13 6.3.1. The <location> Element . . . . .9 6. Response. . . . . . . . . . . 13 6.3.2. The <service> Element . . . . . . . . . . . . . . . .11 6.1. Uniform Resource Identifiers (URI) Element13 6.3.3. Recursion or Redirection . . . . . . . .11 6.2. Display Name Element. . . . . . . 13 6.3.4. Configuring the Response . . . . . . . . . . . .11 6.3. Service Element. . . 14 6.4. Components of the Mapping Response <findServiceResponse> . . . . . . . . . . . . . . . . . .11 6.4. ServiceBoundary16 6.4.1. Source of Response: <via> Element . . . . . . . . . . 16 6.4.2. Service URLs: the <uri> Element . . . . . . .12 6.5. ServiceNumber Element. . . . 16 6.4.3. Describing the Service with the <displayName> Element . . . . . . . . . . . . . .12 6.6. TimeToLive Attribute. . . . . . . . . 17 6.4.4. Approximating Services: the <service> Element . . . . 17 6.4.5. Defining the Service Region with the <serviceBoundary> Element . . . . . .12 6.7. Validation Element. . . . . . . . 17 6.4.6. Service Boundaries by Reference: the <serviceBoundaryReference> Element . . . . . . . . . . 17 6.4.7. The Service Number . .12 6.8. Response Message Examples. . . . . . . . . . . . . . . .12 7. List Services Query and Response18 6.4.8. Civic Address Validation . . . . . . . . . . . . . . .15 7.1. List Service Query18 6.4.9. Validity: The 'timeToLive' Attribute . . . . . . . . . 18 7. Retrieving the Service Boundary via <getServiceBoundary> . . . 19 8. List Services: <listServices> . . . . . . . .15 7.2. List Service Response. . . . . . . . 21 9. Location Profiles . . . . . . . . . .15 8. Status Code Definitions. . . . . . . . . . . . 23 9.1. Location Profile Usage . . . . . . .17 8.1. Informational 1xx. . . . . . . . . . . 23 9.2. Two Dimensional Geodetic Profile . . . . . . . . .17 8.2. Successful 2xx. . . . 26 9.3. Basic Civic Profile . . . . . . . . . . . . . . . . . .17 8.2.1. 200 OK. 26 10. Error Handling . . . . . . . . . . . . . . . . . . . . . . .17 8.2.2. 201 Service Substitution. 27 10.1. Basic Errors . . . . . . . . . . . . . .17 8.3. Redirection 3xx. . . . . . . . . 27 10.2. Response Errors . . . . . . . . . . . .17 8.3.1. 301 Move Permanently. . . . . . . . . 27 Hardie, et al. Expires April 25, 2007 [Page 2] Internet-Draft LoST October 2006 10.3. Redirects . . . . . . . .17 8.3.2. 302 Moved Temporarily. . . . . . . . . . . . . . . .18 8.3.3. Example28 11. LoST Transport . . . . . . . . . . . . . . . . . . . . . . .18 8.4. Client Error 4xx. 29 12. Relax NG Schema . . . . . . . . . . . . . . . . . . . .18 8.4.1. 400 Bad Request. . . 30 13. Internationalization Considerations . . . . . . . . . . . . . 37 14. IANA Considerations . . .18 8.4.2. 403 Forbidden. . . . . . . . . . . . . . . . . . 38 14.1. U-NAPTR Registrations . .18 8.4.3. 404 Not Found. . . . . . . . . . . . . . . . 38 14.2. Content-type registration for 'application/lost+xml' . . . 38 14.3. LoST Relax NG Schema Registration .18 8.4.4. 414 Location Error. . . . . . . . . . .. . . . . . . 18 8.4.5. Example . . . . . . . . . . . . . . . . . . . . . . . 18 8.5. Server Error 5xx . . . . . . . . . . . . . . . . . . . . . 20 8.5.1. 500 Server Internal Error . . . . . . . . . . . . . . 20 Hardie, et al. Expires March 8, 2007 [Page 2] Internet-Draft40 14.4. LoSTSeptember 2006 8.5.2. 501 Service Not Implemented . . . . . . . . . . . . . 20 8.5.3. 504 Server Time-Out . . . . . . .Namespace Registration . . . . . . . . . .21 8.5.4. Example. . . . . 40 14.5. Registration Template . . . . . . . . . . . . . . . . . .21 9.41 14.6. LoSTTransport . . . . .Location Profile Registry . . . . . . . . . . . . . . 42 15. Security Considerations . . . . .22 10. LoST Uniform Resource Locators. . . . . . . . . . . . . . 43 16. Acknowledgments . .23 11. Example. . . . . . . . . . . . . . . . . . . . . 44 17. Open Issues . . . . . .24 12. Deployment Methods. . . . . . . . . . . . . . . . . . . 45 18. References . . .26 13. Relax NG Schema. . . . . . . . . . . . . . . . . . . . . . .28 14. Internationalization Considerations46 18.1. Normative References . . . . . . . . . . . . .33 15. IANA Considerations. . . . . . 46 18.2. Informative References . . . . . . . . . . . . . . .34 15.1. Content-type registration for 'application/lost+xml'. . .34 15.2. LoST Relax47 Appendix A. Non-Normative RELAX NG SchemaRegistration . . . . . . . . . . . . 35 15.3. LoST Namespace Registration . . . . . . . . . . . . . . . 36 15.4. Registration Template . . . . . . . . . . . . . . . . . . 36 16. Security Considerations . . . . . . . . . . . . . . . .in XML Syntax . . .38 17. Acknowledgments. . 48 Authors' Addresses . . . . . . . . . . . . . . . . . . . . .39 18. Open Issues. . . 61 Intellectual Property and Copyright Statements . . . . . . . . . .. . . . . . . . . . . . 40 19. References . . . . . . . . . . . . . . . . . . . . . . . . . . 41 19.1. Normative References . . . . . . . . . . . . . . . . . . . 41 19.2. Informative References . . . . . . . . . . . . . . . . . . 42 Appendix A. Non-Normative RELAX NG Schema in XML Syntax . . . . . 43 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51 Intellectual Property and Copyright Statements . . . . . . . . . . 5262 Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 3] Internet-Draft LoSTSeptemberOctober 2006 1. Introduction This document describes a protocol for mapping a service identifier[6][10] and location information compatible with PIDF-LO[11][8] to one or more service contact URIs. Example contact URI schemes includesip, xmpp,sip [14], xmpp [15], andtel.tel [16]. While the initial focus is on providing mapping functions for emergency services, it is likely that the protocol is applicable to any service URN. For example, in the United States, the "2-1-1" and "3-1-1" services follow a similar location-to-service behavior as emergency services. This document names this protocolusage "LoST""LoST", forLocation-to- Service Translation Protocol. The featuresLocation-to-Service Translation. LoST Satisfies the requirements [18] for mapping protocols. LoST provides a number of operations, centered around mapping locations and service URNs to URIs and associated information. LoSTare: o Supportsmapping queriesusingcan contain either civicas well as geospatialor geodetic location information.o Support for recursive and iterative resolution. o Support for address validation. o A hierarchical deployment of mapping servers is independent ofFor civiclocation labels. o Indicationaddresses, LoST can indicate which parts of the civic address are known to be valid or invalid, thus providing address validation. LoST indicates errors in the location data to facilitate debugging and proper userfeedback while simultaneously providing best- effortfeedback, but also provides best-effort answers.o MappingLoST queries can bebased on either civicresolved recursively orgeospatial location information, with uniform protocol treatment of both. o Support for overlapping service regions. o Satisfies the requirements [5] for mapping protocols. o Minimizesiteratively. To minimize roundtrips by cachingtrips, LoST caches individual mappings andby supporting returnindicates the region for which the same answer would be returned ("service region"). As currently defined, LoST messages are carried in HTTP and HTTPS protocol exchanges, facilitating use ofcoverage regions ("hinting"). o Facilitates reuseTLS for protecting the integrity and confidentiality ofTransport Layer Security (TLS).requests and responses. This document focuses on the description of the protocol between the mapping client (seeker or resolver) and the mapping server (resolver or other servers). The relationship between other functions, such as discovery of mapping servers, data replication and the overall mapping server architecturein general, will beare described in a separatedocument. [20] is a first attempt to describe such a mapping server architecture. Hardie, et al. Expires March 8, 2007 [Page 4] Internet-Draft LoST September 2006 The high-level protocol operation can be described as follows: Location Info +----------+ --------> | | Service | LoST | URN | Server | --------> | | +----------+ Query URI +----------+ <------- | | Optional | LoST | Info (hints)| Server | <------- | | +----------+ Response Figure 1: Overviewdocument [19]. The query message carries location information and a service identifier encoded as a Uniform Resource Name (URN) (see[6])[10]) from the LoST client to the LoST server. The LoST server uses its database to map the input values toaone or more Uniform Resource Identifiers (URI) and returnsit includingthose URIs along with optional information such as hints about the service boundary in a response messagebackto the LoST client. If the server cannot resolve the query itself, it may in turn query another server or return the address of another LoST server, identified by a LoST URL (Section 5). In addition to the mapping function described in Section 6, the protocol also allows to retrieve the service boundary Section 7 and to list Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 4] Internet-Draft LoST October 2006 the services available for a particular location Section 8. Hardie, et al. Expires April 25, 2007 [Page 5] Internet-Draft LoSTSeptemberOctober 2006 2. Requirements Notation 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[3].[1]. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 6] Internet-Draft LoSTSeptemberOctober 2006 3.Usage The client queries a server, indicating the desired service and location information. If the query succeeds, the server returns a result that includes one or more URIs for reachingTerminology This document furthermore uses theappropriate service forterminology defined in [18]. In examples, thelocation indicated. Depending onXML sent by thequery,client is prepended with "C:" and theresult may contain a service boundary where the same mapping would apply, a reference to another server to which the client should send a query, or an error messages indicating problems. The combination of these components are left to the needs and policy of the jurisdiction whereXML sent by the server isbeing operated.prepended with "S:". Hardie, et al. Expires April 25, 2007 [Page 7] Internet-Draft LoST October 2006 4. Overview of Protocol Usage The client may perform the mapping at any time. Among the common triggers for mapping requests are: 1. When the client initially starts upand/oror attaches to anew network location.network. 2. When the client detects that its location has changed sufficiently that it is outside the bounds of the service region returned in an earlier LoST query. 3. When cached mapping information has expired. 4. Whencalling forinvoking a particular service.During such calls,At that time, a client maywant to request a short response that contains only the mapping data, omittingomit requests for serviceboundaryboundaries or other auxiliary information.Cached answers areA service-specific BCP such as [20] governs whether a client is expected tobe used by clients only after failing to accomplish a location-to-URIinvoke the mappingat call time.service just before needing the service or whether to rely on cached answers. Cache entriesmayexpire according to their time-to-livevalue,value (see Section 6.4.9, or theymaybecome invalid if thelocation of thecaller's device movesoutsidebeyond theboundary limitsboundaries of thecache entry. Boundaries for cache entries may be set in both geospatial and civic terms.service region. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page7]8] Internet-Draft LoSTSeptemberOctober 20064. Resolving Service URNs Using5. LoST Uniform Resource Locators and Their Resolution LoST servers are identified by LoST Uniform Resource Locators (URLs), which follow the format of URLs defined in RFC 3986 [7], with the following ABNF: LoST-URI = "lost:" host 'host' is defined in Section 3.2.2 of RFC 3986 [7]. An example is 'lost:lostserver.example.com' If a LoST URL contains a host name rather than an IP address, clients need toperform anuse U-NAPTR[17] lookup[12] using the U-NAPTR specification described below to obtain aDNS A recordURI (indicating host andIP address. These records map the 'host' part of the LoST URL to one or more URLs indicating the protocol to carryprotocol) for the applicable LoSTrequest.service. In this document, only the HTTP and HTTPS URL schemes are defined. Note that the HTTP URL can be any valid HTTP URL, including those containing path elements.Here is an example:The following two DNS entries resolve the LoST URL "lost:example.com" to the HTTPS URL https://lostserv.example.com/secure or the HTTP URL http://lostserver.example.com, with the former being preferred. example.com. IN NAPTR 100 10 "u" "LoST:https" "!*.!https://lostserver.example.com/secure!" "" IN NAPTR 200 10 "u" "LoST:http" "!*.!http://lostserver.example.com!" "" Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page8]9] Internet-Draft LoSTSeptemberOctober 20065. Query LoST provides the ability6. Mapping a Location and Service touse civic or geospatial location information in theURLs: <findService> 6.1. Overview The <findService> querymessage. In additionconstitutes the core of the LoST functionality, mapping civic or geodetic locations tolocation informationURLs and associated data. After giving an example, we enumerate the elements of the queryalso containsand response. 6.2. Examples 6.2.1. Example Using Geodetic Coordinates The following is an example of mapping a serviceidentifier. An optional parameter might furthermore request the LoST servertovalidate location information. 5.1. Location Information Element LoST supportsaquery using geospatial and civiclocationinformationusing geodetic coordinates, for the<findServiceByLocation> query. Geospatial location information uses GML format [10] and civic location information utilizes the format defined in [16]. This document does not define location formats. 5.2. Service Element The type ofservicedesired is specified byassociated with the<service> element. The (emergency)police (urn:service:sos.police). <?xml version="1.0" encoding="UTF-8"?> <findService xmlns="urn:ietf:params:xml:ns:lost1" xmlns:p2="http://www.opengis.net/gml" recursive="true" include="uri serviceidentifiers listed inserviceNumber displayName serviceBoundary"> <location profile="urn:ietf:params:lost:location-profile:geodetic-2d"> <p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG:4326"> <p2:pos>40.8089897 -73.9612492</p2:pos> </p2:Point> </location> <service>urn:service:sos.police</service> </findService> Figure 2: A <findService> Geodetic Query Given theregistry establishedquery above, a server would respond with[6] will be used in this document. The <service> element isamandatory element.service, and information related to that service. Incasethedatabase atexample below, theLoSTserverdoes not provided servicehas mapped the location given by the client for a police service to thespecific geographical regionNew York City Police Deparment, instructing theLoSTclient that it may contact them via the URIs sip:nypd@example.com and xmpp:nypd@example.com. The server hasvarious choices with regard toalso given theresponse: o It can send an error response. o It can map one service to another one, if appropriate, and returnclient adifferentgeodetic, two-dimensional boundary for this serviceidentifier as described in Section 6.3. o It can populate the URIsand time-to-live value ofone3,600 seconds. This instructs the client that if its location changes beyond the give service boundary or if 3,600 seconds has elapsed, it would need toanother service. The operation of the LoST server is largely a policy issue. No behavior is mandated in this document. Guidelines for operating a LoST serverrequery foremergency services is provided in [21]. 5.3. Validate Attribute The 'validate' attribute implements the validation behavior described in [5]. 5.4. Query Message Examples This section shows an example of a query message providing geospatial and civic locationthis information. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page9]10] Internet-Draft LoSTSeptemberOctober 2006 <?xml version="1.0" encoding="UTF-8"?><findServiceByLocation<findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1" xmlns:p2="http://www.opengis.net/gml"validate="false" operation="recursive"> <locationInfo> <p2:Point id="point1" srsName="epsg:4326"> <p2:coordinates>37:46:30N 122:25:10W</p2:coordinates> </p2:Point> </locationInfo>timeToLive="3600"> <displayName xml:lang="en"> New York City Police Department </displayName> <service>urn:service:sos.police</service></findServiceByLocation><serviceBoundary profile="urn:ietf:params:lost:location-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> </findServiceResponse> Figure 3:Query MessageA <findServiceResponse> Geodetic Answer 6.2.2. Civic Address Mapping Exampleusing Geospatial Location InformationThe following is an exampleabove showsof mapping aqueryservice to a location much like the example in Section 6.2.1, but usinggeospatialcivic address locationinformation with no validation required and asking forinformation. In this example, the'urn:service:sos.police' service.client requests the service associated with police (urn:service:sos.police) along with a specific civic address (house number 96 on a street named Neu Perlach in Munich, Germany). Hardie, et al. Expires April 25, 2007 [Page 11] Internet-Draft LoST October 2006 <?xml version="1.0" encoding="UTF-8"?><findServiceByLocation<findService xmlns="urn:ietf:params:xml:ns:lost1"validate="false" operation="recursive"> <locationInfo> <civicLocation>recursive="true" include="uri serviceNumber displayName serviceBoundary" > <location profile="urn:ietf:params:lost:location-profile:basic-civic"> <civicAddress xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> <country>Germany</country> <A1>Bavaria</A1> <A3>Munich</A3> <A6>Neu Perlach</A6> <HNO>96</HNO> <PC>81675</PC></civicLocation> </locationInfo></civicAddress> </location> <service>urn:service:sos.police</service></findServiceByLocation></findService> Figure 4:Query Message Example usingA <findService> CivicLocation Information The example above shows aAddress Query Given the queryusingabove, acivicserver would respond with a service, and information related to that service. In the example below, the server has mapped the locationin Munich askinggiven by the client for a police service to the'urn:service:sos.police' service. The query indicatesMȭnchen Polizei-Abteilung, instructing the client thatvalidation is not desiredit may contact them via the URIs sip:munich-police@example.com and xmpp:munich-police@example.com. The server has also given thequeryclient a civic address boundary (the city of Munich) for this service and time-to-live value of 3,600 seconds. This instructs the client that if its location changes beyond the give service boundary (i.e. beyond the city of Munich) or if 3,600 seconds has elapsed, it would need tobe executed recursively.requery for this information. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page10]12] Internet-Draft LoSTSeptemberOctober 20066. Response A response message might either contain civic or geospatial location information depending on the type of the query. If the findServiceByLocation query message contained civic location information then the <serviceBoundary> element<?xml version="1.0" encoding="UTF-8"?> <findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1" timeToLive="3600"> <displayName xml:lang="de"> Mȭnchen Polizei-Abteilung </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>Germany</country> <A1>Bavaria</A1> <A3>Munich</A3> <PC>81675</PC> </civicAddress> </serviceBoundary> <uri>sip:munich-police@example.com</uri> <uri>xmpp:munich-police@example.com</uri> <serviceNumber>110</serviceNumber> </findServiceResponse> Figure 5: A <findServiceResponse> Civic Address Answer 6.3. Components ofthe response message will also contain civic information. If the findServiceByLocation<findService> Request 6.3.1. The <location> Element The <findService> querymessage contained geospatialcommunicates locationinformation then the <serviceBoundary> element of the response message will containusing one or more <location> elements, which MUST conform to aGML polygon. More information about the <serviceBoundary> element can be found at Section 6.4. 6.1. Uniform Resource Identifiers (URI)location profile (Section 9). 6.3.2. The <service> ElementEach <uri> element contains an appropriate contact URI for the service for which mapping was requested. <uri> elements are ofThe typexs:anyURI. In the emergencyof servicecontext operators are strongly discouraged from using relative URIs, even though these are permitteddesired is specified by thetype. 6.2. Display Name Element Each <displayName> element contains a string that is suitable for display. <displayName> elements are of type "text" that is suitable for internationalized human-readable text. 6.3. Service Element The<service>element is an optional element in the response message. The (emergency)element. It contains serviceidentifiers listed inURNs from the registry establishedwith [6] will be usedinthis document. If the service that was requested[10]. 6.3.3. Recursion or Redirection LoST <findService> queries can be recursive or iterative, as indicated by theLoST client is not available for'recursive' attribute. A value of "true" indicates aparticular location then the server MAY returnrecursive query, a value of "false" analternate service. If it does so, it MUST indicateiterative query, with iterative being theactual service returned (i.e., its service URN). Alternatively,default. When the LoST serverMAYcannot answer the query and the query requested iterative resolution, it will return an <iterativeSearchExhausted> (Section 10.3) errorresponse indicatingmessage with the LoST URI pointing to a different LoST server that therequested service is not available. The following example illustrates the main idea. If there is a region that only understands the 'urn:service:sos' service and not 'urn:service:sos.fire', 'urn:service:sos.ambulance', and 'urn:service:sos.police'. If aLoST clientasks for the 'urn:service:sos.fire' service thenshould contact. In recursive mode, the LoST servercould, depending on the local policy at the LoST server, return: 1. 'urn:service:sos', or 2. 'urn:service:sos.fire' withinitiates a query and returns thevalues of 'urn:service:sos' being populatedresult to'urn:service:sos.fire', orthe original querier, inserting a <via> element Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page11]13] Internet-Draft LoSTSeptemberOctober 20063. an error message In case of (1) the <service> element carries the value of 'urn:service:sos'. 6.4. ServiceBoundary Element Each <serviceBoundary> element contains either one or more civic location elements derived from the GeoPriv civic address schema or a GML-based polygon. The <serviceBoundary> element indicates where the same query would yieldto track thesame response, i.e., it provides information about the service boundary. 6.5. ServiceNumber Element TBD: This element contains the (emergency) service number, which is a string of digits used to reachresponse chain. 6.3.4. Configuring the(emergency) service. 6.6. TimeToLive Attribute Each timeToLiveResponse The 'include' attributeis a positive integer, expressingenumerates all thevalidity period ofXML elements that theresponse in seconds. The LoSTclientMUST NOT consider the returned location current afterwants theexpiration ofLoST server to provide in thevalidity period. 6.7. Validation Elementmapping response. The<validation>server ignores any elementcontains a stringnames thatis composedit does not understand. The ordering ofconcatenatedthe tokensseparatedis immaterial. Among other features, it determines whether service boundaries are returned and whether they are returned bya whitespace. These tokens refervalue or reference Section 7, and whether tothevalidate civiclocation labels used in child elements oflocations. Address validation is requested by including the<civicAddress>XML elementfrom the requestnames thathave been recognized as valid byprovide address validation in theserver.'include' attribute, namely 'valid', 'invalid' and 'unchecked'. The followingcode snippet indicates that the civicexample demonstrates addresslabels 'country', 'A1', 'A3', 'A6, 'PC' have been valided by thevalidation. Hardie, et al. Expires April 25, 2007 [Page 14] Internet-Draft LoSTserver. <validation>country A1 A3 A6 PC</validation> 6.8. Response Message Examples This section shows an example of a query message providing geospatial and civic location information. Hardie, et al. Expires March 8, 2007 [Page 12] Internet-Draft LoST SeptemberOctober 2006 C: <?xml version="1.0" encoding="UTF-8"?><responseC: <findService C: xmlns="urn:ietf:params:xml:ns:lost1"xmlns:p2="http://www.opengis.net/gml" > <result status="200" message="OK" xml:lang="en" timeToLive="1000">C: recursive="true" C: include="uri serviceNumber invalid valid unchecked"> C: <location C: profile="urn:ietf:params:lost:location-profile:basic-civic"> C: <civicAddress C: xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> C: <country>Germany</country> C: <A1>Bavaria</A1> C: <A3>Munich</A3> C: <A6>Neu Perlach</A6> C: <HNO>96</HNO> C: <PC>81675</PC> C: </civicAddress> C: </location> C: <service>urn:service:sos.police</service> C: </findService> S: <?xml version="1.0" encoding="UTF-8"?> S: <findServiceResponse S: xmlns="urn:ietf:params:xml:ns:lost1" timeToLive="3600"> S: <displayNamexml:lang="en"> New York City Police Departmentxml:lang="de"> S: Mȭnchen Polizei-Abteilung S: </displayName> S: <service>urn:service:sos.police</service><serviceBoundary> <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>S: <serviceBoundary S: profile="urn:ietf:params:lost:location-profile:basic-civic"> S: <civicAddress S: xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> S: <country>Germany</country> S: <A1>Bavaria</A1> S: <A3>Munich</A3> S: <PC>81675</PC> S: </civicAddress> S: </serviceBoundary><uri>sip:nypd@example.com</uri> <uri>xmpp:nypd@example.com</uri> <serviceNumber>911</serviceNumber> </result> </response>S: <uri>sip:munich-police@example.com</uri> S: <uri>xmpp:munich-police@example.com</uri> S: <serviceNumber>110</serviceNumber> S: <valid>country A1 A3 A6</valid> S: <invalid>PC</invalid> S: </findServiceResponse> Figure 6:Response Message Example using Geospatial Location Service Boundary Hints This example shows a response with two URIs for the previously queried service URN. Information about the service boundary is provided by a GML polygon. The <serviceNumber> element indicates the valid service number for the expressed location and service URN.Address Validation Exchange Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page13]15] Internet-Draft LoSTSeptemberOctober 2006 6.4. Components of the Mapping Response <findServiceResponse> 6.4.1. Source of Response: <via> Element A <findServiceResponse> indicates the source of the response by including a <via> element with a LoST URL as the first <via> element. Thus, each server "initials" its own response. Thus, responses to iterative queries contain one <via> element, while responses to recursive queries may reach the original querier with multiple <via> elements, one for each server that was used in the resolution. The following <findServiceResponse> example illustrates the use of <via>: <?xml version="1.0" encoding="UTF-8"?><response xmlns="urn:ietf:params:xml:ns:lost1"> <result status="200" timeToLive="10000"><findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1" timeToLive="3600"> <via>lost:esgw.uber-110.de.example</via> <via>lost:polizei.munchen.de.example</via> <displayNamexml:lang="de">Munich Police Department</displayName>xml:lang="de"> Mȭnchen Polizei-Abteilung </displayName> <service>urn:service:sos.police</service><serviceBoundary> <civicLocation><serviceBoundary profile="urn:ietf:params:lost:location-profile:basic-civic"> <civicAddress xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> <country>Germany</country> <A1>Bavaria</A1> <A3>Munich</A3> <PC>81675</PC></civicLocation></civicAddress> </serviceBoundary> <uri>sip:munich-police@example.com</uri> <uri>xmpp:munich-police@example.com</uri><service-number>110</service-number> </result> </response><serviceNumber>110</serviceNumber> </findServiceResponse> Figure 7:Response MessageAn Exampleproviding Civic Location Service Boundary Hints This example shows a response that returns two URIs (one for SIP and another one for XMPP),of adistring thatResponse Using <via> The example above indicates that thevalid distring for the location provided inthis answer was given to thequery, a hint aboutresponding server by theservice boundary inLoST server at esgw.uber-110.de.example, which got the<serviceBoundary> element and information aboutanswer from thevalidated civic address fields.LoST server at polizei.munchen.de.example. 6.4.2. Service URLs: the <uri> Element ThetimeToLive attribute indicates thatresponse returns thereturned information canservice URLs in one or more <uri> elements. The URLs MUST becached for 10000 seconds and provides a *<displayName> element with additional, textual information about the returned information.absolute URLs. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page14]16] Internet-Draft LoSTSeptemberOctober 20067. List Services Query and Response 7.1. List6.4.3. Describing the ServiceQuery This subsectionwith the <displayName> Element The <displayName> element describes the service with amechanismstring thatoffers the LoST client to queryis suitable foravailable service identifiers supported bydisplay to human users, annotated with theLoST server. The listServices query MUST carry'xml:lang' attribute that contains a language tag to aid in the<locationInfo> andrendering of text. 6.4.4. Approximating Services: the <service>element. The LoST server MUST return only immediate child elements ofElement If the requested service, identified by the serviceidentifier specifiedURN [10] in the <service> elementofin thelistServices query availablerequest, does not exist for theprovidedlocationinformation. <?xml version="1.0" encoding="UTF-8"?> <listServices xmlns="urn:ietf:params:xml:ns:lost1" xmlns:p2="http://www.opengis.net/gml" operation="false"> <locationInfo> <p2:Point id="point1" srsName="epsg:4326"> <p2:coordinates>37:46:30N 122:25:10W</p2:coordinates> </p2:Point> </locationInfo> <service>urn:service:sos</service> </listServices> Figure 8: Example for a List Service Query This listService query aims to query the immediate child elements ofindicated, the'urn:service:sos' URN. 7.2. List Service Response This subsection describesserver can either return an <serviceNotImplemented> (Section 10.2) error or can provide an alternate service that approximates theresponse messagedesired service for thatprovideslocation. In theLoST clientlatter case, the server MUST include a <service> element with thelistalternative service URN. The choice ofimmediate childserviceidentifiers based onURN is left to local policy, but the alternate serviceidentifier provided by LoST client with respectshould be able to satisfy thelocation information provided inoriginal service request. 6.4.5. Defining thelistService query. The following example showsService Region with the <serviceBoundary> Element A responseto the listServices query example of Figure 8 listingcan indicate theavailable services offered byregion for which theLoST server starting with 'urn:service:sos.ambulance' and finishing with 'urn:service:sos.suicide'. Hardie, et al. Expires March 8, 2007 [Page 15] Internet-Draft LoST September 2006 <?xml version="1.0" encoding="UTF-8"?> <response xmlns="urn:ietf:params:xml:ns:lost1"> <serviceList status="200" message="OK" xml:lang="en"> urn:service:sos.ambulance urn:service:sos.animal-control urn:service:sos.fire urn:service:sos.gas urn:service:sos.mountain urn:service:sos.marine urn:service:sos.physician urn:service:sos.poison urn:service:sos.police urn:service:sos.suicide </serviceList> </response> Figure 9: Example forservice URL returned would be theResponse to a List Service Query Hardie, et al. Expires March 8, 2007 [Page 16] Internet-Draft LoST September 2006 8. Status Code Definitions Each response contains a <status> element that conveys a numeric status code and a reason phrase indicatingsame as in thesuccessactual query, the so-called service region. The service region can be indicated by value orfailure ofby reference Section 6.4.6. If a client moves outside theresponse.service area, it MUST send a new query with its current location to obtain valid service data. Theappearance of other elementsservice region is described by value in one or more <serviceBoundary> elements, each formatted according to a different location profile. The client only processes theresponse depends onfirst element that it can understand according to its list of supported location profiles. Thus, thestatus code. Hence, differentelements areused for groupsalternative descriptions ofstatus codes. Status codes alwaysthe same service region, not additive geometries. The server returns all suitable service regions, using all available location profiles, so that intermediate caches havethree digits;this information available for future queries. 6.4.6. Service Boundaries by Reference: thelist<serviceBoundaryReference> Element Since geodetic service boundaries may contain thousands ofstatus codes is meant topoints and thus beextensible by IANA registrationquite large, clients may opt to conserve bandwidth andfollowsrequest a reference to thegeneral patternservice boundary instead of theSession Initiation Protocol (SIP) [22] and HTTP [14].value described in Section 6.4.5. Thefirst digit indicates the typeidentifier ofresponse,the service boundary is returned in the <serviceBoundaryReference> element, along with'2' signaling a successful request, '3' a redirection, '4' a request failure due to client behavior, and '5'aserver failure. If used within HTTP,LoSTalso utilizes the normal HTTP status codes. However,URL identifying theHTTP requestserver from where it cansucceed, whilebe retrieved. The actual value of theLoST request caused an error. All LoST status codes appear in HTTP 200 (OK) responses. For example, a LoST 404, 414 or 500 status would occur in an HTTP 200 response. Temporary unavailability of the service should be indicated by an HTTP 505 (Service Unavailable) status code. [Editor's Note: Does this make any sense or should all or some LoST errors occur in a non-200 HTTP response?] 8.1. Informational 1xx This document does not define informational status codes. 8.2. Successful 2xx 8.2.1. 200 OK The query completed successfully. 8.2.2. 201 Service Substitution Theservicerequested is not available for the location requested, but the server is configured to provide a replacement service. 8.3. Redirection 3xx 8.3.1. 301 Move Permanently The requested locationboundary isbeing mapped by a different server and all future requests for that location (and locations inthen retrieved with theservice area)getServiceBoundary (Section 7) request. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 17] Internet-Draft LoSTSeptemberOctober 2006should be directed to that server. 8.3.2. 302 Moved TemporarilyTherequested locationidentifier isbeing mapped byadifferent server, but future requests should continue to use this server. 8.3.3. Example This is an example of an error messagerandom token witha 302 status code: <?xml version="1.0" encoding="UTF-8"?> <response xmlns="urn:ietf:params:xml:ns:lost1"> <redirect status="302" message="County-level routing" xml:lang="en" redirect="lost:co.lancaster.pa.us" </response> 8.4. Client Error 4xx 8.4.1. 400 Bad Request The request could notat least 128 bits of entropy and can beunderstood dueassumed tomalformed syntax. 8.4.2. 403 Forbiddenbe globally unique. Theserver understood the request, but is refusing to fulfill it. Authorization will not help, andidentifier uniquely references a particular boundary; if therequest SHOULD NOTboundary changes, a new identifier must berepeated. 8.4.3. 404 Not Found The serverchosen. Because of these properties, a client receiving a mapping response can simply check if it already hasdefinitive informationa copy of the boundary with thatthere is noidentifier. If so, it can skip checking with the server whether the boundary has been updated. Since servicemappingboundaries are likely to remain unchanged for extended periods of time, possibly exceeding thelocation specified. 8.4.4. 414 Location Error The location provided does not exist or fields withinnormal lifetime of thelocationservice URL, this approach avoids refreshing the boundary informationare contradictory. 8.4.5. Exampleeven if the cached service response has gotten stale. 6.4.7. Thefirst example shows an error message with a 414 status code thatService Number The service number isattached toreturned in theresponse message indicatingoptional <serviceNumber> element. It contains a string of digits, * and # thatthere wasaproblemuser on a device with a 12-key dial pad could use to reach that particular service. 6.4.8. Civic Address Validation A server can indicate in its response which civic address elements it has recognized as valid, which ones it has ignored and which ones it has checked and found to be invalid. Each element contains a list of tokens separated by white space, enumerating the civic location lables used in child elements of the <civicAddress> element. The <valid> element enumerates those civic address elements that have been recognized as valid by the LoST server and that have been used to determine the mapping. The <unchecked> elements enumerates the civic address elements that the server did not check and that were not used in determining the response. The <invalid> element enumerate civic address elements that the server attempted to check, but that did not match the other civic address elements found in the <valid> list. The example (Figure 6) indicates that the tokens 'country', 'A1', 'A3', and 'A6' have been validated by the LoST server. The server considered the postalcode:code 81675 in the <PC> element as not valid for this location. 6.4.9. Validity: The 'timeToLive' Attribute The timeToLive attribute contains the number of seconds the response is to be considered valid. The contents of this attribute is a positive integer. See Section 4 regarding how this value is to be utilized with a cache. [TBD: This could also be an absolute time.] Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 18] Internet-Draft LoSTSeptemberOctober 2006<?xml version="1.0" encoding="UTF-8"?> <response xmlns="urn:ietf:params:xml:ns:lost1"> <result status="250" message="Default Route" xml:lang="en" timeToLive="10000"> <displayName xml:lang="en"> New York City Police Department </displayName> <service>unknown</service> <serviceBoundary> <civicLocation> <country>US</country> <A1>New York</A1> <A3>New York</A3> </civicLocation> </serviceBoundary> <uri>sip:nypd@example.com</uri> <uri>xmpp:nypd@example.com</uri> <service-number>911</service-number> </result> <failure status="414" message="Address error" xml:lang="en"> <cause name="PC" message="postal code is outside of service boundary" xml:lang="en" /> </failure> </response> The second example shows an error message with7. Retrieving the Service Boundary via <getServiceBoundary> As discussed in Section 6.4.5, the <findService> response can return a414 status codeglobally unique identifier that can be used to retrieve the service boundary, rather than returning the boundary by value. This isattachedshown in the example in Figure 8. The client can then retrieve the boundary using the <getServiceBoundary> request and obtains the boundary in the <getServiceBoundaryResponse>, illustrated in the example in Section 7. The client issues the request to theresponse message indicating that there was a problemserver identified in the 'server' attribute of the <serviceBoundaryReference> element. C: <?xml version="1.0" encoding="UTF-8"?> C: <findService xmlns="urn:ietf:params:xml:ns:lost1" C: xmlns:p2="http://www.opengis.net/gml" recursive="true" C: include="uri service serviceNumber displayName C: serviceBoundaryReference"> C: <location C: profile="urn:ietf:params:lost:location-profile:geodetic-2d"> C: <p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG:4326"> C: <p2:pos>40.809 -73.9612</p2:pos> C: </p2:Point> C: </location> C: <service>urn:service:sos.police</service> C: </findService> S: <?xml version="1.0" encoding="UTF-8"?> S: <findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1" S: timeToLive="3600"> S: <displayName xml:lang="en"> S: New York City Police Department S: </displayName> S: <service>urn:service:sos.police</service> S: <serviceBoundaryReference server="lost:nypd.example.com" S: key="7214148E0433AFE2FA2D48003D31172E"/> S: <uri>sip:nypd@example.com</uri> S: <uri>xmpp:nypd@example.com</uri> S: <serviceNumber>911</serviceNumber> S: </findServiceResponse> Figure 8: findService withthe provided geospatial location information:Service Boundary Reference Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 19] Internet-Draft LoSTSeptemberOctober 2006 C: <?xml version="1.0" encoding="UTF-8"?><responseC: <getServiceBoundary xmlns="urn:ietf:params:xml:ns:lost1"xmlns:p2="http://www.opengis.net/gml" > <result status="250" message="Default PSAP" xml:lang="en" timeToLive="1000"> <displayName xml:lang="en"> New York City Police Department </displayName> <service>urn:service:sos.police</service> <serviceBoundary>C: key="7214148E0433AFE2FA2D48003D31172E"/> S: <?xml version="1.0" encoding="UTF-8"?> S: <getServiceBoundaryResponse S: xmlns="urn:ietf:params:xml:ns:lost1" S: xmlns:p2="http://www.opengis.net/gml"> S: S: <serviceBoundary S: profile="urn:ietf:params:lost:location-profile:geodetic-2d"> S: <p2:Polygon srsName="urn:ogc:def::crs:EPSG::4326"> S: <p2:exterior> S: <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>S: <p2:pos>40.701 -74.020</p2:pos> S: <p2:pos>40.876 -73.926</p2:pos> S: <p2:pos>40.797 -73.936</p2:pos> S: <p2:pos>40.714 -73.984</p2:pos> S: <p2:pos>40.701 -74.020</p2:pos> S: </p2:LinearRing> S: </p2:exterior> S: </p2:Polygon> S: </serviceBoundary><uri>sip:nypd@example.com</uri> <uri>xmpp:nypd@example.com</uri> <serviceNumber>911</serviceNumber> </result> <failure status="414" message="Invalide Goegraphic Location" xml:lang="en"> <cause name="p2:coordinates" message="invalid latitude" xml:lang="en" /> </failure> </response> 8.5. Server Error 5xx 8.5.1. 500 Server Internal Error The server encountered an unexpected condition that prevented it from fulfilling the request. The client MAY retry the request after several seconds. 8.5.2. 501S: S: </getServiceBoundaryResponse> Figure 9: Requesting a ServiceNot ImplementedBoundary with getServiceBoundary Theserver does not implement mapping for the<getServiceBoundary> request may also be used to retrieve servicerequested and cannot provide an alternate service.boundaries that are expressed as civic addresses, as illustrated in Figure 10. <?xml version="1.0" encoding="UTF-8"?> <getServiceBoundaryResponse xmlns="urn:ietf:params:xml:ns:lost1"> <serviceBoundary profile="urn:ietf:params:lost:location-profile:basic-civic"> <civicAddress xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"> <country>US</country> <A1>New York</A1> <A3>New York</A3> </civicAddress> </serviceBoundary> </getServiceBoundaryResponse> Figure 10: Civic Address Service Boundary Response Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 20] Internet-Draft LoSTSeptemberOctober 20068.5.3. 504 Server Time-Out8. List Services: <listServices> A LoST client can ask a LoST servertime-out occurs iffor the list of services it supports. The <listServices> query contains one or more <location> elements, each from a different location profile (Section 9), and may contain the <service> element. If the query contains the <service> element the LoST servercontacted tries to recursively resolvereturns only immediate child services of thequery, but cannot get an answer withinqueried service that are available for thetime limit setprovided location. If the <service> element is absent, the LoST service returns all top-level services available for thequery. 8.5.4. Exampleprovided location that it knows about. A server responds to this query with a <listServicesResponse> response. Thisis an exampleresponse has may contain <via> elements (Section 6.4.1) and must contain a <serviceList> element, consisting ofan error message witha500 status code:whitespace-separated list of service URNs. The query and response are illustrated in Figure 11. C: <?xml version="1.0" encoding="UTF-8"?> C: <listServices C: xmlns="urn:ietf:params:xml:ns:lost1" C: xmlns:p2="http://www.opengis.net/gml" C: recursive="false"> C: <location C: profile="urn:ietf:params:lost:location-profile:basic-civic"> C: <p2:Point id="point1" srsName="epsg:4326"> C: <p2:coordinates>37:46:30N 122:25:10W</p2:coordinates> C: </p2:Point> C: </location> C: <service>urn:service:sos</service> C: </listServices> S: <?xml version="1.0" encoding="UTF-8"?><responseS: <listServicesResponse xmlns="urn:ietf:params:xml:ns:lost1"><status code="500">Server failure</status> </response>S: <serviceList> S: urn:service:sos.ambulance S: urn:service:sos.animal-control S: urn:service:sos.fire S: urn:service:sos.gas S: urn:service:sos.mountain S: urn:service:sos.marine S: urn:service:sos.physician S: urn:service:sos.poison S: urn:service:sos.police S: urn:service:sos.suicide S: </serviceList> S: </listServicesResponse> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 21] Internet-Draft LoSTSeptemberOctober 20069.Figure 11: ListService Query Example Hardie, et al. Expires April 25, 2007 [Page 22] Internet-Draft LoSTTransportOctober 2006 9. Location Profiles Currently, LoSTneeds an underlying protocol transport mechanisms to carryuses location information in <location> elements in requests and <serviceBoundary> elements in responses. Such location information may be expressed in a variety of ways. Thisdocument definesvariety can cause interoperability problems where a request or response contains location information in a format not understood by theuse ofserver or client, respectively. To achieve interoperability, LoSTover HTTPdefines two must-implement baseline location profiles to define the manner in which location information is transmitted andHTTP-over-TLS;makes it possible to standardize othermechanisms are leftprofiles in the future. The two baseline profiles are: geodetic-2d: a simple profile for two-dimensional geodetic location information, described in Section 9.2); civic: a profile consisting of civic address location information, described in Section 9.3. Requests and responses containing <location> or <serviceBoundary> elements MUST contain location information in exactly one of the two baseline profiles, in addition tofuture documents.zero or more additional profiles. Theavailable transport mechanisms are indicatedordering of location information indicates a preference on the part of the sender. Standards action may create other profiles. A location profile MUST define: 1. The token identifying it in the LoSTU-NAPTR DNS resource record. In protocols that support content type indication, LoST useslocation profile registry; 2. The formal definition of themedia type application/lost+xml. When using HTTP [14]XML to be used in requests, i.e., an enumeration andHTTP-over-TLS [15], LoST requests usedefinition of theHTTP POST method. All HTTP responses are applicable.XML child elements of the <location> element; 3. TheHTTP URLformal definition of the XML to be used in responses, i.e., an enumeration and definition of the XML child elements of the the <serviceBoundary> element; 4. The declaration of whether geodetic-2d or civic isderived fromto be used as the baseline profile. It is necessary to explicitly declare theLoST URL via U-NAPTR translation,baseline profile asdiscussedfuture profiles may be combinations of geodetic and civic location information. 9.1. Location Profile Usage A location profile is identified by a URN inSection 4.the urn:ietf:params:lost:location-profile registry. (Note that this is not an XML schema or namespace identifier.) Clients send location Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page22]23] Internet-Draft LoSTSeptemberOctober 200610.information compliant with a location profile, and servers respond with location information compliant with that same location profile. When a LoSTUniform Resource Locatorsclient sends a request which provides location information, it contains one or more <location> elements. Each of these elements contains location information compliant with a location profile and specifies which profile has been used in the 'profile' attribute. This allows the client to convey location information for multiple location profiles in the same request. When a LoSTUniform Resource Locators (URLs) followserver sends a response which contains location information, it uses theformat of URLs defined<serviceBoundary> elements much like the client uses the <location> elements. Each <serviceBoundary> element contains location information conformant to the location profile specified inRFC 3986 [9],the 'profile' attribute. This allows the server to send location information compliant with multiple location profiles. Using thefollowing ABNF: LoST-URI = "lost:" host 'host' islocation profiles defined inSection 3.2.2 of RFC 3986 [9]. An example is 'lost:lostserver.example.com' Hardie, et al. Expires March 8, 2007 [Page 23] Internet-Draft LoST September 2006 11. Example After performing link layer attachmentthis document, the following rules insure basic interoperatiblity between clients andend host performs stateful address autoconfiguration (in our example) using DHCP. Then, DHCP providesservers: 1. A client MUST be capable of understanding theend host withresponse for the baseline profiles it used in the request. 2. If a client sends location information conformant to any location profile other than geodetic-2d or civic, it MUST also send, in the same request, location information conformant to one of the baseline profiles. Otherwise, the server might not be able to understand the request. 3. Servers MUST implement the geodetic-2d and civic profiles. 4. A server ignores any locationas described in [19]. +--------+---------------+ | CAtype | CAvalue | +--------+---------------+ | 0 | US | | 1 | New York | | 3 | New York | | 6 | Broadway | | 22 | Suite 75 | | 24 | 10027-0401 | +--------+---------------+ Figure 14: DHCP Civic Information Example Additionally, DHCP may provideinformationabout the LoSTusing non-baseline profiles it does not understand. 5. If a server receives a request thatcan be contacted. Alternatively, an additional steponly contains location information using profiles it does not understand, the server responds with a <locationProfileError> (Section 10.2). These rules enable the use ofindirection is possible,location profiles not yet specified, while ensuring baseline interoperability. Take, forexample by having DHCP return a domain name thatexample, this scenario. Client X has had its firmware upgraded tobe resolvedsupport the uber-complex-3D location profile. Client X sends location information toone or more IP addresses hosting LoST servers. Both at attachment time and call time,Server Y, which does not understand theclient places a LoST request, including its civicuber-complex-3D locationandprofile. If Client X also sends location information using the geodetic-2D baseline profile, then Server Y will still be able to understand thedesired service. Therequest and provide an understandable response, though with location information that might not be as precise or expressive as desired. This isshown below: <?xml version="1.0" encoding="UTF-8"?> <findServiceByLocation xmlns="urn:ietf:params:xml:ns:lost1" validate="false" operation="recursive"> <locationInfo> <civicLocation> <country>US</country> <A1>New York</A1> <A3>New York</A3> <A6>Broadway</A6> <LOC>Suite 75</LOC> <PC>10027-0401</PC> </civicLocation> </locationInfo> <service>urn:service:sos.police</service> </findServiceByLocation> Mapping Requestpossible because Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page 24] Internet-Draft LoSTSeptemberOctober 2006Since the contacted LoST server has the requested information available the following response is returned. The <displayName> element indicates, as a human readable display string, that the 'New York City Police Department' is responsible for the given geographical area. The indicated URI allows the user to start communication using SIP or XMPP. The <validation> element indicates which parts of the civic address were matched successfully against a databaseboth Client X andrepresent a known address. Other parts of the address, here,Server Y understand thesuite number, were ignored and not validated.baseline profile. The<serviceBoundary> element indicates that all of New York City would result infollowing transaction, where thesame response. The <serviceNumber> element indicates thatXML sent by theservice can be reached viaclient is prepended with 'C:' and theemergency service number 911.XML sent by the server is prepended with 'S:', demonstrates this: C: <?xml version="1.0" encoding="UTF-8"?><response xmlns="urn:ietf:params:xml:ns:lost1"> <result status="200" message="OK" xml:lang="en" timeToLive="10000">C: <findService xmlns="urn:ietf:params:xml:ns:lost1" C: xmlns:p2="http://www.opengis.net/gml" C: recursive="true" include="uri serviceNumber"> C: <location C: profile="urn:ietf:params:lost:location-profile:geodetic-2d"> C: <p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG:4326"> C: <p2:pos>40.8089897 -73.9612492</p2:pos> C: </p2:Point> C: </location> C: <location C: profile=" C: urn:ietf:params:lost:location-profile:uber-complex-3d"> C: <p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG:4326"> C: <p2:pos>37.775 -122.422 25</p2:pos> C: </p2:Point> C: <p2:Polygon srsName="urn:ogc:def::crs:EPSG::4326"> C: <p2:exterior> C: <p2:LinearRing> C: <p2:pos>40.80 -73.96 24</p2:pos> C: <p2:pos>40.81 -73.95 27</p2:pos> C: <p2:pos>40.80 -73.96 24</p2:pos> C: </p2:LinearRing> C: </p2:exterior> C: </p2:Polygon> C: </location> C: <service>urn:service:sos.police</service> C: </findService> S: <?xml version="1.0" encoding="UTF-8"?> S: <findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1" S: xmlns:p2="http://www.opengis.net/" timeToLive="3600"> S: <locationProfileError S: unsupportedProfiles=" S: urn:ietf:params:lost:location-profile:uber-complex-3d" S: message="Too sophisticated for us." xml:lang="en"/> S: <displayName xml:lang="en"> S: New York City Police Department S: </displayName><service>unknown</service> <serviceBoundary> <civicLocation> <country>US</country> <A1>New York</A1> <A3>New York</A3> </civicLocation>S: <service>urn:service:sos.police</service> S: <serviceBoundary S: profile="urn:ietf:params:lost:location-profile:geodetic-2d"> Hardie, et al. Expires April 25, 2007 [Page 25] Internet-Draft LoST October 2006 S: <p2:Polygon srsName="urn:ogc:def::crs:EPSG::4326"> S: <p2:exterior> S: <p2:LinearRing> S: <p2:pos>40.701 -74.020</p2:pos> S: <p2:pos>40.876 -73.926</p2:pos> S: <p2:pos>40.797 -73.936</p2:pos> S: <p2:pos>40.714 -73.984</p2:pos> S: <p2:pos>40.701 -74.020</p2:pos> S: </p2:LinearRing> S: </p2:exterior> S: </p2:Polygon> S: </serviceBoundary> S: <uri>sip:nypd@example.com</uri><uri>xmpp:nypd@example.com</uri> <service-number>911</service-number> </result> </response> Mapping ResponseS: </findServiceResponse> Figure 12: Example of a findServices query with baseline profile interoperability 9.2. Two Dimensional Geodetic Profile The geodetic-2d location profile is identified by geodetic-2d. Clients use this profile by placing a GML [13] <position> element within the <location> element. This is defined by the 'point2D' pattern in the LoST schema (see Section 12). Servers use this profile by placing a GML [13] <Polygon> element within the <serviceBoundary> element. This is defined by the 'polygon' pattern in the LoST schema (see Section 12). 9.3. Basic Civic Profile The basic-civic location profile is identified by the token 'civic'. Clients use this profile by placing a <civicAddress> element, defined in [11], within the <location> element. Servers use this profile by placing a <civicAddress> element, defined in [11], within the <serviceBoundary> element. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page25]26] Internet-Draft LoSTSeptemberOctober 200612. Deployment Methods Because services for emergency contact resolution may differ depending10. Error Handling Errors are indicated by error-specific elements. Depending onlocal or service needs, this documentthe nature of the error, the error element may occur along with other response elements, indicating that the request was onlyspecifiespartially satisfied and that not all information in the"wire format" forrequest was processed correctly. Errors labeled as fatal means 10.1. Basic Errors LoSTservicesdefines a pattern for errors, defined as "errors" in the Relax NG schema. This pattern defines a 'message' attribute containing human readable text andexplicitly leaves openan 'xml:lang' attribute denoting thepossibility for many different typeslanguage ofdeployment. For instance: During discovery,the human readable text. LoST defines the following elements as following this pattern: badRequest The server could not parse or otherwise understand a request. This is aclient may be directed to issue all queries to antop-level element, and is returned if the server did not understand the outermost LoST XML element identifying the request. serviceSubstitution The server substituted one servicecompletely authoritativefor another. See Section 6.4.4. 10.2. Response Errors LoST defines agiven jurisdiction. A clientpattern for errors that maybe directed to issue queries to angenerated by referrent LoSTserver that acts as a reflector. In suchserves queried on behalf of seekers by acase, theresolving LoST server. This pattern builds on the basic errors pattern (Section 10.1). It also provides the option of specifying the source serveranalyzesusing the 'source' attribute, as well as specifying the queryto determinethat caused the error. LoST defines thebestfollowing elements as following this pattern: forbidden The server refused towhichsend an answer. notFound The server could not find an answer torefer the client. Ortheclient may be directed to aquery. serviceNotImplemented The requested service is not implemented. internalError The serverthat performs further resolution on behalf of the client. Acould not satisfy a request due to misconfiguration or other operational and non-protocol related reasons. Hardie, et al. Expires April 25, 2007 [Page 27] Internet-Draft LoSTservice may alsoOctober 2006 serverTimeout A time out occurred before an answer was received. serverError An answer was received but it could not berepresented by multiple LoST servers, either grouped togetherparsed orat multiple network locations. Using S-NAPTR [24], clients may beotherwise understood. locationProfileError A location profile in the query given is not recognized. The element may also have an 'unsupportedProfiles' attribute, which contains a whitespace separated list ofmultiple servers to which queries can be sent for a single service. For instance, the service at emergency.example.com may advertiseprofile URNs. See Section 9. 10.3. Redirects LoSTservice at local1.emergency.example.com, local2.emergency.example.com, and master.emergency.example.com. Each server may givendefines adifferent preference. In this case, 'local-1'pattern for redirect responses. This pattern builds on the basic error pattern (Section 10.1) and'local-2' may be given a lower preference (more preferred) than 'master', which might be a busier server or located further away. +-----------+ pref 10 +-----------+ | |-------------------->+ | | client |------ | local-1 | | |--- \ | | +-----------+ \ \ +-----------+ \ \ \ \ +-----------+ \ \ pref 10 | | \ --------->| local-2 | \ | | \ +-----------+ \ \ +-----------+ \ pref 20 | | ------------------------->| master |includes a 'url' attribute indicating the LoST URL that the client should be contacting next. Currently, LoST only defines the <redirect> element along this pattern. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page26]28] Internet-Draft LoSTSeptemberOctober 2006| | +-----------+11. LoST Transport LoST needs an underlying protocol transport mechanisms to carry requests and responses. This document defines the use of LoST over HTTP and HTTP-over-TLS; other 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 uses the media type application/ lost+xml. When using HTTP [3] and HTTP-over-TLS [5], LoST requests use the HTTP POST method. All HTTP responses are applicable. The HTTP URL is derived from the LoST URL via U-NAPTR application, as discussed in Section 5. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page27]29] Internet-Draft LoSTSeptemberOctober 200613.12. Relax NG Schema This section provides the Relax NG schema used by LoST protocol in the compact form. The verbose form is included in Appendix A. default namespace ="urn:ietf:params:xml:ns:lost1""http://www.opengis.net/gml" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace ns1 ="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr" namespace ns2 = "http://www.opengis.net/gml""urn:ietf:params:xml:ns:lost1" ## ## Location-to-Service Translation Protocol (LoST) ## ## A LoST XML instance has three"root" types:request types, each with ##the findServiceByLocation query, the listServices query,a cooresponding response type: find service, list services, ## andthe response to these queries.get service boundary. ## start =findServiceByLocationfindService | listServices |responsegetServiceBoundary | findServiceResponse | listServicesResponse | getServiceBoundaryResponse ## ## The queries. ## div { findService = element ns1:findService { query, attribute include { list { ("uri" | "serviceNumber" | "displayName" | "service" | "valid" | "invalid" | "unchecked" | "serviceBoundary" | "serviceBoundaryReference")* } >> a:defaultValue [ "uri serviceNumber" ] }? } Hardie, et al. Expires April 25, 2007 [Page 30] Internet-Draft LoST October 2006 listServices = element ns1:listServices { query } getServiceBoundary = element ns1:getServiceBoundary { serviceBoundaryKey, extensionPoint } } ## ## The responses. ## div { findServiceResponse = element ns1:findServiceResponse { via, ((locationProfileError?, serviceSubstitution?, serviceResult) | badRequest | internalError | forbidden | notFound | serviceNotImplemented | serverTimeout | serverError | movedPermenantly | movedTemporarily | iterativeSearchExhausted), extensionPoint } listServicesResponse = element ns1:listServicesResponse { via, ((locationProfileError?, element ns1:serviceList { list { xsd:anyURI* } })), extensionPoint } getServiceBoundaryResponse = element ns1:getServiceBoundaryResponse { (serviceBoundary | badRequest | internalError | forbidden | notFound), extensionPoint } } ## Hardie, et al. Expires April 25, 2007 [Page 31] Internet-Draft LoST October 2006 ##TheA pattern common to some of the queries. ## div {findServiceByLocationquery = elementfindServiceByLocationns1:location {query,locationInformation }+, element ns1:service { xsd:anyURI }?, extensionPoint, attributevalidaterecursive { xsd:boolean >> a:defaultValue ["false""true" ] }? }listServices## ## Location Information ## div { locationInformation =element listServicesextensionPoint+, attribute profile {queryxsd:anyURI } } ## ##The response.Service Boundary ## div {responseserviceBoundary = elementresponsens1:serviceBoundary { locationInformation }+ } ## ##2xx responses.Service Boundary Key ##(result | element serviceListdiv { serviceBoundaryKey = attribute key { xsd:string { pattern = "[a-zA-Z0-9/+=]+" } } } ## ## Via - list of places through which information flowed ## div { via = element ns1:via { xsd:anyURI }* } ## ## Time-to-live pattern ## div {xsd:anyURI* }, status })?,Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page28]32] Internet-Draft LoSTSeptemberOctober 2006## ## 3xx, 4xx, and 4xx responses. ## ((error | redirect | failure)?), extensionPointtimeToLive = attribute timeToLive { xsd:positiveInteger } } ## ##Query pattern.A QName list ## div {queryqnameList =element locationInfo { anyElement* }, element service { xsd:anyURI }, extensionPoint, [ a:defaultValue [ "recursive" ] ] attribute operationlist {text }?xsd:QName* } } ## ## A location-to-service result. ## div {## ## 2xx response. ## resultserviceResult = elementresult { element displayNamens1:displayName { xsd:string, attribute xml:lang { xsd:language } }?, elementservicens1:service { xsd:anyURI},}?, (serviceBoundary | elementserviceBoundaryns1:serviceBoundaryReference {(civicLocation, polygon?) | (civicLocation?, polygon) }?,serviceBoundaryKey })?, elementurins1:uri { xsd:anyURI}+,}*, elementserviceNumberns1:serviceNumber { xsd:string { pattern = "[0-9]+" } }?, elementvalidationns1:valid {listqnameList }?, element ns1:invalid {xsd:QName* }qnameList }?, element ns1:unchecked { qnameList }?, extensionPoint, timeToLive, message } ## ## Basic Errors ## div { ## ## Error pattern. ## error = message, extensionPoint badRequest = element ns1:badRequest { error } internalError = element ns1:internalError { error } serviceSubstitution = element ns1:serviceSubstitution { error } } Hardie, et al. Expires April 25, 2007 [Page 33] Internet-Draft LoST October 2006 ## ## Recursion Errors. ## div { ## ## Recursion error. ## recursionError = attribute failedReferral { xsd:anyURI }?, (findService | listServices | getServiceBoundary)?, error forbidden = element ns1:forbidden { recursionError }, timeToLive notFound = element ns1:notFound { recursionError }, timeToLive serviceNotImplemented = element ns1:serviceNotImplemented { recursionError }, timeToLive serverTimeout = element ns1:serverTimeout { recursionError }, timeToLive serverError = element ns1:serverError { recursionError }, timeToLive locationProfileError = element ns1:locationProfileError { attributetimeToLiveunsupportedProfiles {xsd:positiveIntegerlist { xsd:anyURI* } },statusrecursionError }Hardie, et al. Expires March 8, 2007 [Page 29] Internet-Draft LoST September 2006} ## ##Non-result responses.Redirects. ## div { ## ##5xx response. ## error = element error { status, extensionPoint } ## ## 3xx response.Redirect pattern ## redirect =element redirect { status,attribute redirect { xsd:anyURI },extensionPoint } ## ## 4xx response. ## failureerror movedPermenantly = elementfailurens1:movedPermanently {status,redirect } Hardie, et al. Expires April 25, 2007 [Page 34] Internet-Draft LoST October 2006 movedTemporarily = elementcause { attribute namens1:movedTemporarily {xsd:QNameredirect },attribute messagetimeToLive iterativeSearchExhausted = element ns1:iterativeSearchExhausted {xsd:stringredirect },attribute xml:lang { xsd:language } }*, extensionPoint }timeToLive } ## ##StatusMessage pattern. ## div {statusmessage =attribute status { xsd:positiveInteger }, attribute extendedStatus { xsd:positiveInteger }?,(attribute message { xsd:string }, attribute xml:lang { xsd:language })? }Hardie, et al. Expires March 8, 2007 [Page 30] Internet-Draft LoST September 2006## ## Patterns for inclusion of elements from schemas in ## other namespaces. ## div { ## ## Any element not in the LoST namespace. ## notLost = element * - (ns1:* | ns1:*) { anyElement } ## ## A wildcard pattern for including any element ## from any other namespace. ## anyElement =element(element * {(attributeanyElement } | attribute * { text } |text | anyElement)* }text)* ## ## A point where future extensions ## (elements from othernamesapces)namespaces) ## can be added. ## extensionPoint =anyElement*notLost* ## ## Apattern to include the GEOPRIV civil location elements.2D point from GML. ##civicAddresspoint2d = Hardie, et al. Expires April 25, 2007 [Page 35] Internet-Draft LoST October 2006 elementns1:*position {(attribute *element Point { attribute srsName { "urn:ogc:def:crs:EPSG:4326" }, element pos { text }| text | anyElement)*} } ## ## Adefinition of civic locationLinear Ring fromGEOPRIV.GML. ##civicLocationlinearRing = elementcivicLocationLinearRing { element pos {civicAddress*, anyElement*text } } ## ## Apattern to include GML elements.Polygon from GML. ##GMLpolygon = elementns2:*Polygon {(attribute *attribute srsName {text } | text | anyElement)* } Hardie, et al. Expires March 8, 2007 [Page 31] Internet-Draft LoST September 2006 polygon ="urn:ogc:def:crs:EPSG:4979" }, elementns2:Polygonexterior {attribute *linearRing }, element interior {text }*, GMLlinearRing }* } } Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page32]36] Internet-Draft LoSTSeptemberOctober 200614.13. Internationalization Considerations This mechanism is largely for passing protocol information from one subsystem to another; as such, most of its elements are tokens not meant for direct human consumption. If these tokens are presented to the end user, some localization may need to occur. The content of the <displayName> element and the 'message' attributes may be displayed to the end user, andit isthey are thus a complextypetypes designed for this purpose. LoST exchanges information using XML. All XML processors are required to understand UTF-8 and UTF-16 encodings, and therefore all LoST clients and servers MUST understand UTF-8 and UTF-16 encoded XML. Additionally, LoST servers and clients MUST NOT encode XML with encodings other than UTF-8 or UTF-16. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page33]37] Internet-Draft LoSTSeptemberOctober 200615.14. IANA Considerations15.1.14.1. U-NAPTR Registrations This document registers the following U-NAPTR application service tag: Application Service Tag: LoST Defining Publication: The specification contained within this document. This document registers the following U-NAPTR application protocol tags: o Application Protocol Tag: http Defining Publication: RFC 2616 [3] o Application Protocol Tag: https Defining Publication: RFC 2818 [5] 14.2. Content-type registration for 'application/lost+xml' This specification requests the registration of a new MIME type according to the procedures of RFC 4288[13][9] and guidelines in RFC 3023[12].[6]. MIME media type name: application MIME subtype name: lost+xml Mandatory parameters: none Optional parameters: charset Indicates the character encoding of enclosed XML. Hardie, et al. Expires April 25, 2007 [Page 38] Internet-Draft LoST October 2006 Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023[12],[6], Section 3.2. Security considerations: This content type is designed to carry LoST protocol payloads. Interoperability considerations: None Published specification: RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this specification.] this document Applications which use this media type: Emergency and Location-based SystemsHardie, et al. Expires March 8, 2007 [Page 34] Internet-Draft LoST September 2006Additional information: Magic Number: None File Extension: .lostxml Macintosh file type code: 'TEXT' Personal and email address for further information: Hannes Tschofenig, Hannes.Tschofenig@siemens.com Intended usage: LIMITED USE Author: This specification is a work item of the IETF ECRIT working group, with mailing list address <ecrit@ietf.org>. Hardie, et al. Expires April 25, 2007 [Page 39] Internet-Draft LoST October 2006 Change controller: The IESG <iesg@ietf.org>15.2.14.3. LoST Relax NG Schema Registration URI: urn:ietf:params:xml:ns:lost Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig (Hannes.Tschofenig@siemens.com). Relax NG Schema: The Relax NG schema to be registered is contained in Section13.12. Its first line is default namespace = "urn:ietf:params:xml:ns:lost1" and its last line is }Hardie, et al. Expires March 8, 2007 [Page 35] Internet-Draft LoST September 2006 15.3.14.4. LoST Namespace Registration URI: urn:ietf:params:xml:ns:lost Registrant Contact: IETF ECRIT Working Group, Hannes Tschofenig (Hannes.Tschofenig@siemens.com). XML: BEGIN <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>LoST Namespace</title> </head> <body> <h1>Namespace for LoST</h1> <h2>urn:ietf:params:xml:ns:lost</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> Hardie, et al. Expires April 25, 2007 [Page 40] Internet-Draft LoST October 2006 END15.4.14.5. Registration Template This registration template is in accordance with[8].[4]. URL scheme name: lost URL scheme syntax: See Section105 Character encoding considerations: See Section10 Hardie, et al. Expires March 8, 2007 [Page 36] Internet-Draft LoST September 20065 Intended Use: The intended usage is described in this document. Application and protocols which use this scheme: The usage of the LoST URL scheme is targeted for this document and hence for location-based services that make use of the mapping protocol specified in this document. Interoperability considerations: None Security considerations: See Section1615 Relevant publications: This document provides the relevant context for this URL scheme. Hardie, et al. Expires April 25, 2007 [Page 41] Internet-Draft LoST October 2006 Contact: Hannes Tschofenig, Hannes.Tschofenig@siemens.com Author/Change controller: The IESG <iesg@ietf.org> 14.6. LoST Location Profile Registry This document seeks to create a registry of location profile names for the LoST protocol. Profile names are XML tokens. This registry will operate in accordance with RFC 2434 [2], Standards Action. geodetic-2d: Defined in TBD civic: Defined in TBD Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page37]42] Internet-Draft LoSTSeptemberOctober 200616.15. Security Considerations There are multiple threats to the overall system of which service mapping forms a part. An attacker that can obtain service contact URIs can use those URIs to attempt to disrupt those services. An attacker that can prevent the lookup of contact URIs can impair the reachability of such services. An attacker that can eavesdrop on the communication requesting this lookup can surmise the existence of an emergency and possibly its nature, and may be able to use this to launch a physical attack on the caller. To avoid that an attacker can modify the query or its result, theauthors RECOMMEND theuse ofchannelchannels security, such as TLS,with LoST.is RECOMMENDED. A more detailed description of threats and security requirements are provided in[4].[17]. Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page38]43] Internet-Draft LoSTSeptemberOctober 200617.16. Acknowledgments [Editor's Note: Names need to be added here. Forgot it...Sorry.] Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page39]44] Internet-Draft LoSTSeptemberOctober 200618.17. Open Issues Please find open issues at: http://www.ietf-ecrit.org:8080/lost/ Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page40]45] Internet-Draft LoSTSeptemberOctober 200619.18. References19.1.18.1. Normative References [1]World Wide Web Consortium, "XML Schema Part 2: Datatypes", W3C XML Schema, October 2000, <http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>. [2] World Wide Web Consortium, "XML Schema Part 1: Structures", W3C XML Schema, October 2000, <http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>. [3]Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC2119, March 1997. [4] Taylor, T., "Security Threats and Requirements for Emergency Call Marking and Mapping", draft-ietf-ecrit-security-threats-03 (work in progress), July 2006. [5] Schulzrinne, H. and R. Marshall, "Requirements for Emergency Context Resolution with Internet Technologies", draft-ietf-ecrit-requirements-12 (work in progress), August 2006. [6] Schulzrinne, H., "A Uniform Resource Name (URN)2119, March 1997. [2] Narten, T. and H. Alvestrand, "Guidelines forServices", draft-ietf-ecrit-service-urn-05 (work in progress), August 2006. [7] Mealling, M., "The IETF XML Registry", draft-mealling-iana-xmlns-registry-05 (workWriting an IANA Considerations Section inprogress),RFCs", BCP 26, RFC 2434, October 1998. [3] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June2003. [8]1999. [4] Petke, R. and I. King, "Registration Procedures for URL Scheme Names", BCP 35, RFC 2717, November 1999.[9][5] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [6] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. [7] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.[10] OpenGIS, "Open Geography Markup Language (GML) Implementation Specification", OGC OGC 02-023r4, January 2003. [11][8] Peterson, J., "A Presence-based GEOPRIV Location Object Format", RFC 4119, December 2005.[12] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. Hardie, et al. Expires March 8, 2007 [Page 41] Internet-Draft LoST September 2006 [13][9] Freed, N. and J. Klensin, "Media Type Specifications and Registration Procedures", BCP 13, RFC 4288, December 2005.[14] Fielding, R., Gettys, J., Mogul, J., Frystyk,[10] Schulzrinne, H.,Masinter,"A Uniform Resource Name (URN) for Services", draft-ietf-ecrit-service-urn-05 (work in progress), August 2006. [11] Thomson, M. and J. Winterbottom, "Revised Civic Location Format for PIDF-LO", draft-ietf-geopriv-revised-civic-lo-04 (work in progress), September 2006. [12] Daigle, L.,Leach, P.,"Domain-based Application Service Location Using URIs andT. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616,the Dynamic Delegation Discovery Service (DDDS)", draft-daigle-unaptr-00 (work in progress), June1999. [15] Rescorla, E., "HTTP Over TLS",2006. [13] OpenGIS, "Open Geography Markup Language (GML) Implementation Specification", OGC OGC 02-023r4, January 2003. Hardie, et al. Expires April 25, 2007 [Page 46] Internet-Draft LoST October 2006 18.2. Informative References [14] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC2818, May 2000. [16] Thomson, M.3261, June 2002. [15] Saint-Andre, P., Ed., "Extensible Messaging andJ. Winterbottom, "Revised Civic Location Format for PIDF-LO", draft-ietf-geopriv-revised-civic-lo-02 (work in progress), April 2006. [17] Daigle, L., "Domain-based Application Service Location Using URIsPresence Protocol (XMPP): Instant Messaging andthe Dynamic Delegation Discovery Service (DDDS)", draft-daigle-unaptr-00 (work in progress), June 2006. 19.2. Informative References [18]Presence", RFC 3921, October 2004. [16] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, December 2004.[19][17] Taylor, T., "Security Threats and Requirements for Emergency Call Marking and Mapping", draft-ietf-ecrit-security-threats-03 (work in progress), July 2006. [18] Schulzrinne,H., "Dynamic Host Configuration Protocol (DHCPv4H. andDHCPv6) OptionR. Marshall, "Requirements forCivic Addresses Configuration Information", draft-ietf-geopriv-dhcp-civil-09Emergency Context Resolution with Internet Technologies", draft-ietf-ecrit-requirements-12 (work in progress),JanuaryAugust 2006.[20][19] Schulzrinne, H., "Location-to-URL Mapping Architecture and Framework", draft-ietf-ecrit-mapping-arch-00 (work in progress), August 2006.[21][20] Rosen, B. and J. Polk, "Best Current Practice for Communications Services in support of Emergency Calling",draft-rosen-sos-phonebcp-01 (work in progress), June 2006. [22] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [23] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", draft-ietf-mmusic-ice-10draft-ietf-ecrit-phonebcp-00 (work in progress),AugustOctober 2006.[24] Daigle, L. andHardie, et al. Expires April 25, 2007 [Page 47] Internet-Draft LoST October 2006 Appendix A.Newton, "Domain-Based Application Service Location Using SRV RRsNon-Normative RELAX NG Schema in XML Syntax <?xml version="1.0" encoding="UTF-8"?> <grammar ns="urn:ietf:params:xml:ns:lost1" 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"> <start> <a:documentation> Location-to-Service Translation Protocol (LoST) A LoST XML instance has three request types, each with a cooresponding response type: find service, list services, andthe Dynamic Delegation Discovery Service (DDDS)", RFC 3958, January 2005.get service boundary. </a:documentation> <choice> <ref name="findService" /> <ref name="listServices" /> <ref name="getServiceBoundary" /> <ref name="findServiceResponse" /> <ref name="listServicesResponse" /> <ref name="getServiceBoundaryResponse" /> </choice> </start> <div> <a:documentation> The queries. </a:documentation> <define name="findService"> <element name="findService"> <ref name="query" /> <optional> <attribute name="include"> <list> <zeroOrMore> <choice> <value>uri</value> <value>serviceNumber</value> <value>displayName</value> <value>service</value> <value>valid</value> <value>invalid</value> <value>unchecked</value> <value>serviceBoundary</value> Hardie, et al. Expires April 25, 2007 [Page 48] Internet-Draft LoST October 2006 <value>serviceBoundaryReference</value> </choice> </zeroOrMore> </list> <a:defaultValue>uri serviceNumber</a:defaultValue> </attribute> </optional> </element> </define> <define name="listServices"> <element name="listServices"> <ref name="query" /> </element> </define> <define name="getServiceBoundary"> <element name="getServiceBoundary"> <ref name="serviceBoundaryKey" /> <ref name="extensionPoint" /> </element> </define> </div> <div> <a:documentation> The responses. </a:documentation> <define name="findServiceResponse"> <element name="findServiceResponse "> <ref name="via" /> <choice> <group> <optional> <ref name="locationProfileError"/> </optional> <optional> <ref name="serviceSubstitution"/> </optional> <ref name="serviceResult" /> </group> <ref name="badRequest"/> <ref name="internalError"/> <ref name="forbidden"/> <ref name="notFound"/> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page42]49] Internet-Draft LoSTSeptemberOctober 2006Appendix A. Non-Normative RELAX NG Schema in XML Syntax <?xml version="1.0" encoding="UTF-8"?> <grammar ns="urn:ietf:params:xml:ns:lost1" 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"> <start><ref name="serviceNotImplemented"/> <ref name="serverTimeout"/> <ref name="serverError"/> <ref name="movedPermenantly"/> <ref name="movedTemporarily"/> <ref name="iterativeSearchExhausted"/> </choice> <ref name="extensionPoint" /> </element> </define> <define name="listServicesResponse"> <element name="listServicesResponse"> <ref name="via" /> <choice> <group> <optional> <ref name="locationProfileError"/> </optional> <element name="serviceList"> <list> <zeroOrMore> <data type="anyURI" /> </zeroOrMore> </list> </element> </group> </choice> <ref name="extensionPoint" /> </element> </define> <define name="getServiceBoundaryResponse"> <element name="getServiceBoundaryResponse"> <choice> <group> <ref name="serviceBoundary"/> </group> <ref name="badRequest"/> <ref name="internalError"/> <ref name="forbidden"/> <ref name="notFound"/> </choice> <ref name="extensionPoint" /> </element> </define> Hardie, et al. Expires April 25, 2007 [Page 50] Internet-Draft LoST October 2006 </div> <div> <a:documentation>Location-to-Service Translation Protocol (LoST)ALoST XML instance has three "root" types: the findServiceByLocation query, the listServices query, and the responsepattern common tothesesome of the queries. </a:documentation><choice><define name="query"> <oneOrMore> <element name="location"> <refname="findServiceByLocation"name="locationInformation" /> </element> </oneOrMore> <optional> <element name="service"> <data type="anyURI"/> </element> </optional> <refname="listServices"name="extensionPoint" /> <optional> <attribute name="recursive"> <data type="boolean" /> <a:defaultValue>true</a:defaultValue> </attribute> </optional> </define> </div> <div> <a:documentation> Location Information </a:documentation> <define name="locationInformation"> <oneOrMore> <refname="response"name="extensionPoint"/> </oneOrMore> <attribute name="profile"> <data type="anyURI" /></choice> </start></attribute> </define> </div> <div> <a:documentation>The queries.Service Boundary </a:documentation> Hardie, et al. Expires April 25, 2007 [Page 51] Internet-Draft LoST October 2006 <define name="serviceBoundary"> <oneOrMore> <element name="serviceBoundary"> <ref name="locationInformation" /> </element> </oneOrMore> </define> </div> <div> <a:documentation> Service Boundary Key </a:documentation> <define name="serviceBoundaryKey"> <attribute name="key"> <data type="string"> <param name="pattern">[a-zA-Z0-9/+=]+</param> </data> </attribute> </define> </div> <div> <a:documentation> Via - list of places through which information flowed </a:documentation> <define name="via"> <zeroOrMore> <element name="via"> <data type="anyURI"/> </element> </zeroOrMore> </define> </div> <div> <a:documentation> Time-to-live pattern </a:documentation> <definename="findServiceByLocation"> <element name="findServiceByLocation"> <ref name="query" /> <optional>name="timeToLive"> <attributename="validate">name="timeToLive"> <datatype="boolean" /> <a:defaultValue>false</a:defaultValue>type="positiveInteger"/> </attribute></optional> </element> </define> <define name="listServices"> <element name="listServices"> <ref name="query" /> </element></define> </div> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page43]52] Internet-Draft LoSTSeptemberOctober 2006 <div> <a:documentation>The response.A QName list </a:documentation> <define name="qnameList"> <list> <zeroOrMore> <data type="QName"/> </zeroOrMore> </list> </define> </div> <div> <a:documentation> A location-to-service result. </a:documentation> <definename="response">name="serviceResult"> <optional> <element name="displayName"> <data type="string"/> <attribute name="xml:lang"> <data type="language"/> </attribute> </element> </optional> <optional> <elementname="response">name="service"> <data type="anyURI"/> </element> </optional> <optional> <choice><a:documentation> 2xx responses. </a:documentation><refname="result" />name="serviceBoundary"/> <elementname="serviceList"> <list>name="serviceBoundaryReference"> <ref name="serviceBoundaryKey"/> </element> </choice> </optional> <zeroOrMore> <element name="uri"> <datatype="anyURI" />type="anyURI"/> </element> </zeroOrMore></list> <ref name="status" /><optional> <element name="serviceNumber"> Hardie, et al. Expires April 25, 2007 [Page 53] Internet-Draft LoST October 2006 <data type="string"> <param name="pattern">[0-9]+</param> </data> </element></choice></optional> <optional><a:documentation> 3xx, 4xx, and 4xx responses. </a:documentation> <choice> <ref name="error" /><element name="valid"> <refname="redirect"name="qnameList" /> </element> </optional> <optional> <element name="invalid"> <refname="failure"name="qnameList" /></choice></element> </optional> <optional> <element name="unchecked"> <refname="extensionPoint"name="qnameList" /> </element> </optional> <ref name="extensionPoint"/> <ref name="timeToLive"/> <ref name="message"/> </define> </div> <div> <a:documentation>QueryBasic Errors </a:documentation> <define name="error"> <a:documentation> Error pattern. </a:documentation> <ref name="message"/> <ref name="extensionPoint" /> </define> <definename="query">name="badRequest"> <elementname="locationInfo"> <zeroOrMore>name="badRequest"> <refname="anyElement"/>name="error"/> </element> </define> <define name="internalError"> <element name="internalError"> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page44]54] Internet-Draft LoSTSeptemberOctober 2006</zeroOrMore><ref name="error"/> </element> </define> <define name="serviceSubstitution"> <elementname="service"> <data type="anyURI"/> </element>name="serviceSubstitution"> <refname="extensionPoint" /> <optional> <attribute name="operation"> <a:defaultValue>recursive</a:defaultValue> </attribute> </optional>name="error"/> </element> </define> </div> <div> <a:documentation>A result.Recursion Errors. </a:documentation> <definename="result">name="recursionError"> <a:documentation>2xx response.Recursion error. </a:documentation><element name="result"><optional><element name="displayName"> <data type="string"/><attributename="xml:lang">name="failedReferral"> <datatype="language" />type="anyURI"/> </attribute></element></optional><element name="service"> <data type="anyURI"/> </element><optional><element name="serviceBoundary"><choice><group><refname="civicLocation"name="findService" /><optional><refname="polygon"name="listServices" /></optional> </group> <group> <optional><refname="civicLocation"name="getServiceBoundary" /> </choice> </optional> <ref name="error"/> </define> <define name="forbidden"> <element name="forbidden"> <ref name="recursionError"/> </element> <ref name="timeToLive"/> </define> <define name="notFound"> <element name="notFound"> <ref name="recursionError"/> </element> <ref name="timeToLive"/> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page45]55] Internet-Draft LoSTSeptemberOctober 2006</optional></define> <define name="serviceNotImplemented"> <element name="serviceNotImplemented"> <refname="polygon" /> </group> </choice>name="recursionError"/> </element></optional> <oneOrMore><ref name="timeToLive"/> </define> <define name="serverTimeout"> <elementname="uri"> <data type="anyURI"/>name="serverTimeout"> <ref name="recursionError"/> </element></oneOrMore> <optional><ref name="timeToLive"/> </define> <define name="serverError"> <elementname="serviceNumber"> <data type="string"> <param name="pattern">[0-9]+</param> </data>name="serverError"> <ref name="recursionError"/> </element></optional> <optional><ref name="timeToLive"/> </define> <define name="locationProfileError"> <elementname="validation">name="locationProfileError"> <attribute name="unsupportedProfiles"> <list> <zeroOrMore> <datatype="QName"/> </zeroOrMore> </list> </element> </optional> <ref name="extensionPoint" /> <attribute name="timeToLive"> <data type="positiveInteger"/>type="anyURI"/> </zeroOrMore> </list> </attribute> <refname="status" />name="recursionError"/> </element> </define> </div> <div> <a:documentation>Non-result responses.Redirects. </a:documentation> <definename="error">name="redirect"> <a:documentation>5xx response.Redirect pattern </a:documentation><element name="error"> <ref name="status"/><attribute name="redirect"> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page46]56] Internet-Draft LoSTSeptemberOctober 2006 <data type="anyURI"/> </attribute> <refname="extensionPoint" />name="error"/> </define> <define name="movedPermenantly"> <element name="movedPermanently"> <ref name="redirect"/> </element> </define> <definename="redirect"> <a:documentation> 3xx response. </a:documentation>name="movedTemporarily"> <elementname="redirect">name="movedTemporarily"> <refname="status"/> <attribute name="redirect"> <data type="anyURI"/> </attribute>name="redirect"/> </element> <refname="extensionPoint"name="timeToLive" /></element></define> <definename="failure"> <a:documentation> 4xx response. </a:documentation>name="iterativeSearchExhausted"> <elementname="failure">name="iterativeSearchExhausted"> <refname="status"/> <zeroOrMore> <element name="cause"> <attribute name="name"> <data type="QName"/> </attribute> <attribute name="message"> <data type="string"/> </attribute> <attribute name="xml:lang"> <data type="language"/> </attribute>name="redirect"/> </element></zeroOrMore><refname="extensionPoint"name="timeToLive" /></element></define> </div> <div> <a:documentation>StatusMessage pattern. </a:documentation> <definename="status"> Hardie, et al. Expires March 8, 2007 [Page 47] Internet-Draft LoST September 2006 <attribute name="status"> <data type="positiveInteger"/> </attribute> <optional> <attribute name="extendedStatus"> <data type="positiveInteger"/> </attribute> </optional>name="message"> <optional> <group> <attribute name="message"> <data type="string"/> </attribute> <attribute name="xml:lang"> <data type="language"/> </attribute> </group> </optional> </define> </div> <div> Hardie, et al. Expires April 25, 2007 [Page 57] Internet-Draft LoST October 2006 <a:documentation> Patterns for inclusion of elements from schemas in other namespaces. </a:documentation> <define name="notLost"> <a:documentation> Any element not in the LoST namespace. </a:documentation> <element> <anyName> <except> <nsName ns="urn:ietf:params:xml:ns:lost1"/> <nsName/> </except> </anyName> <ref name="anyElement"/> </element> </define> <define name="anyElement"> <a:documentation> A wildcard pattern for including any element from any other namespace. </a:documentation><element> <anyName/><zeroOrMore> <choice> <element> <anyName/> <ref name="anyElement"/> </element> <attribute> <anyName/> </attribute> <text/><ref name="anyElement"/></choice> </zeroOrMore></element></define> <define name="extensionPoint">Hardie, et al. Expires March 8, 2007 [Page 48] Internet-Draft LoST September 2006<a:documentation> A point where future extensions (elements from other namespaces) can be added. </a:documentation> <zeroOrMore> <refname="anyElement"name="notLost" /> Hardie, et al. Expires April 25, 2007 [Page 58] Internet-Draft LoST October 2006 </zeroOrMore> </define> <definename="civicAddress">name="point2d"> <a:documentation> Apattern to include the GEOPRIV civil location elements.2D point from GML. </a:documentation><element> <nsName ns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"/> <zeroOrMore> <choice> <attribute> <anyName/><element name="position" ns="http://www.opengis.net/gml"> <element name="Point"> <attribute name="srsName"> <value>urn:ogc:def:crs:EPSG:4326</value> </attribute> <element name="pos"> <text/><ref name="anyElement"/> </choice> </zeroOrMore></element> </element> </element> </define> <definename="civicLocation">name="linearRing"> <a:documentation> Adefinition of civic locationLinear Ring fromGEOPRIV.GML. </a:documentation> <elementname="civicLocation"> <zeroOrMore> <ref name="civicAddress"/> </zeroOrMore> <zeroOrMore> <ref name="anyElement" /> </zeroOrMore>name="LinearRing" ns="http://www.opengis.net/gml"> <element name="pos"> <text/> </element> </element> </define> <definename="GML">name="polygon"> <a:documentation> Apattern to include GML elements.Polygon from GML. </a:documentation><element> <nsName ns="http://www.opengis.net/gml" /><element name="Polygon" ns="http://www.opengis.net/gml"> <attribute name="srsName"> <value>urn:ogc:def:crs:EPSG:4979</value> </attribute> <element name="exterior"> <ref name="linearRing"/> </element> <zeroOrMore> <element name="interior"> <ref name="linearRing"/> </element> </zeroOrMore> </element> </define> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page49]59] Internet-Draft LoSTSeptemberOctober 2006<zeroOrMore> <choice> <attribute> <anyName/> </attribute> <text/> <ref name="anyElement" /> </choice> </zeroOrMore> </element> </define> <define name="polygon"> <element name="Polygon" ns="http://www.opengis.net/gml"> <zeroOrMore> <attribute> <anyName/> </attribute> </zeroOrMore> <ref name="GML"/> </element> </define></div> </grammar> Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page50]60] Internet-Draft LoSTSeptemberOctober 2006 Authors' Addresses Ted Hardie Qualcomm, Inc. Email: hardie@qualcomm.com Andrew Newton SunRocket 8045 Leesburg Pike, Suite 300 Vienna, VA 22182 US Phone: +1 703 636 0852 Email: andy@hxr.us Henning Schulzrinne Columbia University Department of Computer Science 450 Computer Science Building New York, NY 10027 US Phone: +1 212 939 7004 Email: hgs+ecrit@cs.columbia.edu URI: http://www.cs.columbia.edu Hannes Tschofenig Siemens Otto-Hahn-Ring 6 Munich, Bavaria 81739 Germany Phone: +49 89 636 40390 Email: Hannes.Tschofenig@siemens.com URI: http://www.tschofenig.com Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page51]61] Internet-Draft LoSTSeptemberOctober 2006 Full Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Hardie, et al. ExpiresMarch 8,April 25, 2007 [Page52]62] ----