Internet DRAFT - draft-doran-geopriv-proto-map

draft-doran-geopriv-proto-map






GEOPRIV                                                         K. Doran
Internet-Draft                                                 R. Barnes
Intended status: Informational                          BBN Technologies
Expires: September 10, 2010                                March 9, 2010


               A Common Framework for Location Protocols
                    draft-doran-geopriv-proto-map-01

Abstract

   There are currently several protocols developed by different
   standards organizations that implement a basic design pattern where a
   client requests location from a location server and the server
   responds with location information.  This document defines the Common
   Location Interoperability Framework (CLIF), a general data model for
   such protocols, and describes how some existing geolocation protocols
   can be mapped into this unified model.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on September 10, 2010.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal



Doran & Barnes         Expires September 10, 2010               [Page 1]

Internet-Draft                    CLIF                        March 2010


   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the BSD License.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Data Model Overview  . . . . . . . . . . . . . . . . . . . . .  5
   4.  Request parameters . . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  General  . . . . . . . . . . . . . . . . . . . . . . . . .  6
       4.1.1.  Callback . . . . . . . . . . . . . . . . . . . . . . .  6
       4.1.2.  Language . . . . . . . . . . . . . . . . . . . . . . .  6
       4.1.3.  Response Accuracy  . . . . . . . . . . . . . . . . . .  7
       4.1.4.  Response Age . . . . . . . . . . . . . . . . . . . . .  7
       4.1.5.  Response Time  . . . . . . . . . . . . . . . . . . . .  7
       4.1.6.  Response Location Type . . . . . . . . . . . . . . . .  7
     4.2.  Identifiers  . . . . . . . . . . . . . . . . . . . . . . .  8
       4.2.1.  Unique Identifier (UID)  . . . . . . . . . . . . . . .  9
       4.2.2.  Network Access Identifier (NAI)  . . . . . . . . . . .  9
       4.2.3.  Network Access Password  . . . . . . . . . . . . . . .  9
       4.2.4.  Group Identifier . . . . . . . . . . . . . . . . . . .  9
       4.2.5.  IP Address . . . . . . . . . . . . . . . . . . . . . .  9
       4.2.6.  MAC Address  . . . . . . . . . . . . . . . . . . . . . 10
       4.2.7.  Port Number  . . . . . . . . . . . . . . . . . . . . . 10
       4.2.8.  URI  . . . . . . . . . . . . . . . . . . . . . . . . . 10
       4.2.9.  Fully Qualified Domain Name  . . . . . . . . . . . . . 10
       4.2.10. Telephony  . . . . . . . . . . . . . . . . . . . . . . 10
         4.2.10.1.  Mobile Station International Subscriber Dial
                    Number (MSISDN) . . . . . . . . . . . . . . . . . 11
         4.2.10.2.  International Mobile Subscriber Identity
                    (IMSI)  . . . . . . . . . . . . . . . . . . . . . 11
         4.2.10.3.  International Mobile Equipment Identifier
                    (IMEI)  . . . . . . . . . . . . . . . . . . . . . 11
         4.2.10.4.  Mobile Identification Number (MIN)  . . . . . . . 11
         4.2.10.5.  Mobile Directory Number (MDN) . . . . . . . . . . 11
         4.2.10.6.  Home Mobile Country Code  . . . . . . . . . . . . 11
         4.2.10.7.  Home Mobile Network Code  . . . . . . . . . . . . 12
     4.3.  Measurement  . . . . . . . . . . . . . . . . . . . . . . . 12
       4.3.1.  Timestamp  . . . . . . . . . . . . . . . . . . . . . . 12
       4.3.2.  Expires  . . . . . . . . . . . . . . . . . . . . . . . 12
       4.3.3.  Samples  . . . . . . . . . . . . . . . . . . . . . . . 12



Doran & Barnes         Expires September 10, 2010               [Page 2]

Internet-Draft                    CLIF                        March 2010


       4.3.4.  WifiMeasurement  . . . . . . . . . . . . . . . . . . . 12
         4.3.4.1.   NIC Type  . . . . . . . . . . . . . . . . . . . . 13
         4.3.4.2.   Wireless Access Point (WAP) . . . . . . . . . . . 13
       4.3.5.  CellularMeasurement  . . . . . . . . . . . . . . . . . 15
         4.3.5.1.   Radio Type  . . . . . . . . . . . . . . . . . . . 15
         4.3.5.2.   Carrier . . . . . . . . . . . . . . . . . . . . . 15
         4.3.5.3.   Cellular Tower  . . . . . . . . . . . . . . . . . 15
       4.3.6.  WiMAX  . . . . . . . . . . . . . . . . . . . . . . . . 17
       4.3.7.  GNSS . . . . . . . . . . . . . . . . . . . . . . . . . 17
       4.3.8.  w16e . . . . . . . . . . . . . . . . . . . . . . . . . 17
     4.4.  Other parameters . . . . . . . . . . . . . . . . . . . . . 17
   5.  Response parameters  . . . . . . . . . . . . . . . . . . . . . 17
     5.1.  General parameters . . . . . . . . . . . . . . . . . . . . 17
       5.1.1.  Message  . . . . . . . . . . . . . . . . . . . . . . . 17
       5.1.2.  Age  . . . . . . . . . . . . . . . . . . . . . . . . . 18
       5.1.3.  Unique Identifer (UID) . . . . . . . . . . . . . . . . 18
     5.2.  Location Reference . . . . . . . . . . . . . . . . . . . . 18
     5.3.  Location Oject [PIDF-LO] . . . . . . . . . . . . . . . . . 18
       5.3.1.  Geodetic location  . . . . . . . . . . . . . . . . . . 18
       5.3.2.  Civic location . . . . . . . . . . . . . . . . . . . . 18
     5.4.  Error  . . . . . . . . . . . . . . . . . . . . . . . . . . 18
       5.4.1.  Error Code . . . . . . . . . . . . . . . . . . . . . . 18
       5.4.2.  Error Message  . . . . . . . . . . . . . . . . . . . . 19
   6.  Protocol mapping summary . . . . . . . . . . . . . . . . . . . 19
     6.1.  HELD . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
       6.1.1.  Location Request Message . . . . . . . . . . . . . . . 23
       6.1.2.  Location Response Message  . . . . . . . . . . . . . . 23
       6.1.3.  Error Message  . . . . . . . . . . . . . . . . . . . . 23
     6.2.  Google Gears . . . . . . . . . . . . . . . . . . . . . . . 23
       6.2.1.  Location Request Message . . . . . . . . . . . . . . . 26
       6.2.2.  Location Response Message  . . . . . . . . . . . . . . 29
     6.3.  Parlay/X . . . . . . . . . . . . . . . . . . . . . . . . . 29
       6.3.1.  getLocation Request Message  . . . . . . . . . . . . . 31
       6.3.2.  getLocation Response Message . . . . . . . . . . . . . 31
       6.3.3.  getLocationForGroup Request Message  . . . . . . . . . 31
       6.3.4.  getLocationForGroup Response Message . . . . . . . . . 31
   7.  Applications . . . . . . . . . . . . . . . . . . . . . . . . . 31
   8.  Privacy Considerations . . . . . . . . . . . . . . . . . . . . 32
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 32
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 32
     10.2. Informative References . . . . . . . . . . . . . . . . . . 33
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 33








