Subject: DHCP and static configuration

From: Mikael Pahmp <[email-masked]>
Date: Thu, 9 Sep 1999 12:48:19 +0200

I'm trying to interpret the configuration rules of scopes and DAs. I think there are a lot of holes in the specs regarding this issue that needs to filled.

RFC 2614 (SLP API), section 3.12, third paragraph, states the following about administrative scoping:

   Scopes configured by DHCP and scopes of DAs
   configured by DHCP have first priority (in that order) and must be
   returned if they are available.  The net.slp.useScopes property has
   second priority, and scopes discovered through the net.slp.useScopes
   property must be returned if this property is set and there are no
   scopes available from DHCP. If scopes are not available from either
   of these sources and the net.slp.DAAddresses property is set, then
   the scopes available from the configured DAs must be returned.

But this doesn't match the scoping rules in RFC 2608 (SLPv2) and RFC 2610 (DHCP options for SLP) as I see it. Nowhere in these RFCs can I find that an agent should create its scope-list from the scopes of DAs except when an UA uses the User Selectable Scope model.

RFC 2608, section 6, states regarding scoping:

   UAs and SAs are configured with a list of scopes to use according to
   these prioritized rules:

    1. With DHCP.

    2. With static configuration.  The static configuration may be
       explicitly set to NO SCOPE for UAs, if the User Selectable Scope
       model is used.  See section 11.2.

    3. In the absence of configuration, the agent's scope is "DEFAULT".

Section 11.2, second paragraph:

   Otherwise [when not using User Selectable Scope for UAs],
   if SAs and UAs are to use any scope other than the default
   (i.e., "DEFAULT"), the UAs and SAs are configured with lists of
   scopes to use by system administrators, perhaps automatically by way
   of DHCP option 78 or 79 [21].

Here, the mentioning of DHCP option 78 could hint that scopes should be collected from DAs but it is very vague.

Section 14, paragraph on DHCP Configuration:

   DHCP options 78 and 79 may be used to configure SLP. If
   DA locations are configured using DHCP, these SHOULD
   be used in preference to DAs discovered actively or
   passively.  One or more of the scopes configured using
   DHCP MUST be used in requests.  The entire configured
   <scope-list> MUST be used in registration and DA
   configuration messages.

Then looking at RFC 2610, there is no reference of gathering scopes from DAs, either.

The second problem I have is how to interpret the MANDATORY flags in RFC2610.

When the 'Mandatory' byte is 0 in option 79 (Scope option), 'static configuration takes presedence'. Does this mean that the scope-list in option 79 is never used or used only when there is no static configuration of scopes?

Which DAs should be used if the 'Mandatory' byte is 0 in option 78 (DA option)?
DAs from static configuration only, if present?
DAs from DA Discovery only?
or a collection of all of these methods?

Further, what should an SA do if it receives an empty scope-list in option 79?

Even further, assuming the scopes of configured DAs should be used, which scopes should be used if there is a option 78 DA-list with Mandatory byte of 1, and there is a option 79 with mandatory byte of 0?

