INTERNET DRAFT                                            Weibin Zhao
draft-zhao-slp-url-01.txt                         Henning Schulzrinne
[Target Category: Standards Track]                Columbia University
June 14, 2002
Expires: December 14, 2002



                           The SLP URL Format


Status of This Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

Abstract

   This document describes the SLP URL format for the Service Location
   Protocol. The SLP URL is used to encode an SLP search query into a
   URL string, which facilitates the integration of SLP with systems
   that use URL as an interface, and provides a convenient way to
   express remote SLP discovery.








Zhao/Schulzrinne            Expires: December 14, 2002          [Page 1]


Internet Draft                  SLP URL                    June 14, 2002


1. Introduction

   The Service Location Protocol (SLP [1]) is a lightweight mechanism
   for service discovery in IP networks. There are three types of search
   queries in SLP: Service Request (SrvRqst), Service Type Request
   (SrvTypeRqst), and Attribute Request (AttrRqst). An SLP search query
   is sent from a User Agent (UA) to a Directory Agent (DA) via unicast
   or to all Service Agents (SAs) via multicast.

   This document describes the SLP URL format, which is used to encode
   an SLP search query into a URL [2] string. The SLP URL facilitates
   the integration of SLP with systems that use URL as an interface. For
   example, a client may want to enter an SLP search query as an SLP URL
   at a WWW browser where a regular URL is expected. Furthermore, the
   SLP URL provides a convenient way to express remote SLP discovery [3]
   since a remote domain name can be specified directly via the SLP URL.

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

2. The SLP URL Definition

   The SLP URL is defined using ABNF [9] as follows:

     slp-url        = "slp://" [domain-name] "/" query
     domain-name    = hostname from Section 3.2.2 of RFC 2396 [2]
     query          = query-id "?" [scope] "?" filter ["?" ext-list]
     query-id       = "SrvRqst" / "SrvTypeRqst" / "AttrRqst"
     scope          = scope-list from Section 6.4.1 of RFC 2608 [1]
     filter         = srv-filter / srvtype-filter / attr-filter
     srv-filter     = "type=" service-type [";pred=" predicate]
                      [";spi=" spi-str]
     service-type   = service type defined in Section 4 of RFC 2608
     predicate      = predicate from Section 8.1 of RFC 2608
     spi-str        = SPI defined in Section 9.2 of RFC 2608
     srvtype-filter = "na=" nalenstr
     nalenstr       = "0" / "-1" / nastr
     nastr          = naming-auth from Section 2.1 of RFC 2609 [5]
     attr-filter    = "url=" url [";tag=" tag-list] [";spi=" spi-str]
     url            = URL defined in Section 4 of RFC 2608
     tag-list       = tag-list from Section 10.3 of RFC 2608
     ext-list       = extension / extension ";" ext-list
     extension      = attr-ext / select-ext / sort-ext
     attr-ext       = "ext=attr"
     select-ext     = "ext=select;" max-num
     max-num        = intval from Section 5 of RFC 2608
     sort-ext       = "ext=sort;" sort-key-list



Zhao/Schulzrinne            Expires: December 14, 2002          [Page 2]


Internet Draft                  SLP URL                    June 14, 2002


     sort-key-list  = sort-key-list from Section 3 of [8]

   When the domain-name is omitted, the search query is resolved
   locally. The UA sends the query to the DAs it knows in the
   corresponding scopes, or multicasts the query if no DAs are known in
   the specified scopes.

   When the domain-name is present, the search query is resolved in the
   specified remote domain. Normally the UA first obtains a list of DAs
   and/or SAs at the specified remote domain via DNS SRV [6], then it
   sends the query to the chosen DAs or SAs.

   One of the three query-ids ("SrvRqst", "SrvTypeRqst" or "AttrRqst")
   MUST be given in an SLP URL.

   If the scope is omitted, the UA SHOULD use the default scope
   "DEFAULT".

   One of the three SLP filters (srv-filter, srvtype-filter, or attr-
   filter) MUST be given in an SLP URL, and MUST match the query-id in
   the SLP URL.

   A srv-filter MUST specify a service type, and MAY also specify a
   predicate and/or an SLP Security Parameters Index (SPI) string.

   A srvtype-filter MUST specify a naming authority, where "0" means
   IANA, "-1" means all naming authorities.

   An attr-filter MUST specify a URL whose attributes are to be
   retrieved, and MAY also specify a tag list and/or an SPI string.

   An SLP URL MAY have an extension list (ext-list). Currently, the
   formats for Attribute List [7], Selection [8] and Sort [8] extensions
   have been defined.

   A Selection Extension specifies the maximum number (max-num) of URL
   entries as a decimal integer whose range is 1 to 65535.

   A Sort Extension specifies the sort-key-list using the format defined
   in Section 3 of [8].

3. Examples

   o slp:///SrvRqst??type=printer

     find all printers at the local domain

   o slp://example.com/SrvRqst??type=printer



Zhao/Schulzrinne            Expires: December 14, 2002          [Page 3]


Internet Draft                  SLP URL                    June 14, 2002


     find all printers at the domain example.com

   o slp:///SrvRqst??type=printer;pred=(speed%3e%3d15)

     find all printers at the local domain, with a speed>=15

   o slp://example.com/SrvRqst?public?type=printer?ext=attr

     find all printers in the public scope at the domain example.com,
     return all attributes.

4. Security Considerations

   The security considerations for RFC 2608 and RFC 2396 apply to this
   document.

5. Acknowledgments

   Ira McDonald provided good suggestions for this document.

6. References

   [1] E. Guttman, C. Perkins, J. Veizades and M. Day, "Service location
       protocol, version 2", RFC 2608, June 1999.

   [2] T. Berners-Lee, R. Fielding and L. Masinter, " Uniform Resource
       Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

   [3] W. Zhao, H. Schulzrinne, C. Bisdikian and W. Jerome, "The SLP
       Service and Remote Discovery in SLP", Internet Draft, March
       2002.

   [4] S. Bradner, "Key words for use in RFCs to indicate requirement
       levels", BCP 14, RFC 2119, March 1997.

   [5] E. Guttman, C. Perkins and J. Kempf, "Service Templates and
       Service: Schemes", RFC 2609, June, 1999.

   [6] A. Gulbrandsen, P. Vixie and L. Esibov, "A DNS RR for specifying
       the location of services (DNS SRV)", RFC 2782, February 2000.

   [7] E. Guttman, "Attribute List Extension for the Service Location
       Protocol", RFC 3059, February 2001.

   [8] W. Zhao, H. Schulzrinne, E. Guttman, C. Bisdikian and W. Jerome,
       "Selection and Sort Extension for SLP", Internet Draft, June
       2002.




Zhao/Schulzrinne            Expires: December 14, 2002          [Page 4]


Internet Draft                  SLP URL                    June 14, 2002


   [9] D. Crocker and P. Overell, "Augmented BNF for Syntax
       Specifications: ABNF", RFC 2234, November 1997.

7. Authors' Addresses

   Weibin Zhao
   Henning Schulzrinne
   Department of Computer Science
   Columbia University
   1214 Amsterdam Avenue, MC 0401
   New York, NY 10027-7003
   Email: {zwb,hgs}@cs.columbia.edu

8. Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.











Zhao/Schulzrinne            Expires: December 14, 2002          [Page 5]