Doran & Barnes         Expires September 10, 2010               [Page 3]

Internet-Draft                    CLIF                        March 2010


1.  Introduction

   Over time, the increasing mobility of Internet endpoints, and the
   global basis on which Internet applciations are delivered, have
   driven demand for geolocation information about Internet hosts.  In
   order to respond to the demand, many different organizations have
   developed geolocation platforms and protocols.  For example, the SUPL
   and MLP location protocols for cellular networks were developed in
   the 3GPP and OMA, while the Parlay/X location protocol for tradional
   fixed-line telephone networks was developed in ETSI.  While many of
   these protocols have matured idependently, because they are similiar
   in purpose, the data models that they define are also similiar.
   While the terminoligy for data elements may vary, the definitions are
   often analogous, if not equivalent.  Despite the clear overlap of
   function, different protocols continue to be used independently,
   perpetuating a fragmented marketplace for location services.

   This fragmentation did not cause problems while the domains of
   different protocols remained distinct.  However, many different types
   of networks, with their own "native" location protocols, are now
   being used to carry IP traffic.  At the same time, geolocation
   functiosn are being introduced as core components of modern web
   browsers and operating systems.  These trends argue for a unification
   of the current space of location protocols in order to facilitate
   location services that are interoperable across the entire Internet.

   Obviously, a proliferation of protocols has practical implications as
   well.  Without a single universal data model, developers are forced
   to choose which protocols to use or support in their implemetations.
   Server and client components have little re-usability and
   interoperability across protocols.  Transitioning from one protocol
   to another is expensive and difficult.  This is an unfortunate
   situation, espescially because it could be avoided given the
   similarities among protocols.  In fact, if a universal data model is
   agreed upon, and the process for mapping various protocols to and
   from that data model is standardized, these problems can be resolved.

   This document introduces a universal geolocation data model that will
   meet the needs of the majority of exisiting protocols and be
   extensible to accomodate future protocols.  We call this universal
   data model the Common Location Interoperability Framework, or CLIF.

   This document also provides mappings of some exisiting geolocation
   protocols to this data model.  A main goal of these mappings is to
   reduce confusion resulting from the use of different terminology to
   mean the same thing in different specifications.





Doran & Barnes         Expires September 10, 2010               [Page 4]

Internet-Draft                    CLIF                        March 2010


2.  Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [1].


3.  Data Model Overview

   CLIF has two top level message types: Request and Response.  In both
   'pull'- and 'push'-style systems, there is an entity that wants to
   know location (requester or client) and an entity that provides
   location (responder or server).  The request object represents the
   messages that originate from requesters, and likewise, the response
   object represents messages originating from responders.

   These two general message types satistfy the needs of many current
   location location protocols.  Protocols that use a request/response
   message flow -- especially those that use HTTP as a transport -- are
   of course naturally suited to this model, for example:

   o  HELD [ref:draft-ietf-geopriv-http-location-delivery]

   o  MLP [ref]

   o  Parlay/X [ref] (when used with "get"-style requests)

   o  Google Gears [ref]

   .  The data model also fits into protocols that use a subscribe/
   notify pattern, since such protocols can be thought of as a request
   (subscription) followed by multiple responses (notifications):

   o  Parlay/X [ref] (when used with "notification"-style requests)

   o  LOCSIP [ref]

   o  SIMPLE [ref:RFC4079]

   Geolocation platforms that depend on client-originated location
   updates can also use this data model, e.g., to provide rough location
   as an input to location determination.  So this request/response
   structured data model is flexible enough to fit into many different
   types of protocols and message flows.

   The request object contains any information that is necessary or
   helpful for a location provider in determining the target's location.
   This information includes, for example, identifiers for the target,



Doran & Barnes         Expires September 10, 2010               [Page 5]

Internet-Draft                    CLIF                        March 2010


   signal measurements, constraints on the response, callback URIs.

   The response object contains location objects or error information
   (or possibly both).  In addition raw location information, a location
   object typically contains an identifier for the target, a timestamp,
   and possibly privacy rules.  A response object does not necessarily
   have to be used as a "response" in the underlying transport protocol
   (e.g., in HTTP or SIP).  Responses can be used by any entity that
   wants to send a location object to another, e.g., a server sending an
   unsolicited update to a client (as in a DHCP announcement).


4.  Request parameters

   This section defines a CLIF request object.

4.1.  General

   Parameters listed under "General" are top level parameters not
   falling under any particular categorization.

4.1.1.  Callback

   Field name: callback

   Data type: string (URI)

   The "callback" parameter specifies a callback address to which the
   location response should be sent.  The value of this paramter is a
   URI.  In the case of a third-party location query, this field is used
   to specify the address of the first-party device that is performing
   the lookup on behalf of the third-party device.

4.1.2.  Language

   Field name: language

   Data type: string

   Value Space: two-character and three-character codes as specified in
   ISO 639

   The "language" parameter specifies a requested langauge for a
   response containing a civic address.  Language values should follow
   two-character and three-character representations defined in
   [ISO639].





Doran & Barnes         Expires September 10, 2010               [Page 6]

Internet-Draft                    CLIF                        March 2010


4.1.3.  Response Accuracy

   Field name: accuracy

   Data type: int / double ?

   Units: meters?

   The "accuracy" parameter specifies the requested accuracy for a
   response containing a geodetic address.

4.1.4.  Response Age

   Field name: maxAge

   Data type: string (date-time)

   The "maxAge" parameter defines the maximum age of the location in the
   response.  [How should tolerance of this request parameter be handled
   if it cannot be satisfied?  Let each implementation define it?  Add
   tolerance parameters?]

4.1.5.  Response Time

   Field name: responseTime

   Data type: ?

   The "responseTime" parameter defines the requested maximum response
   time for the location provider to respond to the location request.
   [How should this be represented?]

4.1.6.  Response Location Type

   Field name: locationType

   Data type: byte

   Format: Combination of bitmap flags according to table below:












