diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3421.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3421.txt')
-rw-r--r-- | doc/rfc/rfc3421.txt | 451 |
1 files changed, 451 insertions, 0 deletions
diff --git a/doc/rfc/rfc3421.txt b/doc/rfc/rfc3421.txt new file mode 100644 index 0000000..5984e65 --- /dev/null +++ b/doc/rfc/rfc3421.txt @@ -0,0 +1,451 @@ + + + + + + +Network Working Group W. Zhao +Request for Comments: 3421 H. Schulzrinne +Category: Experimental Columbia University + E. Guttman + Sun Microsystems + C. Bisdikian + W. Jerome + IBM + November 2002 + + + Select and Sort Extensions for the Service Location Protocol (SLP) + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. It does not specify an Internet standard of any kind. + Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2002). All Rights Reserved. + +Abstract + + This document defines two extensions (Select and Sort) for the + Service Location Protocol (SLP). These extensions allow a User Agent + (UA) to request that the Uniform Resource Locator (URL) entries in a + Service Reply (SrvRply) be limited to the specified number, or be + sorted according to the specified sort key list. Using these two + extensions together can facilitate discovering the best match, such + as finding a service that has the maximum speed or the minimum load. + +1. Introduction + + This document defines two extensions (Select and Sort) for SLP + [RFC2608]. These extensions allow a UA to request that the URL + entries in a SrvRply be limited to the specified number, or be sorted + according to the specified sort key list. A Directory Agent (DA) or + Service Agent (SA) that supports the Select and/or Sort extensions + MUST include the attribute keyword "select-enabled" and/or "sort- + enabled" in its advertisement (DAAdvert or SAAdvert). A UA SHOULD + check these attributes of the contacting DA/SA before it uses the + Select and/or Sort extensions to query the DA/SA. + + + + + + +Zhao, et. al. Experimental [Page 1] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + + Using the Select extension, a UA can opt for finding just a few (not + necessarily all) matching services, which is useful if the UA uses a + low-bandwidth channel. Using the Sort extension, a UA can ask the + DA/SA to sort matching URL entries, which helps the UA to choose a + service from multiple candidates. Sorting by the server is more + efficient than sorting by the client since for sorting purposes, the + former does not need to pass the attributes of matching URLs to the + client. Furthermore, using the Select and Sort extensions together + can facilitate discovering the best match, such as finding a service + that has the maximum speed or the minimum load, or has a speed + closest to a reference value. + + 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 in BCP 14, RFC 2119 + [RFC2119]. + +2. Select Extension + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Select Extension ID = 0x4002 | Next Extension Offset (NEO) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | NEO, cont'd | Number of URL Entries | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 1. Select Extension + + The format of the Select extension is shown in Figure 1. A UA uses + this extension in a Service Request (SrvRqst) to limit the maximum + number (say, n) of URL entries to be returned. When a DA/SA receives + a SrvRqst with a Select extension, it MUST use a Select extension in + the corresponding SrvRply to indicate the total number (say, m) of + matching URL entries if the DA/SA supports this extension, otherwise + the DA/SA MUST set the error code in the corresponding SrvRply to + OPTION_NOT_UNDERSTOOD [RFC2608]. If n < m, then only the first n + matching URL entries are returned, else all m matching URL entries + are returned. As a special case, a UA may set n to zero to obtain + the number of matching URL entries without retrieving the entries + themselves. + + We denote a Select extension as Select(number). Thus, Select(3) + means that the corresponding SrvRply can have at most three URL + entries. + + + + + + +Zhao, et. al. Experimental [Page 2] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + +3. Sort Extension + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sort Extension ID = 0x4003 | Next Extension Offset (NEO) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | NEO, cont'd | length of <sort-key-list> |<sort-key-list>\ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2. Sort Extension + + The format of the Sort extension is shown in Figure 2. A UA uses + this extension in a SrvRqst to request the URL entries in the + corresponding SrvRply be sorted according to the sort-key-list. The + sort-key-list is defined using Augmented Backus-Naur Form (ABNF) + [RFC2234] as follows: + + sort-key-list = sort-key / sort-key "," sort-key-list + sort-key = key-name ":" type ":" ordering [":" ref-value] + key-name = attr-tag from Section 5 of RFC 2608 + type = "s" / "i" + ; "s" for string type + ; "i" for integer type + ordering = "+" / "-" + ; "+" for increasing order + ; "-" for decreasing order + ref-value = intval from Section 5 of RFC 2608 + + Each sort-key in the sort-key-list has a key-name, a type specifier, + an ordering specifier, and an optional reference value. The key-name + MUST be a valid attribute name, and its type is explicitly specified. + Although SLP has five attribute types (integer, string, boolean, + opaque and keyword), we only consider integer sort and string sort + since keyword attributes (they have no values) never need to be + sorted, and boolean and opaque attributes can be sorted as strings if + needed. The integer sort uses the integerOrderingMatch rule defined + in X.520 [X520], whereas the string sort is performed based on + lexical ordering. Strings are compared using the rules defined in + Section 6.4 of RFC 2608. + + Only integer keys may have a reference value, causing the sort to be + based on the distance to the reference value. A reference-based + sort, such as "X:i:+:12", requires the following two steps: + + Step 1. For each matching service, if its attribute X has a value of + x, then use |x-12| as its metric. + + + + +Zhao, et. al. Experimental [Page 3] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + + Step 2. Use the metrics obtained in Step 1 to sort attribute X + for matching services. + + The SLP sort rules are adapted from the Lightweight Directory Access + Protocol (LDAP) sort rules defined in RFC 2891 [RFC2891]. Note that + sort in SLP is a best effort, no sort error will be returned from a + DA/SA to a UA. + + (1) The sort-key-list is in order of highest to lowest sort key + precedence (Section 1.1 of RFC 2891). + + (2) Each attribute SHOULD only occur in the sort-key-list once + (Section 1.1 of RFC 2891). If an attribute is included in the + sort-key-list multiple times, only its first occurrence is + considered, all other occurrences are ignored. + + (3) For a multi-valued attribute, the least value in each entry + SHOULD be used in sort (Section 2.2 of RFC 2891). + + (4) An entry missing one or more of the sort keys is treated as + having NULLs for those missing keys (Section 2.2 of RFC 2891). + + (5) NULL is considered as a larger value than all other valid + values (Section 2.2 of RFC 2891). + + (6) As the attribute type in SLP is not enforced, an attribute may + have inconsistent values. For the purpose of sorting, + inconsistent values may exist only when an attribute is + sorted as integer. Inconsistent values SHOULD be treated as + NULLs. + + When a DA/SA receives a SrvRqst with a Sort extension, it MUST set + the error code in the corresponding SrvRply to OPTION_NOT_UNDERSTOOD + [RFC2608] if the DA/SA does not support the Sort extension or cannot + perform the requested sort. The DA/SA sets the error code in the + corresponding SrvRply to zero if it has successfully processed the + SrvRqst and performed the requested sort. + + We denote a Sort extension as Sort(sort-key-list). The following + examples illustrate how to use the Sort extension. + + o Integer sort on speed (decreasing order). + + Sort(speed:i:-) + + [Note] "i" means integer sort, and "-" means decreasing order. + + + + + +Zhao, et. al. Experimental [Page 4] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + + o Integer sort on load (increasing order) and speed (decreasing + order). + + Sort(load:i:+,speed:i:-) + + [Note] "+" means increasing order. + + o String sort on model (increasing order). + + Sort(model:s:+) + + [Note] "s" means string sort. + + o Integer sort on speed (increasing order), based on a reference + value 12. + + Sort(speed:i:+:12) + + [Note] For example, if we have four matching services, with the + "speed" attribute as 8 (URL1), 10 (URL2), 12 (URL3), and 15 (URL4), + then the sorted URL list will be "URL3,URL2,URL4,URL1" (based on + the metric ordering of |12-12| < |12-10| < |12-15| < |12-8|). + +4. Using the Select and Sort Extensions Together + + In addition to being used individually, the Select and Sort + extensions can be used together to facilitate discovering the best + match, such as finding a service with the maximum speed. When these + two extensions appear in the same SrvRqst message, they MUST be + processed in the order of their presence. We show some examples + next. + + o Find the service with the minimum load + + Sort(load:i:+) + Select(1) + + o Find the three fastest services + + Sort(speed:i:-) + Select(3) + + o Find the service with the minimum load among the three fastest + + Sort(speed:i:-) + Select(3) + Sort(load:i:+) + Select(1) + + + +Zhao, et. al. Experimental [Page 5] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + + o Find the service that has a speed closest to 12 + + Sort(speed:i:+:12) + Select(1) + +5. IANA Considerations + + The Select and Sort extension IDs, 0x4002 and 0x4003, described in + Section 2 and Section 3, respectively, have been assigned by IANA out + of the SLP extension space (RFC 2608, Section 9.1) reserved for + "mandatory to implement" extensions (i.e., the 0x4000-0x7FFF range). + +6. Security Considerations + + There are no new security issues beyond those described in RFC 2608. + +7. Acknowledgments + + Ira McDonald provided good suggestions. + +8. Normative References + + [RFC2608] Guttman, E., Perkins, C., Veizades, J. and M. Day, "Service + Location Protocol, Version 2", RFC 2608, June 1999. + + [RFC2119] Bradner, S., "Key words for use in RFCs to indicate + requirement levels", BCP 14, RFC 2119, March 1997. + +9. Non-normative References + + [X520] International Telephone Union, "The Directory: Selected + Attribute Types", X.520, 1997. + + [RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", RFC 2234, November 1997. + + [RFC2891] Howes, T., Wahl, M. and A. Anantha, "LDAP Control Extension + for Server Side Sorting of Search Results", RFC 2891, + August 2000. + + + + + + + + + + + + +Zhao, et. al. Experimental [Page 6] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + +10. Authors' Addresses + + Weibin Zhao + Department of Computer Science + Columbia University + 1214 Amsterdam Avenue, MC 0401 + New York, NY 10027-7003 + + EMail: zwb@cs.columbia.edu + + + Henning Schulzrinne + Department of Computer Science + Columbia University + 1214 Amsterdam Avenue, MC 0401 + New York, NY 10027-7003 + + EMail: hgs@cs.columbia.edu + + + Erik Guttman + Sun Microsystems + Eichhoelzelstr. 7 + 74915 Waibstadt + Germany + + EMail: Erik.Guttman@sun.com + + + Chatschik Bisdikian + IBM Corp. + Thomas J. Watson Research Center + 19 Skyline Drive + Hawthorne, NY 10532, USA + + EMail: bisdik@us.ibm.com + + + William F. Jerome + IBM Corp. + Thomas J. Watson Research Center + 19 Skyline Drive + Hawthorne, NY 10532, USA + + EMail: wfj@us.ibm.com + + + + + + +Zhao, et. al. Experimental [Page 7] + +RFC 3421 Select and Sort Extensions for SLP November 2002 + + +11. 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. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Zhao, et. al. Experimental [Page 8] + |