draft-guttman-svrloc-rfc2608bis-03.txt

来自「Pegasus is an open-source implementation」· 文本 代码 · 共 791 行 · 第 1/3 页

TXT
791
字号
   SAs MUST listen for unsolicited multicast DA Advertisements. DAs MUST   support all required and optional SLP message types in the table.  In   the absence of multicast routing support in a network, broadcast MAY   be used.+----------------------+----+----+-----+-----+-------------------------+| Message              |CODE| UA | SA  | DA  | Purpose                 |+----------------------+----+----+-----+-----+-------------------------+| Service Register     |  3 |    | MUST| MUST| Register a service (url,|| (SrvReg)             |    | NA | send| recv| attrs, etc.) with a DA. |+----------------------+----+----+-----+-----+-------------------------+| Service Deregister   |  4 |    | MAY | MUST| Deregisters a service   || (SrvDereg)           |    | NA | send| recv| from a DA.              |+----------------------+----+----+-----+-----+-------------------------+| Service Acknowledge  |  5 |    | MUST| MUST| Contains a DA's response|| (SrvAck)             |    | NA | recv| send| to SrvReg and SrvDereg. |+----------------------+----+----+-----+-----+-------------------------+| Service Request      |  1 |MUST| MUST| MUST| Requests services that  || (SrvRqst)            |    |send|s & r| recv| match query criteria.   |+----------------------+----+----+-----+-----+-------------------------+| Service Reply        |  2 |MUST| MUST| MUST| Returns services that   || (SrvRply)            |    |recv| send| send| match query criteria.   |Guttman & Kempf         Expires: 3 February 2003                [Page 5]Internet Draft               SLPv2 Revision                  August 2002+----------------------+----+----+-----+-----+-------------------------+| DA Advertisement     |  8 |MUST| MUST| MUST| Contains location, DA   || (DAAdvert)           |    |recv| recv| send| attributes and more.    |+----------------------+----+----+-----+-----+-------------------------+| SA Advertisement     | 11 |MAY | MUST|     | Contains location, SA   || (SAAdvert)           |    |recv| send| NA  | attributes and more.    |+----------------------+----+----+-----+-----+-------------------------+| Service Type Request |  9 |MAY | MAY | MUST| Requests available      || (SrvTypeRqst)        |    |send| recv| recv| service types.          |+----------------------+----+----+-----+-----+-------------------------+| Service Type Reply   | 10 |MAY | MAY | MUST| Contains all available  || (SrvTypeRply)        |    |recv| send| send| service types.          |+----------------------+----+----+-----+-----+-------------------------+| Attribute Request    |  6 |MAY |SHOULD MUST| Requests attributes for || (AttrRqst)           |    |send| recv| recv| a particular service.   |+----------------------+----+----+-----+-----+-------------------------+| Attribute Reply      |  7 |MAY |SHOULD MUST| Contains all attributes || (AttrRply)           |    |recv| send| send| of a particular service.|+----------------------+----+----+-----+-----+-------------------------+     Table 1 - Summary of Required and Optional SLP Message Types and                             Requirement Level4. Protocol ElementsAll integer fields in SLP messages MUST be in network byte order.4.1 Error CodesIf the Error Code in a SLP reply message is nonzero, the rest of themessage MAY be truncated.  No data is necessarily transmitted or shouldbe expected after the header and the error code, except if some optionalextensions are sent to clarify the error.Errors MUST be return for unicast requests.  Multicast requests thatresult in an error MUST BE silently discarded. A reply MUST NOT be sentif a multicast request results in an error.The following is a list of SLP error codes. Error codes marked with a'*' can be returned in response to any request message, all others arereturned only for specific messages. Error codes returned for specificmessages are described in the sections where the messages are specified.OK *                    0  The request was successful.LANGUAGE_NOT_SUPPORTED  1  The request could not be processed                           due to the Language Lag.  Resending                           the request SHOULD NOT fail if                           the default Language Tag 'en' is                           used.Guttman & Kempf         Expires: 3 February 2003                [Page 6]Internet Draft               SLPv2 Revision                  August 2002PARSE_ERROR *           2  The message fails to obey SLP syntax.                           The error may be due to misalignment                           in the binary format of the message, a                           missing header Language Tag, a syntax                           error in the header Language Tag, or a                           syntax error in a message-specific                           string such as a service query or                           scope string.INVALID_REGISTRATION    3  A problem occurred with the parameters                           of a SrvReg or SrvDereg message, other                           than with the syntax of string parameters.SCOPE_NOT_SUPPORTED *   4  The scope-list lacks a supported scope.VER_NOT_SUPPORTED *     9  The SLP version number is not supported.INTERNAL_ERROR *       10  The DA or SA failed for some reason.DA_BUSY_NOW *          11  The DA is currently busy processing other                           requests.  The UA or SA SHOULD retry,                           using exponential back off.OPTION_NOT_UNDERSTOOD *12  The DA or SA received an unknown SLP                           option from the mandatory range.INVALID_UPDATE         13  A SrvReg was received without the                           FRESH bit set.MSG_NOT_SUPPORTED      14  The SA received an unsupported request.REFRESH_REJECTED       15  The SA sent a SrvReg with too low a lifetime.                           The SA SHOULD consult the DA's minimum                           refresh interval attribute (Section 9.4)                           for the minimum advertisement lifetime.4.2 SLP Message Header      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     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |    Version    |     Code      |            Length             |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     | Length, contd.|O|F|R|       Reserved          |Next Ext Offset|     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |  Next Extension Offset, contd.|              XID              |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |      Language Tag Length      |         Language Tag          \     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   All SLP messages begin with this header.Guttman & Kempf         Expires: 3 February 2003                [Page 7]Internet Draft               SLPv2 Revision                  August 2002    - Version:      This field MUST be set to 2.  Else, a VER_NOT_SUPPORTED error      results.    - Code:      Identifies the messsage type, see Table 1.  Any value outside      those defined in Table 1 or standards track protocols extending      SLP MUST be treated as a PARSE_ERROR result.    - Length:      Three byte unsigned integer containing the number of bytes in the      SLP message including the header.    - Flags:      O     Field is (0x80).  "OVERFLOW" MUST be set to 1 when a message            length exceeds the path MTU and the message contents doesn't            fit into a datagram.  See Section 5.1.3.  Otherwise, MUST be            0.      F     Field is (0x40).  "FRESH" MUST be set to 1 on every SrvReg.            Otherwise, MUST be 0.      R     Field is (0x20).  "REQUEST MCAST" MUST be set when            multicasting or broadcasting requests.  Otherwise, MUST be            0.      Reserved            This bits MUST be set to zero on transmission and ignored on            reception. See Section 4.5.    - Next Extension Offset:      MUST be set to 0 unless the message has any extensions.  If the      message has extensions, MUST contain the offset from the beginning      of the message, in bytes, to the first extension header.      Extensions SHOULD come after the message body.  See Section 7.1.    - XID:      The Transaction Identifier MUST be set to a unique value for each      unique request.  See Section 9 for the special case of unsolicited      DAAdverts.    - Lang Tag Length:      Two byte unsigned integer giving the length in bytes of the      Language Tag field.  MUST NOT be zero.    - Language Tag:      MUST contain a variable length field, RFC 3066 [RFC3066] language      local string.  This specifies the language locale for all human      readable strings in the message.  See Section 14.   A PARSE_ERROR results if the header is syntactically incorrect.Guttman & Kempf         Expires: 3 February 2003                [Page 8]Internet Draft               SLPv2 Revision                  August 20024.3 Strings   Strings in SLP messages MUST be encoded using UTF-8 [RFC2279].   Strings MUST not be null terminated and MUST always be preceded by a   two byte unsigned length field indicating the number of bytes that   follow.  Optional strings MAY be omitted.  In this case, the Length   field is set to zero and the string MUST be absent.   The specifications for the syntax of string-based protocol elements   in this document conform to ABNF [RFC2234].4.3.1 General String Comparisons   String comparisons MUST NOT be case sensitive. For example "STRING1"   is equal to "String1" and is also equal to "string1".  This   corresponds to the LDAPv3 string matching rule caseIgnoreMatch.   [RFC2252]   WARNING! SPECIAL CASE: caseIgnoreMatch specifies that leading and   trailing spaces in strings are elided before string comparison is   performed.  This feature is not supported in SLPv2.  White spaces in   strings MUST NOT be elided for the purposes of string comparison.   For example, "string1 " is not equal " string1" nor is it equal to   "string1".   In practice this means that (a) UTF-8 based strings are converted to   Unicode, (b) comparisons are done on the basis of numerical magnitude   ordering except that (c) case folding occurs according to specific   code page rules.  'a' (0x0041) and 'A' (0x0061) are equivalent, as   are "u umlaut" (0x00db) and "U umlaut" (0x00fb), both offset by 0x20.   Note that on other code pages the offset is different - as Cyrillic   "e accent aigue" (0x4400) and "E accent aigue" (0x4450) are offset by   0x50!4.3.2 Lists   A List is a comma delimited set of strings, which can be of zero   length.  Since the list is comma delimited, the comma is a reserved   character in string list items.  A comma must be escaped to be   considered as a data item.  For example "a\2Cb,c\2Cd" is a string   list with two items "a\2Cb" and "c\2Cd".  These items include escaped   commas; un-escaped they are "a,b" and "c,d" respectively.4.3.3 Previous Responder List   The Previous Responder List (PR List) is a List of dotted decimal   notation IPv4 addresses.   When SLP messages are unicast, PR lists MUST be ignored.  When SLP   SrvRqst, SrvTypeRqst, and AttrRqst messages are multicast, they   SHOULD contain a PR List (see Section 4.3.1) indicating allGuttman & Kempf         Expires: 3 February 2003                [Page 9]Internet Draft               SLPv2 Revision                  August 2002   responders from which the sender has received replies.  Each   responder's IP address (in dotted decimal form) SHOULD be added to   form the new List before the request is multicast again.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?