Doran & Barnes         Expires September 10, 2010               [Page 7]

Internet-Draft                    CLIF                        March 2010


              +------+--------------------------------------+
              | Flag |             Location Type            |
              +------+--------------------------------------+
              | ---1 |      Geodetic Location Type Flag     |
              | --1- |       Civic Location Type Flag       |
              | -1-- |     Reference Location Type Flag     |
              | 1--- |          Exact Modifier Flag         |
              | 1000 | Default Location Type (special case) |
              +------+--------------------------------------+

                                  Table 1

   These flags can be combined in any way.  For example "-111" would ask
   for all location types, while "-011" would ask for Geodetic and Civic
   location types.  Specifying no location types ("0000") is the
   equivalent of asking for any available location type(s).

   The "exact" modifier is used to specify how the location provider
   should handle the other flags.  Specifically, if the exact modifier
   is set to 0 (false), then the location provider MUST provide the
   requested location types in the response, but it MAY provide more.
   If the exact modifier is set to 1 (true), the location provider MUST
   provide exactly the types requested, no more or less, and it MUST
   return an error if it cannot satisfy the request.

   There is one special cases, indicated by "1000".  If the location
   provider sees this flag comination, it should simply follow its
   default behavior.  Note that this is slightly different from "0000,"
   which asks the locaiton provider to return any location type.  For
   example if a location provider's default behavior is to return
   geodetic location only, then the "1000" flag would return a geodetic
   location, whereas the "0000" flag might return both geodetic and
   civic locations.

4.2.  Identifiers

   Identifiers are parameters that identify the device that is
   requesting location.  For third-party location queries, these should
   describe the third-party device, not the first-party requester.  That
   is, if Device A requesting location on behalf of Device B,
   identifiers should describe Device B, and Device A can be specified
   via the "callback" parameter.  A Location Request object can store
   more that one Identifiers objects for cases where it is requesting
   the location of multiple entities from the same location provider in
   a single request.






Doran & Barnes         Expires September 10, 2010               [Page 8]

Internet-Draft                    CLIF                        March 2010


4.2.1.  Unique Identifier (UID)

   Field name: uid

   Data type: string

   The "uid" parameter MAY be used to define any Unique Identifier
   applicable to the protocol being represented, e.g., "DUID" for
   location over DHCP.

   A "uid" should not be confused with a network access identifier (see
   NAI below).

4.2.2.  Network Access Identifier (NAI)

   Field name: accessUsername

   Data type: string

   To be used with protocols that require authentication ie, username,
   user@domain (See [RFC4282] for full definition)

4.2.3.  Network Access Password

   Field name: accessPassword

   Data type: string

   Password associated with UNI for networks that require username/
   password authentication

4.2.4.  Group Identifier

   Field name: groupId

   Data type: string

   Format: any

   The "group" parameter MAY be used to define a group/buddy list when
   looking up a location for multiple users.  This is used for third-
   party requests.

4.2.5.  IP Address

   Field name: ip

   Data type: string



Doran & Barnes         Expires September 10, 2010               [Page 9]

Internet-Draft                    CLIF                        March 2010


   The "ip" parameter stores IP address of the requester.

4.2.6.  MAC Address

   Field name: mac

   Data type: string

   The "mac" parameter stores the MAC address (bssid) of the requester.

4.2.7.  Port Number

   Field name: port

   Data type: int

   The "port" parameter MAY be used to specify the UDP or TCP Port being
   used.  This is useful for mulitple requesters running on same IP on
   different ports.

4.2.8.  URI

   Field name: uri

   Data type: string (URI)

   A "uri" parameter can specify a uri that identifies the requester.

4.2.9.  Fully Qualified Domain Name

   Field name: fqdn

   Data type: string

   The fully qualified domain name of the requester can be stored in the
   "fqdn" parameter.  This should be a domain name that resolves to a
   single device. ie, server-1.example.com.

4.2.10.  Telephony

   Data type: Telephony Object

   The Telephony object contains fields to store various telephony
   identifiers.







Doran & Barnes         Expires September 10, 2010              [Page 10]

Internet-Draft                    CLIF                        March 2010


4.2.10.1.  Mobile Station International Subscriber Dial Number (MSISDN)

   Field name: msidn

   Data type: string

   Mobile Station International Subscriber Dial Number (MSISDN)

4.2.10.2.  International Mobile Subscriber Identity (IMSI)

   Field name: imsi

   Data type: string

   International Mobile Subscriber Identity (IMSI) - GSM / UMTS mobile
   subscriber identifier

4.2.10.3.  International Mobile Equipment Identifier (IMEI)

   Field name: imei

   Data type: string

   International Mobile Equipment Identifier (IMEI)

4.2.10.4.  Mobile Identification Number (MIN)

   Field name: min

   Data type: string

   Mobile Identification Number (MIN) - a unique number associated with
   CDMA devices

4.2.10.5.  Mobile Directory Number (MDN)

   Field name: mdn

   Data type: string

   Mobile Directory Number (MDN) - usage similar to MSISDN

4.2.10.6.  Home Mobile Country Code

   Field name: hmcc

   Data type: string




Doran & Barnes         Expires September 10, 2010              [Page 11]

Internet-Draft                    CLIF                        March 2010


   Mobile country code for the device's home network.

4.2.10.7.  Home Mobile Network Code

   Field name: hmnc

   Data type: string

   Mobile network code for the device's home network.  Used in
   conjunction with home mcc.

4.3.  Measurement

   Data type: Object

   The Measurement object contains fields to store various measurements
   from the device.  A request can have multiple Measurement objects.
   Every type of Measurement object has a few parameters in common,
   which objects that extend Measurement inherit:

4.3.1.  Timestamp

   Field name: timestamp

   Data type: string

   The time the measurement was recorded.

4.3.2.  Expires

   Field name: expires

   Data type: string

   The time the measurement expires.

4.3.3.  Samples

   Field name: samples

   Data type: int

   The total number of samples on which the measurement is based.

4.3.4.  WifiMeasurement

   Field name: WifiMeasurement




Doran & Barnes         Expires September 10, 2010              [Page 12]

Internet-Draft                    CLIF                        March 2010


   Data type: Object extends Measurement

   Type of Measurement object for storing WiFi Data.

4.3.4.1.  NIC Type

   Field name: nicType

   Data type: string

   Identifies the NIC used for capturing the wifi measurements.

4.3.4.2.  Wireless Access Point (WAP)

   Field name: Wap

   Data type: Object

   A WifiMeasurement object was a Wap object as a parameter.  A Wap
   object describes signals from a wap the NIC sees.

