< draft-ietf-svrloc-protocol-v2-14.txt   draft-ietf-svrloc-protocol-v2-15.txt >
Internet Engineering Task Force Erik Guttman Internet Engineering Task Force Erik Guttman
INTERNET DRAFT Charles Perkins INTERNET DRAFT Charles Perkins
19 April 1999 Sun Microsystems 20 April 1999 Sun Microsystems
Updates: RFC 2165 John Veizades Updates: RFC 2165 John Veizades
@Home Network @Home Network
Michael Day Michael Day
Madison River Technologies Madison River Technologies
Service Location Protocol, Version 2 Service Location Protocol, Version 2
draft-ietf-svrloc-protocol-v2-14.txt draft-ietf-svrloc-protocol-v2-15.txt
Status of This Memo Status of This Memo
This document is a submission by the Service Location Working Group This document is a submission by the Service Location Working Group
of the Internet Engineering Task Force (IETF). Comments should be of the Internet Engineering Task Force (IETF). Comments should be
submitted to the srvloc@srvloc.org mailing list. submitted to the srvloc@srvloc.org mailing list.
Distribution of this memo is unlimited. Distribution of this memo is unlimited.
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
skipping to change at page 1, line 76 skipping to change at page 1, line 75
4.1. Service: URLs . . . . . . . . . . . . . . . . . . . . . . 7 4.1. Service: URLs . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Naming Authorities . . . . . . . . . . . . . . . . . . . 8 4.2. Naming Authorities . . . . . . . . . . . . . . . . . . . 8
4.3. URL Entries . . . . . . . . . . . . . . . . . . . . . . . 9 4.3. URL Entries . . . . . . . . . . . . . . . . . . . . . . . 9
5. Service Attributes 9 5. Service Attributes 9
6. Required Features 11 6. Required Features 11
6.1. Use of Ports, UDP, and Multicast . . . . . . . . . . . . 12 6.1. Use of Ports, UDP, and Multicast . . . . . . . . . . . . 12
6.2. Use of TCP . . . . . . . . . . . . . . . . . . . . . . . 13 6.2. Use of TCP . . . . . . . . . . . . . . . . . . . . . . . 13
6.3. Retransmission of SLP messages . . . . . . . . . . . . . 14 6.3. Retransmission of SLP messages . . . . . . . . . . . . . 14
6.4. Strings in SLP messages . . . . . . . . . . . . . . . . . 15 6.4. Strings in SLP messages . . . . . . . . . . . . . . . . . 14
6.4.1. Scope Lists in SLP . . . . . . . . . . . . . . . 15 6.4.1. Scope Lists in SLP . . . . . . . . . . . . . . . 15
7. Errors 16 7. Errors 16
8. Required SLP Messages 16 8. Required SLP Messages 16
8.1. Service Request . . . . . . . . . . . . . . . . . . . . . 18 8.1. Service Request . . . . . . . . . . . . . . . . . . . . . 18
8.2. Service Reply . . . . . . . . . . . . . . . . . . . . . . 20 8.2. Service Reply . . . . . . . . . . . . . . . . . . . . . . 20
8.3. Service Registration . . . . . . . . . . . . . . . . . . 21 8.3. Service Registration . . . . . . . . . . . . . . . . . . 21
8.4. Service Acknowledgment . . . . . . . . . . . . . . . . . 22 8.4. Service Acknowledgment . . . . . . . . . . . . . . . . . 22
8.5. Directory Agent Advertisement . . . . . . . . . . . . . . 23 8.5. Directory Agent Advertisement . . . . . . . . . . . . . . 23
skipping to change at page 10, line 15 skipping to change at page 10, line 15
attr-val = intval / strval / boolval / opaque attr-val = intval / strval / boolval / opaque
intval = [-]1*DIGIT intval = [-]1*DIGIT
strval = 1*safe-val strval = 1*safe-val
boolval = "true" / "false" boolval = "true" / "false"
opaque = "\FF" 1*escape-val opaque = "\FF" 1*escape-val
safe-val = ; Any character except reserved. safe-val = ; Any character except reserved.
safe-tag = ; Any character except reserved, star and bad-tag. safe-tag = ; Any character except reserved, star and bad-tag.
reserved = `(' / `)' / `,' / `\' / `!' / `<' / `=' / `>' / `~' / CTL reserved = `(' / `)' / `,' / `\' / `!' / `<' / `=' / `>' / `~' / CTL
escape-val = `\' HEXDIG HEXDIG escape-val = `\' HEXDIG HEXDIG
bad-tag = CR / LF / HTAB / `_' bad-tag = CR / LF / HTAB / `_'
star = `*' star = `*'
The <attr-list>, if present, MUST be scanned prior to evaluation for The <attr-list>, if present, MUST be scanned prior to evaluation for
all occurrences of the escape character `\'. Reserved characters all occurrences of the escape character `\'. Reserved characters
MUST be escaped (other characters MUST NOT be escaped). All escaped MUST be escaped (other characters MUST NOT be escaped). All escaped
characters must be restored to their value before attempting string characters must be restored to their value before attempting string
matching. For Opaque values, escaped characters are not converted - matching. For Opaque values, escaped characters are not converted -
they are interpreted as bytes. they are interpreted as bytes.
Boolean Strings which have the form "true" or "false" can Boolean Strings which have the form "true" or "false" can
only take one value and may only be compared with only take one value and may only be compared with
skipping to change at page 14, line 11 skipping to change at page 14, line 11
The initiating agent SHOULD close the TCP connection. The DA SHOULD The initiating agent SHOULD close the TCP connection. The DA SHOULD
wait at least CONFIG_CLOSE_CONN seconds before closing an idle wait at least CONFIG_CLOSE_CONN seconds before closing an idle
connection. DAs and SAs SHOULD close an idle TCP connection after connection. DAs and SAs SHOULD close an idle TCP connection after
CONFIG_CLOSE_CONN seconds to ensure robust operation, even when the CONFIG_CLOSE_CONN seconds to ensure robust operation, even when the
initiating agent neglects to close it. See Section 13 for timing initiating agent neglects to close it. See Section 13 for timing
rules. rules.
6.3. Retransmission of SLP messages 6.3. Retransmission of SLP messages
Requests to SAs or to discover DAs are multicast repeatedly Requests which fail to elicit a response are retransmitted. The
exponentially backing off (doubling the wait interval each time) initial retransmission occurs after a CONFIG_RETRY wait period.
until there are no new responses, or CONFIG_MC_MAX seconds have Retransmissions MUST be made with exponentially increasing wait
elapsed. intervals (doubling the wait each time). This applies to unicast as
well as multicast SLP requests.
Unicast requests to a DA or SA should be retransmitted until either
a response (which might be an error) has been obtained, or for
CONFIG_RETRY_MAX seconds.
Multicast requests SHOULD be reissued over CONFIG_MC_MAX seconds Multicast requests SHOULD be reissued over CONFIG_MC_MAX seconds
until a result has been obtained. Retransmissions occur with until a result has been obtained. UAs need only wait till they
exponentially increasing wait intervals (doubling the wait each obtain the first reply which matches their request. That is,
time.) UAs need only wait till they obtain the first reply which retransmission is not required if the requesting agent is prepared to
matches their request. Unicast requests to a DA or SA should be use the 'first reply' instead of 'as many replies as possible within
retransmitted until either a response (which might be an error) has a bounded time interval.'
been obtained, or for CONFIG_RETRY_MAX seconds. The wait intervals
between retransmitted unicast requests MUST increase exponentially,
doubling each time.
When SLP SrvRqst, SrvTypeRqst, and AttrRqst messages are multicast, When SLP SrvRqst, SrvTypeRqst, and AttrRqst messages are multicast,
they contain a <PRList> of previous responders. Initially the they contain a <PRList> of previous responders. Initially the
<PRList> is empty. When these requests are unicast, the <PRLIst> <PRList> is empty. When these requests are unicast, the <PRList>
is always empty. is always empty.
Any DA or SA which sees its address in the <PRList> MUST NOT respond
to the request.
The message SHOULD be retransmitted until the <PRList> causes The message SHOULD be retransmitted until the <PRList> causes
no further responses to be elicited or the previous responder no further responses to be elicited or the previous responder
list and the request will not fit into a single datagram or until list and the request will not fit into a single datagram or until
CONFIG_MC_MAX seconds elapse. CONFIG_MC_MAX seconds elapse.
Retransmission is not required if the requesting agent is prepared to
use the 'first reply' instead of 'as many replies as possible within
a bounded time interval.'
Any DA or SA which sees its address in the <PRList> MUST NOT respond
to the request.
UAs which retransmit a request use the same XID. This allows a DA or UAs which retransmit a request use the same XID. This allows a DA or
SA to cache its reply to the original request and then send it again, SA to cache its reply to the original request and then send it again,
should a duplicate request arrive. This cached information should should a duplicate request arrive. This cached information should
only be held very briefly. XIDs SHOULD be randomly chosen to avoid only be held very briefly. XIDs SHOULD be randomly chosen to avoid
duplicate XIDs in requests if UAs restart frequently. duplicate XIDs in requests if UAs restart frequently.
6.4. Strings in SLP messages 6.4. Strings in SLP messages
The escape character is a backslash (UTF-8 0x5c) followed by the The escape character is a backslash (UTF-8 0x5c) followed by the
two hexadecimal digits of the escaped character. Only reserved two hexadecimal digits of the escaped character. Only reserved
skipping to change at page 15, line 47 skipping to change at page 15, line 42
string value in order to indicate substring matching. The query string value in order to indicate substring matching. The query
including this character matches any character sequence which including this character matches any character sequence which
conforms to the letters which are not wildcarded. conforms to the letters which are not wildcarded.
6.4.1. Scope Lists in SLP 6.4.1. Scope Lists in SLP
Scope Lists in SLPv2 have the following grammar: Scope Lists in SLPv2 have the following grammar:
scope-list = scope-val / scope-val `,' scope-list scope-list = scope-val / scope-val `,' scope-list
scope-val = 1*safe scope-val = 1*safe
safe = ; Any character except reserved. safe = ; Any character except reserved.
reserved = `(' / `)' / `,' / `\' / `!' / `<' / `=' / `>' / `~' / CTL reserved = `(' / `)' / `,' / `\' / `!' / `<' / `=' / `>' / `~' / CTL
/ `;' / `*' / `+' / `;' / `*' / `+'
escape-val = `\' HEXDIG HEXDIG escape-val = `\' HEXDIG HEXDIG
Scopes which include any reserved characters must replace the escaped Scopes which include any reserved characters must replace the escaped
character with the escaped-val format. character with the escaped-val format.
7. Errors 7. Errors
If the Error Code in a SLP reply message is nonzero, the rest of If the Error Code in a SLP reply message is nonzero, the rest of
the message MAY be truncated. No data is necessarily transmitted the message MAY be truncated. No data is necessarily transmitted
or should be expected after the header and the error code, except or should be expected after the header and the error code, except
possibly for some optional extensions to clarify the error, for possibly for some optional extensions to clarify the error, for
example as in section D.1. example as in section D.1.
skipping to change at page 30, line 39 skipping to change at page 30, line 39
9.4. Tag Lists 9.4. Tag Lists
Tag lists are used in SrvDeReg and AttrReq messages. The syntax of a Tag lists are used in SrvDeReg and AttrReq messages. The syntax of a
<tag-list> item is: <tag-list> item is:
tag-filter = simple-tag / substring tag-filter = simple-tag / substring
simple-tag = 1*filt-char simple-tag = 1*filt-char
substring = [initial] any [final] substring = [initial] any [final]
initial = 1*filt-char initial = 1*filt-char
any = `*' *(filt-char `*') any = `*' *(filt-char `*')
final = 1*filt-char final = 1*filt-char
filt-char = Any character excluding <reserved> and <bad-tag> (see filt-char = Any character excluding <reserved> and <bad-tag> (see
grammar in Section 5). grammar in Section 5).
Wild card characters in a <tag-list> item match arbitrary sequences Wild card characters in a <tag-list> item match arbitrary sequences
of characters. For instance "*bob*" matches "some bob I know", of characters. For instance "*bob*" matches "some bob I know",
"bigbob", "bobby" and "bob". "bigbob", "bobby" and "bob".
10. Optional SLP Messages 10. Optional SLP Messages
skipping to change at page 42, line 14 skipping to change at page 42, line 14
13. Protocol Timing Defaults 13. Protocol Timing Defaults
Interval name Section Default Value Meaning Interval name Section Default Value Meaning
------------------- ------- ------------- ------------------------ ------------------- ------- ------------- ------------------------
CONFIG_MC_MAX 6.3 15 seconds Max time to wait for a CONFIG_MC_MAX 6.3 15 seconds Max time to wait for a
complete multicast query complete multicast query
response (all values.) response (all values.)
CONFIG_START_WAIT 12.2.1 3 seconds Wait to perform DA CONFIG_START_WAIT 12.2.1 3 seconds Wait to perform DA
discovery on reboot. discovery on reboot.
CONFIG_RETRY 12.3 2 seconds Retransmit unicast CONFIG_RETRY 12.3 2 seconds Wait interval before
request if no reply. initial retransmission
of multicast or unicast
requests.
CONFIG_RETRY_MAX 12.3 15 seconds Give up on unicast CONFIG_RETRY_MAX 12.3 15 seconds Give up on unicast
request retransmission. request retransmission.
CONFIG_DA_BEAT 12.2.2 3 hours DA Heartbeat, so that SAs CONFIG_DA_BEAT 12.2.2 3 hours DA Heartbeat, so that SAs
passively detect new DAs. passively detect new DAs.
CONFIG_DA_FIND 12.3 900 seconds Minimum interval to wait CONFIG_DA_FIND 12.3 900 seconds Minimum interval to wait
before repeating Active before repeating Active
DA discovery. DA discovery.
CONFIG_REG_PASSIVE 12.2 1-3 seconds Wait to register services CONFIG_REG_PASSIVE 12.2 1-3 seconds Wait to register services
on passive DA discovery. on passive DA discovery.
CONFIG_REG_ACTIVE 8.3 1-3 seconds Wait to register services CONFIG_REG_ACTIVE 8.3 1-3 seconds Wait to register services
 End of changes. 14 change blocks. 
29 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/