I've made the following interpretation of RFC2608 and RFC2610:

   If DHCP option 79 is available, Mandatory byte is 1, scope-list exists
      => use these scopes only

   If DHCP option 79 is available, scope-list is empty
   or DHCP option 79 is not available
      => use scopes from static configuration (e.g. 'net.slp.useScopes')
   or if static config is absent,
      => a) for SA use 'default'
         b) for UA use 'User Selectable Scopes' 
            (i.e. use DAs or SAs scope found in DA/SA discovery

   If DHCP option 79 is available, Mandatory byte is 1, scope-list exists
      => use these scopes only

   If DHCP option 79 is available, Mandatory byte is 0, scope-list exists
      => use scopes from static configuration
   or if static config is absent,
      => use scopes from DHCP option 79

Note that in my interpretation, scopes from DAs is never collected and used except for an UA using the 'User Selectable Scopes' model.

Once the scopes have been decided using the administrative model above, DAs are choosen like this:

   If DHCP option 78 is available, Mandatory byte is 1
      => use these DAs only (whose scopes match the configured scopes)

   If DHCP option 78 is available, Mandatory byte is 0
      => use DAs from option 78 and any statically configured DAs
         (whose scopes match the configured scopes)
         and DAs found during DA Discovery.

My interpretation is not the one presented in RFC2614. I definetely think that 2608 and 2610 leaves to much to be interpreted by the reader on this issue.

Sorry for this long mail, but I think we should really discuss this and somehow give recommendations on how to actually implement this.

/MiP

-------------------------------------------------------------
Mikael Pahmp         Software Architect
Axis Communications  Technology Division
Scheelev. 16         Email: [email-masked]
S-223 70 Lund        Phone: +46 46 270 18 81
Sweden               Fax:   +46 46 13 61 30

Visit our WWW-site at http://www.axis.com/

---

From: Mikael Pahmp <[email-masked]>
Date: Mon, 13 Sep 1999 16:09:44 +0200

> Check.
> Check.
> Check.
> Check. 
> >Note that in my interpretation, scopes from DAs is never 
> collected and used 
> except for an UA using the 'User Selectable Scopes' model.
> >
> 
> That conforms with RFC 2608 in that SA scopes must always be 
> configured.

Yes, but note that I didn't include any scope of DAs assigned through DHCP option 78 or static configuration (e.g. net.use.DAAddresses) at all.

> >Once the scopes have been decided using the administrative 
> model above, DAs are 
> choosen like this:
> >
> Check.
> I interpret the mandatory byte off to mean use statically configured
> DAs only, i.e. ignore any DHCP configured scopes even if there
> are no statically configured DAs. A sysadmin might want to turn
> off DAs completely by toggling the mandatory byte off but not
> statically configuring anything.

You mean that only the scopes of statically configured DAs should be used?
Even if there are no statically configured DAs, i.e. no scope at all?
Even if scopes are assigned through DHCP option 79 with Mandatory byte set?

Again, I think that RFC2608, section 11.2, second paragraph could be interpreted such that scopes of administratively assigned DAs in some circumstances should be used but that it isn't clear that it is the only possible interpretation.

Instead I would suggest that scopes are collected exclusively from DHCP option 79, statically configured scope-list, 'DEFAULT' scope or, for UAs, by DA/SA discovery. I.e. scopes can only be assigned to an SA through DHCP option 79 or statically configured scope-list (e.g. net.slp.useScopes). This way, it is relatively well defined how scopes are assigned.

> 
> BTW, I'm going to post a separate note on this topic, as I think
> the whole procedure for DA and scope configuration is backwards.

I agree that this should be worked through again when we go to draft standard. But I also think we should agree on ONE interpretation, not necessarily mine, of the current RFCs and perhaps recommend it in an additional draft.

/MiP

---

From: James Kempf <[email-masked]>
Date: Mon, 13 Sep 1999 12:40:42 -0700 (PDT)

>Yes, but note that I didn't include any scope of DAs assigned through DHCP 
option 78 or static configuration (e.g. net.use.DAAddresses) at all.

That is how our code works as well. We don't handle DHCP configuration
in the first release, so SA scope configuration only occurs through
the property net.slp.useScopes. SAs don't use scopes of configured
DAs unless the scopes have also been configured.

>Again, I think that RFC2608, section 11.2, second paragraph could be 
interpreted such that scopes of administratively assigned DAs in some 
circumstances should be used but that it isn't clear that it is the only 
possible interpretation.

Your are right. It is unclear what to do if the mandatory byte
is off and there are no statically configured scopes or DAs. However,
as I mentioned in my original response, completely ignoring DHCP
provides sysadmins with the option to turn off DA use completely
for a particular machine.

>Instead I would suggest that scopes are collected exclusively from DHCP option 
79, statically configured scope-list, 'DEFAULT' scope or, for UAs, by DA/SA 
discovery. I.e. scopes can only be assigned to an SA through DHCP option 79 or 
statically configured scope-list (e.g. net.slp.useScopes). This way, it is 
relatively well defined how scopes are assigned.

Yes, that is how Solaris 8 SLP currently works.

		jak