4.3.4.2.1.  SSID

   Field name: ssid

   Data type: string

   The ssid the wap is broadcasting.

4.3.4.2.2.  BSSID

   Field name: bssid

   Data type: string

   The bssid (MAC address) of the wap.

4.3.4.2.3.  Access Point Name

   Field name: apName

   Data type: string

   The name of the wap.







Doran & Barnes         Expires September 10, 2010              [Page 13]

Internet-Draft                    CLIF                        March 2010


4.3.4.2.4.  WAP Location

   Field name: location

   Data type: gml

   The location of the wap.

4.3.4.2.5.  Type

   Field name: type

   Data type: enum{a|b|g|n}

   The type of wifi signal the wap.

4.3.4.2.6.  Channel

   Field name: channel

   Data type: int

   The channel the wap is broadcasting on.

4.3.4.2.7.  RSSI

   Field name: rssi

   Data type: int

   Units: dBm

   The radio signal strength indicator.

4.3.4.2.8.  Signal to Noise Ratio

   Field name: snr

   Data type: double?

   Units: dBm

   The signal to noise ratio of the signal being broadcast by the wap.

4.3.4.2.9.  Round Trip Time

   Field name: rtt




Doran & Barnes         Expires September 10, 2010              [Page 14]

Internet-Draft                    CLIF                        March 2010


   Data type: int?

   Units: milliseconds?

   From section-4.4 of [draft-thomson-geopriv-held-measurements-05]:
   "The The total round trip time from the time that a request is sent
   by the device to the time that it receives the response from the
   access point."

4.3.5.  CellularMeasurement

   Field name: CellularMeasurement

   Data type: Object extends Measurement

   Type of Measurement object for storing Cellular Data.

4.3.5.1.  Radio Type

   Field name: radioType

   Data type: string (possibly enum? e.g., gsm, cdma, wcdma, etc)

   Identifies the cellular radio type.

4.3.5.2.  Carrier

   Field name: carrier

   Data type: string

   Identifies the cellular carrier by name.

4.3.5.3.  Cellular Tower

   Field name: Tower

   Data type: Object

   A CellularMeasurement object was a Tower object as a parameter.  A
   Tower object describes signals from a tower the cellular radio sees.

4.3.5.3.1.  Mobile Country Code

   Field name: mcc

   Data type: int




Doran & Barnes         Expires September 10, 2010              [Page 15]

Internet-Draft                    CLIF                        March 2010


4.3.5.3.2.  Mobile Network Code

   Field name: mnc

   Data type: int

4.3.5.3.3.  Cell Id

   Field name: cid

   Data type: int

4.3.5.3.4.  28-bit Cell Id

   Field name: eucid

   Data type: int

4.3.5.3.5.  Radio Network Controller

   Field name: rnc

   Data type: int

4.3.5.3.6.  Network Id

   Field name: nid

   Data type: int

4.3.5.3.7.  System Id

   Field name: sid

   Data type: int

4.3.5.3.8.  Base Station Id

   Field name: baseid

   Data type: int

4.3.5.3.9.  RSSI

   Field name: rssi

   Data type: int




Doran & Barnes         Expires September 10, 2010              [Page 16]

Internet-Draft                    CLIF                        March 2010


   Units: dBm

   The radio signal strength indicator.

4.3.5.3.10.  Timing Advance

   Field name: timingAdvance

   Data type: int

   Units: ms

4.3.6.  WiMAX

   Measurement object for storing WiMAX Data

4.3.7.  GNSS

   Measurement object for storing GNSS Data

4.3.8.  w16e

   Measurement object for storing w16e Data

4.4.  Other parameters

   Describe how CLIF can be extended here.


5.  Response parameters

   This section defines a CLIF response object.

5.1.  General parameters

   Parameters listed under "General" are top level parameters not
   falling under any particular categorization.

5.1.1.  Message

   Field name: message

   Data type: string

   The "message" field contains any relavant report / status messages
   from the location provider.





Doran & Barnes         Expires September 10, 2010              [Page 17]

Internet-Draft                    CLIF                        March 2010


5.1.2.  Age

   Field name: age

   Data type: string

   The date-time the location was discovered.

5.1.3.  Unique Identifer (UID)

   Field name: age

   Data type: string

   The "uid" field in the response object can store a unique identifier
   or access token assigned by the location provider for the requester
   to use for future queries.

5.2.  Location Reference

   Field name: uri

   Data type: string (URI)

   The "uri" field in the response object can store a reference to a
   location.  A response may have multiple Location References in an
   array.

5.3.  Location Oject [PIDF-LO]

   The Location object is based on PIDF-LO.

5.3.1.  Geodetic location

5.3.2.  Civic location

5.4.  Error

   Error Parameters:

5.4.1.  Error Code

   Field name: code

   Data type: string

   The "code" field stores an error code from the location provider.




Doran & Barnes         Expires September 10, 2010              [Page 18]

Internet-Draft                    CLIF                        March 2010


5.4.2.  Error Message

   Field name: message

   Data type: string

   The "message" field stores an error message from the location
   provider.  This field SHOULD be human readable text.


6.  Protocol mapping summary

   This section provides mapping between Geolocation Protocols and CLIF.

         This table shows how protocols share elements with CLIF:

   +-----------------------------------------+------+-------+----------+
   |               CLIF Request              | HELD | Gears | Parlay/X |
   +-----------------------------------------+------+-------+----------+
   |                 callback                |      |       |     o    |
   |                 language                |      |   o   |          |
   |                 accuracy                |      |       |     o    |
   |                  maxAge                 |      |       |     o    |
   |               responseTime              |      |       |     o    |
   |               locationType              |   o  |   o   |          |
   |             Identifiers:uid             |   o  |   o   |     o    |
   |        Identifiers:accessUsername       |   o  |       |          |
   |        Identifiers:accessPassword       |      |       |          |
   |              Identifiers:ip             |   o  |       |          |
   |             Identifiers:mac             |   o  |       |          |
   |             Identifiers:port            |   o  |       |          |
   |             Identifiers:uri             |   o  |       |     o    |
   |             Identifiers:fqdn            |   o  |       |          |
   |          Identifiers:Telephony          |      |       |          |
   |       Identifiers:Telephony:msisdn      |   o  |       |          |
   |        Identifiers:Telephony:imsi       |   o  |       |          |
   |        Identifiers:Telephony:imei       |   o  |       |          |
   |        Identifiers:Telephony:min        |   o  |       |          |
   |        Identifiers:Telephony:mdn        |   o  |       |          |
   |        Identifiers:Telephony:hmcc       |      |   o   |          |
   |        Identifiers:Telephony:hmnc       |      |   o   |          |
   |               Measurement               |      |       |          |
   |             Measurement:time            |      |   o   |          |
   |           Measurement:expires           |      |       |          |
   |           Measurement:samples           |      |       |          |
   |       WifiMeasurement::Measurement      |   o  |   o   |          |
   |         WifiMeasurement:nicType         |   o  |       |          |
   |           WifiMeasurement:wap           |   o  |   o   |          |



