Subject: Re: SLP and mobile computers

From: James Kempf <[email-masked]>
Date: Wed, 15 Dec 1999 16:36:59 -0800 (PST)

>I´m interested in using SLP with mobile computers.
>Besides the good integration of SLP with DHCP and Mobile IP (or IPv6), and
>the fact that SLP supports very well changes in the environment, like
>services that come and go, I didn´t saw other relevant aspects related with
>mobile environments.
>
>Think in the following cenario:
>
>- I have a mobile client that has performed a service location and got a
>URL.
>- In the mean time the mobile client changed the network where it was
>connected.
>- Now what does it do with the URL that it has in cache ?

SLP is designed for applications to query for URLs when they need them.
In a mobile situation, the mobile client can simply query again and
obtain another URL on the new network. If the mobile client is moving
from one network to another frequently, the URL cache time can be
set to zero.

Alternatively, if there is a way to know that the network has changed
(aquisition of a new mobile IP foreign agent or DHCP-provided address)
this could be used as a hit for the client to refresh its cache.

>- Everytime a mobile changes the network it has to repeat the service
>location procedure for each service ? What about if it needs 1000 services?

Does it need all 1000 at the same time? If not, then it can selectively
retrieve the services when it needs them. If so, then it needs to
take the hit of retrieving all 1000. 

>Should the SLP UA be capable of dealing with changes in the network
>connection? If the mobile client has to repeat the service location
>procedure, i can think of a service which i may consider global and i want
>to acess it wherever i go. Do i have to repeat the discovery everytime? On
>the other hand i also may have services that i don't want to repeat the
>discovery. How can SLP reacts to this?
>

If there is some way to inform the UA that the IP address has changed,
it could refresh the cache. Otherwise, the applications need to retreive
the URLs when they require them.

We've done some experimental work with having SAs multicast state changes
for notification purposes but this wouldn't help you because a UA changing
to a new network isn't a state change in the SA. I think what you need
is some way to tell the UA that the IP address or
foreign agent has changed, so the UA can query the DA or multicast
to update the cache.

(Note: Periodic multicasting of service advertisements won't solve the problem. 
That design was explicitly rejected in SLP because it has proven unscalable in 
earlier service discovery systems.)

>I have another question that is related with the fact that i have a computer
>which has several interfaces for connecting with different networks? In
>order to discover services i may prefer a network to discover some and
>another network to discover the others. Is SLP prepared to deal with this?
>

This question stikes me as somewhat vague, but I'll take a stab at answering 
it. RFC 2608 doesn't say anything about multihomed hosts. 
It sounds like what you are interested in is a UA on a multihomed
host that only wants to get services from a particular network, correct?
While there is nothing in RFC 2608 on this, RFC 2614 does specify a 
configuration parameter for the standardized API that allows the interfaces
on which an agent listens to be configured. In the default case, the
agent listens on the default interface, which, if routing is on between
the interfaces, means that the agent will get traffic from all interfaces.
If you have a UA with an RFC 2614 API, you could set the parameter to
just those interfaces that the UA wants to monitor, turn off routing
between the interfaces, and filter out the URLs at the application level based 
on their addresses. But that seems rather drastic, since it will impact
all IP traffic between the interfaces. It might be easier to just get everything 
and let the application sort it out.

		jak