Subject: Service Reply message

From: Subbu Subramaniam <[email-masked]>
Date: Thu, 25 Feb 1999 17:02:09 -0800

Hi,

It appears that Service Location Protocol, version 2 needs a minor
change. If I have misunderstood, I would appreciate if someone clarifies
this.

In the SLP protocol specification,
Section 8.2 describing the Service Reply message, says:

	"The service reply contains one or more URL entries".

Since the service reply can be returned from a Service agent (in case
of a multicast service request), or from a Directory Agent (in case
of a unicast service request), I take it that this section is valid for
both types of replies.

I therefore conclude that if there are no matches for the service
being requested then the SA or DA (as the case may be) does not reply
to the request (since the service reply mesage has to have at least one
URL ...)

Now, let us assume the following sequence happens

	1. DA comes up, sends out a DAAdvert.
	2. All SAs register their services, and UAs cache the DA's address.
	3. a UA in the network sends a unicast request to a DA asking
	   for a service. 
	4. It so happens that such a service is not registered,
	   so the DA does not reply to this Service Request. (The Service
	   reply has to contain one or more URLs...and there are no
	   matching URLs in this case).
	5. The UA eventually times out. 
	   Can the UA conclude that the service is unavailable in
	   the network? Or, should it think that the DA has gone down?

To extend the example, consider the following sequence :

	6. DA goes down (and stays down for a while).
	7. UA sends a unicast request for a service (that happens to have
	   registered with the DA sometime back).
	8. UA natuarally does not hear anything back (because the DA is
	   down!). Can it assume that the Service is not there in the
	   network? Or, should it think that the DA is down?

To help UAs answer thus question with more certainty I propose changing the
first sentence in section 8.2 with the following text.

	"The service reply contains zero or more URL entries (see section 4.3).
	A service reply with zero URL entries MUST be returned in response
	to a unicast Service Request, if no matching URLs are present.
	A service reply with zero URL entries MUST NOT be sent in response
	to a multicast or broadcast service request (instead, if there was
	no match found, the service reply should not be generated at all)."
	
This allows a UA to distinguish between 5 and 8 above. In 5 above, the
UA will get back a service reply with zero URLs, and can therefore 
return immediately to the user saying that no matches are present in the
network. In 8, the UA will time out and conclude that the DA is not 
alive, and therefore look for another DA, or multicast the request, etc.

In an environment where there is no DA present, this also takes care that
the UAs do not receive a bunch of empty service reply messages from 
the SAs in response to a  servie request that was multicast or broadcast.

-Subbu

-- 
Subbu Subramaniam
Hewlett-Packard
Email:	[email-masked]

---

From: Erik Guttman <[email-masked]>
Date: Fri, 26 Feb 1999 15:26:12 +0100 (MET)

Subbu,

Your analysis is absolutely correct.  The text you suggest was indeed part
of the SLPv2 (and indeed SLPv1) specification, in earlier drafts.  Somehow
it was dropped during the editorial process.  I fully agree that we should
reintroduce it before we move promote the document to proposed standard.

I will check to see if this is procedurally acceptable.  Since this was
the behavior of SLPv1 and implementors many implementors are so familiar
with it, I believe reviewers assumed this feature was present in the
draft-ietf-svrloc-protocol-v2-12.txt specification and therefore did not
comment upon it during the last call periods.

Thank you for your helpful remark and suggestion,

Erik 

>...
>...