Doran & Barnes         Expires September 10, 2010              [Page 19]

Internet-Draft                    CLIF                        March 2010


   |         WifiMeasurement:wap:ssid        |   o  |       |          |
   |        WifiMeasurement:wap:bssid        |   o  |   o   |          |
   |        WifiMeasurement:wap:apName       |   o  |       |          |
   |       WifiMeasurement:wap:location      |   o  |       |          |
   |         WifiMeasurement:wap:type        |   o  |       |          |
   |       WifiMeasurement:wap:channel       |   o  |   o   |          |
   |         WifiMeasurement:wap:rssi        |   o  |   o   |          |
   |         WifiMeasurement:wap:snr         |   o  |   o   |          |
   |         WifiMeasurement:wap:rtt         |   o  |       |          |
   |     CellularMeasurement::Measurement    |   o  |   o   |          |
   |      CellularMeasurement:radioType      |      |   o   |          |
   |       CellularMeasurement:carrier       |      |   o   |          |
   |        CellularMeasurement:tower        |   o  |       |          |
   |      CellularMeasurement:tower:mcc      |   o  |   o   |          |
   |      CellularMeasurement:tower:mnc      |   o  |   o   |          |
   |      CellularMeasurement:tower:cid      |   o  |   o   |          |
   |     CellularMeasurement:tower:eucid     |   o  |       |          |
   |      CellularMeasurement:tower:rnc      |   o  |       |          |
   |      CellularMeasurement:tower:lac      |   o  |   o   |          |
   |      CellularMeasurement:tower:nid      |   o  |       |          |
   |      CellularMeasurement:tower:sid      |   o  |       |          |
   |     CellularMeasurement:tower:baseid    |   o  |       |          |
   |      CellularMeasurement:tower:rssi     |      |   o   |          |
   | CellularMeasurement:tower:timingAdvance |      |   o   |          |
   +-----------------------------------------+------+-------+----------+

                                  Table 2

           +-------------------------+------+-------+----------+
           |      CLIF Response      | HELD | Gears | Parlay/X |
           +-------------------------+------+-------+----------+
           |         message         |      |       |     o    |
           |           uid           |      |   o   |     o    |
           |           age           |      |       |     o    |
           |           uri           |   o  |       |          |
           |         location        |   o  |       |          |
           |       location:geo      |   o  |   o   |     o    |
           |      location:civic     |   o  |   o   |          |
           | location:civic:language |   o  |       |          |
           |  location:civic:country |   o  |   o   |          |
           |    location:civic:a1    |   o  |   o   |          |
           |    location:civic:a2    |   o  |   o   |          |
           |    location:civic:a3    |   o  |   o   |          |
           |    location:civic:a4    |   o  |       |          |
           |    location:civic:a5    |   o  |       |          |
           |    location:civic:a6    |   o  |   o   |          |
           |    location:civic:prd   |   o  |       |          |
           |    location:civic:pod   |   o  |       |          |



Doran & Barnes         Expires September 10, 2010              [Page 20]

Internet-Draft                    CLIF                        March 2010


           |    location:civic:sts   |   o  |       |          |
           |    location:civic:hno   |   o  |   o   |          |
           |    location:civic:hns   |   o  |       |          |
           |    location:civic:lmk   |   o  |       |          |
           |    location:civic:loc   |   o  |       |          |
           |   location:civic:name   |   o  |       |          |
           |    location:civic:pc    |   o  |   o   |          |
           |    location:civic:bld   |   o  |   o   |          |
           |   location:civic:unit   |   o  |       |          |
           |    location:civic:flr   |   o  |       |          |
           |   location:civic:room   |   o  |       |          |
           |    location:civic:plc   |   o  |       |          |
           |    location:civic:pcn   |   o  |       |          |
           |   location:civic:pobox  |   o  |       |          |
           |  location:civic:addcode |   o  |       |          |
           |   location:civic:seat   |   o  |       |          |
           |    location:civic:rd    |   o  |       |          |
           |   location:civic:rdsec  |   o  |       |          |
           |   location:civic:rdbr   |   o  |       |          |
           |  location:civic:rdsubbr |   o  |       |          |
           |    location:civic:prm   |   o  |       |          |
           |    location:civic:pom   |   o  |       |          |
           |    location:reference   |   o  |       |          |
           | location:reference:uris |   o  |       |          |
           |          Error          |   o  |       |          |
           |        Error:code       |   o  |       |     o    |
           |      Error:message      |   o  |       |          |
           +-------------------------+------+-------+----------+

                                  Table 3

6.1.  HELD

   This section will focus on how to use CLIF with the HELD protocol.

   +--------------------------------------+----------------------------+
   |             CLIF Request             |            HELD            |
   +--------------------------------------+----------------------------+
   |               callback               |                            |
   |               language               |                            |
   |               accuracy               |                            |
   |                maxAge                |                            |
   |             responseTime             |                            |
   |             locationType             |        locationType        |
   |            Identifiers:uid           |      Identifiers:duid      |
   |      Identifiers:accessUsername      |       Identifiers:nai      |
   |      Identifiers:accessPassword      |                            |
   |            Identifiers:ip            |       Identifiers:ip       |



Doran & Barnes         Expires September 10, 2010              [Page 21]

