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]