Internet-Draft                    CLIF                        March 2010


   |            Identifiers:mac           |       Identifiers:mac      |
   |           Identifiers:port           | Identifiers:tcpport,udppor |
   |                                      | t                          |
   |            Identifiers:uri           |       Identifiers:uri      |
   |           Identifiers:fqdn           |      Identifiers:fqdn      |
   |         Identifiers:Telephony        |                            |
   |     Identifiers:Telephony:msisdn     |     Identifiers:msisdn     |
   |      Identifiers:Telephony:imsi      |      Identifiers:imsi      |
   |      Identifiers:Telephony:imei      |      Identifiers:imei      |
   |       Identifiers:Telephony:min      |       Identifiers:min      |
   |       Identifiers:Telephony:mdn      |       Identifiers:mdn      |
   |      Identifiers:Telephony:hmcc      |                            |
   |      Identifiers:Telephony:hmnc      |                            |
   |              Measurement             |                            |
   |           Measurement:time           |                            |
   |          Measurement:expires         |                            |
   |          Measurement:samples         |                            |
   |     WifiMeasurement::Measurement     |                            |
   |        WifiMeasurement:nicType       |                            |
   |          WifiMeasurement:wap         |                            |
   |       WifiMeasurement:wap:ssid       |                            |
   |       WifiMeasurement:wap:bssid      |                            |
   |      WifiMeasurement:wap:apName      |                            |
   |     WifiMeasurement:wap:location     |                            |
   |       WifiMeasurement:wap:type       |                            |
   |      WifiMeasurement:wap:channel     |                            |
   |       WifiMeasurement:wap:rssi       |                            |
   |        WifiMeasurement:wap:snr       |                            |
   |        WifiMeasurement:wap:rtt       |                            |
   |   CellularMeasurement::Measurement   |                            |
   |     CellularMeasurement:radioType    |                            |
   |      CellularMeasurement:carrier     |                            |
   |       CellularMeasurement:tower      |                            |
   |     CellularMeasurement:tower:mcc    |                            |
   |     CellularMeasurement:tower:mnc    |                            |
   |     CellularMeasurement:tower:cid    |                            |
   |    CellularMeasurement:tower:eucid   |                            |
   |     CellularMeasurement:tower:rnc    |                            |
   |     CellularMeasurement:tower:lac    |                            |
   |     CellularMeasurement:tower:nid    |                            |
   |     CellularMeasurement:tower:sid    |                            |
   |   CellularMeasurement:tower:baseid   |                            |
   |    CellularMeasurement:tower:rssi    |                            |
   | CellularMeasurement:tower:timingAdva |                            |
   | n                 ce                 |                            |
   +--------------------------------------+----------------------------+

                                  Table 4



Doran & Barnes         Expires September 10, 2010              [Page 22]

Internet-Draft                    CLIF                        March 2010


                   +---------------+------------------+
                   | CLIF Response |       HELD       |
                   +---------------+------------------+
                   |    message    |                  |
                   |      uid      |                  |
                   |      age      |                  |
                   |      uri      |  locationUriSet  |
                   |    location   | presence PIDF-LO |
                   |     Error     |                  |
                   |   Error:code  |    Error:code    |
                   | Error:message |   Error:message  |
                   +---------------+------------------+

                                  Table 5

6.1.1.  Location Request Message

   This section will focus on how to encode/decode a HELD Location
   Request message using CLIF.

6.1.2.  Location Response Message

   This section will focus on how to encode/decode a HELD Location
   Response message using CLIF.

6.1.3.  Error Message

   This section will focus on how to encode/decode a HELD Error message
   using CLIF.

6.2.  Google Gears

   This section will focus on how to use CLIF with the Google Gears
   Geolocation network protocol.

     +-----------------------------------------+---------------------+
     |               CLIF Request              |        Gears        |
     +-----------------------------------------+---------------------+
     |                 callback                |                     |
     |                 language                |   address_language  |
     |                 accuracy                |                     |
     |                  maxAge                 |                     |
     |               responseTime              |                     |
     |               locationType              |   request_address   |
     |             Identifiers:uid             |     access_token    |
     |        Identifiers:accessUsername       |                     |
     |        Identifiers:accessPassword       |                     |
     |              Identifiers:ip             |                     |



Doran & Barnes         Expires September 10, 2010              [Page 23]

Internet-Draft                    CLIF                        March 2010


     |             Identifiers:mac             |                     |
     |             Identifiers:port            |                     |
     |             Identifiers:uri             |                     |
     |             Identifiers:fqdn            |                     |
     |          Identifiers:Telephony          |                     |
     |       Identifiers:Telephony:msisdn      |                     |
     |        Identifiers:Telephony:imsi       |                     |
     |        Identifiers:Telephony:imei       |                     |
     |        Identifiers:Telephony:min        |                     |
     |        Identifiers:Telephony:mdn        |                     |
     |        Identifiers:Telephony:hmcc       |                     |
     |        Identifiers:Telephony:hmnc       |                     |
     |               Measurement               |                     |
     |             Measurement:time            |         age         |
     |           Measurement:expires           |                     |
     |           Measurement:samples           |                     |
     |       WifiMeasurement::Measurement      |  [WiFi Data Object] |
     |         WifiMeasurement:nicType         |                     |
     |           WifiMeasurement:wap           |                     |
     |         WifiMeasurement:wap:ssid        |                     |
     |        WifiMeasurement:wap:bssid        |     mac-address     |
     |        WifiMeasurement:wap:apName       |                     |
     |       WifiMeasurement:wap:location      |                     |
     |         WifiMeasurement:wap:type        |                     |
     |       WifiMeasurement:wap:channel       |       channel       |
     |         WifiMeasurement:wap:rssi        |   signal_strength   |
     |         WifiMeasurement:wap:snr         |   signal_to_noise   |
     |         WifiMeasurement:wap:rtt         |                     |
     |     CellularMeasurement::Measurement    |  [Cell Data Object] |
     |      CellularMeasurement:radioType      |      radio_type     |
     |       CellularMeasurement:carrier       |       carrier       |
     |        CellularMeasurement:tower        |                     |
     |      CellularMeasurement:tower:mcc      | mobile_country_code |
     |      CellularMeasurement:tower:mnc      | mobile_network_code |
     |      CellularMeasurement:tower:cid      |       cell_id       |
     |     CellularMeasurement:tower:eucid     |                     |
     |      CellularMeasurement:tower:rnc      |                     |
     |      CellularMeasurement:tower:lac      |  location_area_code |
     |      CellularMeasurement:tower:nid      |                     |
     |      CellularMeasurement:tower:sid      |                     |
     |     CellularMeasurement:tower:baseid    |                     |
     |      CellularMeasurement:tower:rssi     |   signal_strength   |
     | CellularMeasurement:tower:timingAdvance |    timing_advance   |
     +-----------------------------------------+---------------------+

                                  Table 6





Doran & Barnes         Expires September 10, 2010              [Page 24]

Internet-Draft                    CLIF                        March 2010


          +-------------------------+--------------------------+
          |      CLIF Response      |           Gears          |
          +-------------------------+--------------------------+
          |         message         |                          |
          |           uid           |       access_token       |
          |           age           |                          |
          |           uri           |                          |
          |         location        |                          |
          |       location:geo      | Response location fields |
          |      location:civic     |                          |
          | location:civic:language |                          |
          |  location:civic:country |      address:country     |
          |    location:civic:a1    |      address:region      |
          |    location:civic:a2    |      address:county      |
          |    location:civic:a3    |       address:city       |
          |    location:civic:a4    |                          |
          |    location:civic:a5    |                          |
          |    location:civic:a6    |      address:street      |
          |    location:civic:prd   |                          |
          |    location:civic:pod   |                          |
          |    location:civic:sts   |                          |
          |    location:civic:hno   |   address:street_number  |
          |    location:civic:hns   |                          |
          |    location:civic:lmk   |                          |
          |    location:civic:loc   |                          |
          |   location:civic:name   |                          |
          |    location:civic:pc    |    address:postal_code   |
          |    location:civic:bld   |     address:premises     |
          |   location:civic:unit   |                          |
          |    location:civic:flr   |                          |
          |   location:civic:room   |                          |
          |    location:civic:plc   |                          |
          |    location:civic:pcn   |                          |
          |   location:civic:pobox  |                          |
          |  location:civic:addcode |                          |
          |   location:civic:seat   |                          |
          |    location:civic:rd    |                          |
          |   location:civic:rdsec  |                          |
          |   location:civic:rdbr   |                          |
          |  location:civic:rdsubbr |                          |
          |    location:civic:prm   |                          |
          |    location:civic:pom   |                          |
          |    location:reference   |                          |
          | location:reference:uris |                          |
          |          Error          |                          |
          |        Error:code       |                          |
          |      Error:message      |                          |
          +-------------------------+--------------------------+



Doran & Barnes         Expires September 10, 2010              [Page 25]

Internet-Draft                    CLIF                        March 2010


                                  Table 7

6.2.1.  Location Request Message

   This section will focus on how to encode/decode a Gears Location
   Request message using CLIF.

   Here is an example of a Gears Location Request message:











































Doran & Barnes         Expires September 10, 2010              [Page 26]

Internet-Draft                    CLIF                        March 2010


   {
     "version": "1.1.0",
     "host": "maps.google.com",
     "access_token": "2:k7j3G6LaL6u_lafw:4iXOeOpTh1glSXe",
     "home_mobile_country_code": 310,
     "home_mobile_network_code": 410,
     "radio_type": "gsm",
     "carrier": "Vodafone",
     "request_address": true,
     "address_language": "en_GB",
     "location": {
       "latitude": 51.0,
       "longitude": -0.1
     },
     "cell_towers": [
       { "cell_id": 42,
         "location_area_code": 415,
         "mobile_country_code": 310,
         "mobile_network_code": 410,
         "age": 0,
         "signal_strength": -60,
         "timing_advance": 5555
       },
       { "cell_id": 88,
         "location_area_code": 415,
         "mobile_country_code": 310,
         "mobile_network_code": 580,
         "age": 0,
         "signal_strength": -70,
         "timing_advance": 7777
       }
     ],
     "wifi_towers": [
       { "mac_address": "01-23-45-67-89-ab",
         "signal_strength": 8,
         "age": 0
       },
       { "mac_address": "01-23-45-67-89-ac",
         "signal_strength": 4,
         "age": 0
       }
     ]
   }


                 Figure 1: Gears Location Request Message
   [http://code.google.com/apis/gears/geolocation_network_protocol.html]




Doran & Barnes         Expires September 10, 2010              [Page 27]

Internet-Draft                    CLIF                        March 2010


   Specifications for encoding/decoding fields in the Gears Location
   Request:

   version:  The Gears "version" parameter is specific to the Google
      Gears protocol and therefore does not get stored in the CLIF
      model.  When encoding a Google Gears request from a CLIF request
      object, the encoder MUST generate the version parameter on its
      own.  When decoding a Google Gears request and storing the data in
      a CLIF object, the decoder MUST not store the version number in
      the model, though it MAY choose to store or use it outside CLIF
      for some application-specific purpose.

   host:  The Gears "host" parameter is specific to the Google Gears
      protocol and therefore does not get stored in the CLIF model.
      When encoding a Google Gears request from a CLIF request object,
      the encoder MUST generate the host parameter on its own.  When
      decoding a Google Gears request, the decoder MUST not store the
      host parameter in a CLIF object, though it MAY choose to store or
      use it outside CLIF for some application-specific purpose.

   access_token:  The Gears "access_token" parameter MAY be stored in
      the Identifiers:uid field of the CLIF request object.  In the
      Gears protocol, this parameter is set by the server in a response
      message to be used for future requests.  Therefore, if this field
      is empty in the CLIF model, a Gears encoder MUST NOT attempt to
      generate it.  If the encoder has an access_token that was
      generated by a Gears server to use for requests, it SHOULD insert
      this access_token into requests and ignore the Identifiers:uid
      field.  If the encoder does not have its own Gears access_token,
      it MAY check the Identifiers:uid field for an access_token, but it
      MUST verify that any value stored in this field is a valid Gears
      access_tokn, as this field can store other unique identifiers.  An
      example of a situation where it would be safe for the encoder to
      use the Identifiers:uid field as a Gears access_token would be
      when it has full knowledge of how this field was propogated and
      knows that it is being used to store Gears access_tokes (e.g., a
      decoder accepting only Gears location requests).  A Gears decoder
      MAY store the access_token value in the Identifiers:uid field when
      decoding a Gears request.

   home_mobile_country_code:  The Gears "home_mobile_country_code"
      parameter MUST be stored in the Identifiers:Telephony:hmcc field
      of the CLIF request object.  An encoder can check this field when
      encoding a Gears Location Request message, and if it has a value
      it MAY encode it as the value for the home_mobile_country_code
      parameter in the Gears request.  When decoding a Gears Location
      Request message, a home_mobile_country_code MUST be stored in the
      Identifiers:Telephony:hmcc field of the CLIF request object.



Doran & Barnes         Expires September 10, 2010              [Page 28]

Internet-Draft                    CLIF                        March 2010


   home_mobile_network_code:  The Gears "home_mobile_network_code"
      parameter MUST be stored in the Identifiers:Telephony:hmnc field
      of the CLIF request object.  An encoder can check this field when
      encoding a Gears Location Request message, and if it has a value
      it MAY encode it as the value for the home_mobile_network_code
      parameter in the Gears request.  When decoding a Gears Location
      Request message, a home_mobile_network_code MUST be stored in the
      Identifiers:Telephony:hmnc field of the CLIF request object.

   radio_type:

   carrier:

   request_address:

   address_language:

   location:

      latitude:

      longitude:

   cell_towers:

   wifi_towers:

6.2.2.  Location Response Message

   This section will focus on how to encode/decode a Gears Location
   Response message using CLIF request object.

6.3.  Parlay/X

   This section will focus on how to use CLIF request object with the
   Parlay/X protocol.















Doran & Barnes         Expires September 10, 2010              [Page 29]

Internet-Draft                    CLIF                        March 2010


   +------------------------------+------------------------------------+
   |         CLIF Request         |              Parlay/X              |
   +------------------------------+------------------------------------+
   |           callback           |              requester             |
   |           language           |                                    |
   |           accuracy           |         requestedAccuracy,         |
   |                              |         acceptableAccuracy         |
   |            maxAge            |             maximumAge             |
   |         responseTime         |            responseTime            |
   |         locationType         |                                    |
   |        Identifiers:uid       |        reference, correlator       |
   |  Identifiers:accessUsername  |                                    |
   |  Identifiers:accessPassword  |                                    |
   |        Identifiers:ip        |                                    |
   |        Identifiers:mac       |                                    |
   |       Identifiers:port       |                                    |
   |        Identifiers:uri       |               address              |
   |       Identifiers:fqdn       |                                    |
   |     Identifiers:Telephony    |                                    |
   | Identifiers:Telephony:msisdn |                                    |
   |  Identifiers:Telephony:imsi  |                                    |
   |  Identifiers:Telephony:imei  |                                    |
   |   Identifiers:Telephony:min  |                                    |
   |   Identifiers:Telephony:mdn  |                                    |
   |  Identifiers:Telephony:hmcc  |                                    |
   |  Identifiers:Telephony:hmnc  |                                    |
   +------------------------------+------------------------------------+

                                  Table 8






















Doran & Barnes         Expires September 10, 2010              [Page 30]

Internet-Draft                    CLIF                        March 2010


        +----------------+---------------------------------------+
        |  CLIF Response |                Parlay/X               |
        +----------------+---------------------------------------+
        |     message    |       LocationData:reportStatus       |
        |       uid      |               correlator              |
        |       age      |         LocationInfo:timestamp        |
        |       uri      |                                       |
        |    location    |                                       |
        |  location:geo  |              LocationInfo             |
        | location:civic |                                       |
        |      Error     |                                       |
        |   Error:code   | reason, LocationData:errorInformation |
        |  Error:message |                                       |
        +----------------+---------------------------------------+

                                  Table 9

6.3.1.  getLocation Request Message

   This section will focus on how to encode/decode a Parlay/X
   getLocation Request using the CLIF.

6.3.2.  getLocation Response Message

   This section will focus on how to encode/decode a Parlay/X
   getLocation Response using CLIF.

6.3.3.  getLocationForGroup Request Message

   This section will focus on how to encode/decode a Parlay/X
   getLocationForGroup Request using CLIF.

6.3.4.  getLocationForGroup Response Message

   This section will focus on how to encode/decode a Parlay/X
   getLocationForGroup Response using CLIF.


7.  Applications

   This section provides use cases for CLIF:

   o  Implementing Single Protocol [Protocol A] Client

      *  Pre-designed, pre-implemented data model - developers will not
         have to design and implement their own





Doran & Barnes         Expires September 10, 2010              [Page 31]

Internet-Draft                    CLIF                        March 2010


      *  The client is already designed to support additional protocols
         if they are later added

   o  Implementing Multiple Protocol [Protocols A, B, C] Client

      *  Single Data Model, Multiple Protocols

   o  Transitioning from Protocol A to Protocol B

      *  Mapping in this docuemnt provides instructions for how to map
         Protocol A to CLIF to Protocol B

      *  All Protocol A code / components / assets can still be used,
         just add a translation layer

   o  Reusing Server Components

      *  A location server can accept multiple protocols on the front-
         end, normalize them all to CLIF, allowing other parts of the
         server to be usable for all protocols (eg, logging, caching)

   o  Interoperability of Protocols

      *  Implement a location server that accepts [Protocol A] Requests,
         in case of [Protocol A] failure, it degrades to use [Protocol
         B], and the translation / [Protocol B] query is done server-
         side, with the [Protocol B] response being translate back to
         [Protocol A] to send to the client.


8.  Privacy Considerations

   [Text here]


9.  Security Considerations

   [Text here]


10.  References

10.1.  Normative References

   [1]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [2]   Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar, J., Polk,



Doran & Barnes         Expires September 10, 2010              [Page 32]

Internet-Draft                    CLIF                        March 2010


         J., and J. Rosenberg, "Common Policy: A Document Format for
         Expressing Privacy Preferences", RFC 4745, February 2007.

   [3]   Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
         January 2004.

   [4]   Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar, J., and
         J. Polk, "Geolocation Policy: A Document Format for Expressing
         Privacy Preferences for Location Information",
         draft-ietf-geopriv-policy-21 (work in progress), January 2010.

   [5]   Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, "HTTP
         Enabled Location Delivery (HELD)",
         draft-ietf-geopriv-http-location-delivery-16 (work in
         progress), August 2009.

   [6]   Polk, J., "Dynamic Host Configuration Protocol (DHCP) IPv4 and
         IPv6 Option for a Location Uniform Resource Identifier (URI)",
         draft-ietf-geopriv-dhcp-lbyr-uri-option-07 (work in progress),
         March 2010.

10.2.  Informative References

   [7]   Peterson, J., "A Presence-based GEOPRIV Location Object
         Format", RFC 4119, December 2005.

   [8]   Peterson, J., Hardie, T., and J. Morris, "Implications of
         'retransmission-allowed' for SIP Location Conveyance",
         RFC 5606, August 2009.

   [9]   Marshall, R., "Requirements for a Location-by-Reference
         Mechanism", draft-ietf-geopriv-lbyr-requirements-09 (work in
         progress), November 2009.

   [10]  Tschofenig, H. and H. Schulzrinne, "GEOPRIV Layer 7 Location
         Configuration Protocol; Problem Statement and Requirements",
         draft-ietf-geopriv-l7-lcp-ps-10 (work in progress), July 2009.

   [11]  Polk, J., Schnizlein, J., Linsner, M., Thomson, M., and B.
         Aboba, "Dynamic Host Configuration Protocol Options for
         Coordinate-based Location Configuration Information",
         draft-ietf-geopriv-rfc3825bis-09 (work in progress),
         March 2010.








Doran & Barnes         Expires September 10, 2010              [Page 33]

Internet-Draft                    CLIF                        March 2010


Authors' Addresses

   Kevin M. Doran
   BBN Technologies
   9861 Broken Land Parkway
   Columbia, MD  21046
   US

   Phone: +1 410 290 6175
   Email: kdoran@bbn.com


   Richard L. Barnes
   BBN Technologies
   9861 Broken Land Parkway
   Columbia, MD  21046
   US

   Phone: +1 410 290 6169
   Email: rbarnes@bbn.com































Doran & Barnes         Expires September 10, 2010              [Page 34]