Subject: RE: Thinking about advancing SLPv2 to draft standard

From: "McDonald, Ira" <[email-masked]>
Date: Fri, 19 May 2000 07:39:50 -0700

Hi Ebi,

I'll try to reply to some of your questions.

1)  LDAP Integration
    See 'draft-ietf-svrloc-template-conversions-05.txt'
    "Conversion of LDAP Schemas to and from SLP Templates"
    (October 1999) - used as the basis of our recent work
    translating the SLP 'printer' template to an equivalent
    LDAP 'printer' schema - see our latest drafts in

    'draft-ietf-svrloc-printer-scheme-06.txt'
    "Definition of Printer Abstract Service Type v2.0"
    (March 2000) 

    'draft-ietf-ipp-ldap-printer-schema-01.txt'
    "IPP: LDAP Schema for Printer Services"
    (April 2000)

2)  LDAP Replication
    Several implementations of SLPv2 DAs (Directory Agents)
    have a feature for automatic 'shadowing' of SLP SA
    (Service Agent) registrations to LDAP directories
    (to enable enterprise-wide propagation for discovery)
    - I think this is true of the Sun implementation -
    James Kempf can comment on that.

3)  Microsoft's SSDP (Simple Service Discovery Protocol)
    This is rather different from SLP: a) MS SSDP operates
    over Microsoft's HTTPU/HTTPMU (HTTP over UDP - *not*
    on the Internet 'standards track'); and b) SSDP does
    not permit/return service attributes on service
    registrations - that is, you can find all the printers
    in your world, but you must communicate directly with
    those printers to discover their capabilities (color,
    duplex, media sizes, etc.).

4)  Other service advertising/discovery protocols
    There are other service discovery protocols, e.g.,
    Sun Jini, Salutations, etc. - several are working to
    integrate with SLP - several others live in their own
    sandbox.

Hope some of this helps - now Erik Guttman and James Kempf
can correct me where I've gone wrong.

Cheers,
- Ira McDonald, consulting architect at Xerox and Sharp
  High North Inc

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]
Sent: Thursday, May 18, 2000 1:36 PM
To: Erik Guttman
Cc: [email-masked]
Subject: Re: Thinking about advancing SLPv2 to draft standard

Hi,

	Is there any work that is going on to integrate this with LDAP.  How
	does the interoperate with UPnP (SSDP) ?

	Thanks.

--
Regards,
Ebi
============================================================================
==
Ebenezer Schubert                        Phone (Off) : 408-447-7652
Hewlett-Packard                          email: [email-masked]
19410, Homestead Road,                          [email-masked] 
Cupertino, CA 95014
Mailstop 43LP
============================================================================
==

On Thu, May 18, 2000 at 08:27:46AM +0200, Erik Guttman wrote:
> 
> Hello all.  
> 
> The time has come to consider moving SLPv2 to draft standard.  
> 
> There have been many concerns that 'SLP is too big.'  SLP could well be
> trimmed.  The attached draft aims at deprecating all features which I
> believe are non-essential and which have not achieved a level of inter-
> operability.  The draft includes an analysis of what made SLPv2 complex
> to implement and shows how the deprecations remove these features.
> 
> Please review the draft and lets discuss if we can add more features
> to the list.  If any of the features I suggest are indeed essential,
> we can remove them from the list of features to drop.
> 
> The goal is that existing SLPv2 agents would not have to be modified,
> though UAs might get back some 'not implemented' errors if they use
> some of the deprecated features in the future.
> 
> The highest goal has to be making SLPv2 stable, lightweight, interoperable
> and as broadly useful as possible.
> 
> This is only the beginning of the process of advancing SLPv2 to draft
> standard.  We need to have a specification which has binary compatibility
> with RFC 2608 and for which we get at least interoperable implementations 
> of each feature.  Lets think hard about what we really need to keep.
> 
> Erik
> 
> ps. The draft will be appearing in the i-d directories soon.

Content-Description: default
>  
> 
> 
> Internet Engineering Task Force                            Erik Guttman
> INTERNET DRAFT                                              James Kempf
> 19 May 2000                                            Sun Microsystems
> Expires in six months
> 
> 
>                      Proposed Modifications to the
>                   Service Location Protocol, Version 2
>                  <draft-guttman-svrloc-slpv2bis-00.txt>
> 
> Status of this Memo
> 
>    This document is an Internet-Draft and is in full conformance with
>    all provisions of Section 10 of RFC2026.
> 
>    Internet-Drafts are working documents of the Internet Engineering
>    Task Force (IETF), its areas, and its working groups.  Note that
>    other groups may also distribute working documents as Internet-
>    Drafts.
> 
>    Internet-Drafts are draft documents valid for a maximum of six months
>    and may be updated, replaced, or obsoleted by other documents at any
>    time.  It is inappropriate to use Internet-Drafts as reference
>    material or to cite them other than as "work in progress."
> 
>    The list of current Internet-Drafts can be accessed at
>    http://www.ietf.org/ietf/1id-abstracts.txt
> 
>    The list of Internet-Draft Shadow Directories can be accessed at
>    http://www.ietf.org/shadow.html.
> 
>    Copyright (C) The Internet Society (2000).  All Rights Reserved.
> 
> 
> Abstract
> 
>    SLPv2 [1] has been widely implemented but not all features of the
>    protocol are in common use.   If these features were deprecated from
>    the specification the protocol would be simpler, yet still perform
>    its core function.  The changes proposed in this document could be
>    the basis for a revision of SLPv2 as it is considered for advancement
>    to Draft Standard.
> 
> 
> 1. Introduction
> 
>    SLPv2 has been widely implemented but not all features of the
>    protocol are in common use.   If these features were deprecated from
>    the specification the protocol would be simpler, yet still perform it
>    core features.  The changes proposed in this document could be the
>    basis for a revision of SLPv2 as it is considered for advancement to
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 1]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>    Draft Standard.
> 
>    This document begins with the motivation for revision.  Specific
>    revisions are proposed.  Finally, minimal requirements for SLPv2bis
>    compliant hosts are summarized.
> 
>    Changes proposed in this document will not modify any of the SLPv2
>    on-the-wire protocol.  Features will be dropped and in a couple cases
>    slightly new interpretations of rules are given.
> 
>    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
>    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this
>    document are to be interpreted as described in RFC 2119 [2].
> 
> 
> 2.0 Motivation
> 
>    There are four features which made SLPv2 complicated to implement.
> 
>       - SAs and DAs MUST implement full LDAPv3 search filters [3] for
>       matching service requests.  This required complex parsing and
>       indexing.  See Section 3.1.
> 
>      - Attribute Requests by service type was difficult to collate.  See
>       Section 3.2.
> 
>      - SAs MUST keep track of all DAs it discovers and forward SrvReg
>       and SrvDereg messages to each of them.  This requires the SA to
>       passively discover DAs and to maintain and act on non-trivial
>       state information.  See Section 3.3.
> 
>      - Previous Responder Lists made message headers variable length for
>       each retransmission.  See Section 3.4.
> 
>    Each of these features has proven to be unnecessary.  In fact many
>    implementations have foregone them.
> 
>    There are other features which were viewed as useful during the
>    design phase of SLPv1 which have not proven their worth in deployment
>    and have burdened the protocol unnecessarily.
> 
> 3.0 Recommended Modifications of SLPv2
> 
>    The following section details all suggested changes to the protocol.
> 
> 3.1 Service Request
> 
>      3.1.1. Limit requests to at most 1 '&' logical operator.  Thus,
>       only requests of type (x=4) or (&(x=4)(y=3)) are allowed.
> 
>      3.1.2. Allow only '=' based comparisons.  Thus all comparisons are
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 2]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>       case insensitive string based.
> 
>      3.1.3. Eliminate support for wild cards in queries.
> 
>    The result of these rules will be that SLPv2 search filters will be
>    compatible with LDAPv3 search filter, but not visa versa.
> 
>    Complicated logical queries for services have not proven useful.
>    Allowing conjunctions of required attributes has proven very useful
>    and is easy to implement.
> 
>    It might be argued that eliminating support for '<=' and '>=' filters
>    will make it impossible to do load balancing with SLPv2.  It is
>    possible to do load balancing by requesting all services and then
>    comparing their attributes for a given value at the UA.  It would
>    also be possible to create a SLPv2 extension for load balancing on a
>    particular attribute.
> 
> 
> 3.2 Attribute Request
> 
>      3.2.1. Eliminate attribute requests by type.  Attribute requests
>       will be by service URL only.
> 
>      3.2.2. Eliminate wild cards in attribute request search filters.
> 
>    Another possibility would be more radical:
> 
>      3.2.3. Deprecate attribute requests entirely as the Attribute List
>       Extension [8] may be used when a UA wants to retrieve attributes.
> 
>    Attribute requests for service by type have proven difficult to
>    implement and interpret.  This feature should be deprecated.
> 
> 
> 3.3 DA Discovery
> 
>      3.3.1. Recommend that DAs do mesh enhancement [7].
> 
>    Mesh enhanced DAs add very little complexity to DAs.  If even one is
>    present in a given scope, a SA does not need to keep track of other
>    DAs in that scope.  Forwarding to the mesh enhanced DA will
>    effectively cause a registration to be forwarded to all DAs in that
>    scope.
> 
> 
> 3.4 Transport
> 
>      3.4.1. Deprecate Previous Responder lists - but random delays on
>       replies are a MUST.  If PR lists are in requests, SAs and DAs MAY
>       ignore them.
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 3]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>    PR lists only work with <100 responders.  In that case, as long as
>    replies are staggered there is no overflow risk.  So PR lists are
>    really not useful except to suppress responses to save network
>    usage).
> 
> 
> 3.5 Scope Configuration
> 
>      3.5.1. Deprecate MANDATORY flags in RFC 2610.
> 
>      3.5.2. Use nested scopes in MADCAP [5] for scope config.  SAs and
>       DAs join all groups at the top of each nested scope (address
>       range).  They advertise all scopes by the name received in the
>       MADCAP Nested Scope Option [6].
> 
>      3.5.3. The simplified scope configuration list would be in
>       decreasing order of preference
>              Pref   Feature                           Requirement 'mode'
>               1)    static configuration of scope list  MUST
>               2)    static configuration of DAs*        MUST
>               3)    dhcp configuration                  SHOULD
>               4)    dhcp configuration of DAs*          SHOULD
>               5)    MADCAP / scope configuration        SHOULD
>               6)    dynamic discovery (DAAdverts)**     MAY
>               7)    dynamic discovery (SAAdverts)**     MAY
>               8)    Use of the scope "default"          MUST
> 
>    The higher item on the list always takes precedence over the lower
>    items.  If no other configuration is supplied, a SLP Agent is
>    configured with the scope list "default".
> 
>    * If a scope list is not configured (by through static configuration
>      or DHCP) but a list of DAs is, the SLP Agent MUST unicast a
>      SrvRqst for "service:directory-agent" to each of the DAs on the
>      list.  The SLP Agent is configured with the scope list which is the
>      union of all scopes supported by the DAs which respond with a
DAAdvert.
>      If a DA on the configuration list does not respond, the SLP Agent
>      SHOULD try to send it a SrvRqst again periodically (like every 30
>      minutes).  Once a DAAdvert is received, the scope list MAY be
>      expanded and the # of DAs known of by the SLP Agent increases.
> 
>    **Dynamic discovery of scopes MAY be used by User Agents and
>      MUST NOT be used to configure Service Agent or Directory Agent
>      scope lists.
> 
>    The problem with the current scope rules is that they are overly
>    complicated.  This is largely due to the 'MANDATORY' bit in the
>    SLPv2 DHCP Option [9].  A clarification of how to do scope rules
>    using the current specifications shows just how hard it is [10].
> 
>    Further, when SLPv2 was published, the Administrative Scoping BCP
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 4]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>    [4] was available, but further specifications were not.  Now, with
>    MADCAP and the MADCAP Nested Scope Option it is possible to define
>    specific automatic scope configuration behavior.
> 
> 
> 3.6 Service Deregistration
> 
>      3.6.1. Eliminate wild cards in the tag list for selective attribute
>       deregistration.
> 
> 
> 3.7 String Matching
> 
>      3.7.1. Eliminate the requirement to elide white space in
>       requests.  If white space is included unintentionally
>       on registration or requests - that is an error.  Use
>       the templates literally (just don't add unwanted space).
>       This effects every message - scope lists, tag lists,
>       attribute lists, queries, and so on.
> 
>    Eliding white space allowed requests to be 'sloppy' and still
>    match strings in registered by other servers.  In practice this
>    does not seem to be a problem since strings can be trimmed before
>    being registered or before requests are sent.  Many strings are
>    will have extra white space due to manual entry anyway.
> 
> 
> 4.0 Minimal Features
> 
>    The following minimal features will result from this trimming
>    of SLPv2.
> 
> 4.1 Directory Agent
> 
>      - Send DAAdverts periodically
>      - Respond to service requests for DA with DAAdvert
>      - Respond to SrvRqst, AttrRqst and SrvTypeRqst with
>       SrvRply, AttrRply and SrvTypeRqst
>      - Accept SrvReg and SrvDereg messages
>      - Age services out of the cache when their lifetimes expire
> 
>    The following mandatory features for DAs would be dropped
>    due to the proposed revision.
> 
>      - Handling Previous Responder Lists.
>      - Handling Attribute Requests by service type.
>      - Handling wild cards in Service Deregistration tag lists.
> 
>    For backward compatibility with existing SLPv2 UAs and SAs
>    other features could not be dropped.  However, very few SLPv2
>    DAs have been deployed.  It is conceivable that further features
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 5]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>    (described in section 3) could be made optional for DAs.
> 
> 
> 4.2 Service Agent
> 
>        - Active DA discovery (1)
>        - Passive DA discovery (1)
>        - Respond to service request for SA with SAAdvert
>        - Respond to service requests for services with SrvRply (2)
>        - De/Register with discovered DAs (1)
> 
>    (1) If mesh enhanced DAs have been discovered, only one DA need be
>        registered with.  Further passive DA discovery would not be
>        needed once such a DA has been discovered, too.
> 
>    (2) SAs return a 'not implemented error' if they cannot parse a
>        LDAPv3 search filter.  Clients can then infer that the SA
>        can only handle the restricted subset. (Since SLPv2 SAs MUST
>        support SrvRqst - the not implemented refers to the search
>        filter not to the function).
> 
>    The following mandatory features for SAs would be dropped
>    due to the proposed revision.
> 
>      - Handling Previous Responder Lists.
>      - Eliding White Space
>      - Handling LDAPv3 search filters
>      - Handling wild cards in strings
> 
> 
> 4.3 User Agent
> 
>      - Active DA discovery (1)
>      - Multicast SrvRqst if no discovered DAs
>      - Unicast SrvRqst if discovered DAs
> 
>    (1) Active DA discovery should be done periodically if no DAs
>        discovered initially.
> 
>    The following mandatory features for UAs would be dropped
>    due to the proposed revision.
> 
>      - Handling Previous Responder Lists.
> 
> 
> 5.0 Backward Compatibility
> 
>    SLPv2 may be modified to drop features and remain backwardly
>    compatible with the current specification.  Only two things
>    need to occur to guarantee this.  First, SLPv2 DAs SHOULD
>    remain backwards compatible with RFC 2608 features.  Second,
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 6]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>    SLPv2 UAs and SAs MUST be prepared to accept NOT IMPLEMENTED
>    errors for the features which are being dropped.
> 
>    The risk of backward compatibility problems is limited because
>    client and server systems (UA and SA pairs) tend to be deployed
>    together to form end-to-end systems.  As new UAs and SAs are
>    deployed, they will not attempt to use the deprecated features.
> 
> 
> 6.0 Security Considerations
> 
>    The modifications described in this memo would not modify the
>    security considerations for SLPv2 [1] except in so far as they
>    suggest the use of mesh-enhanced registration.  Those security
>    considerations are discussed elsewhere [7].
> 
> 
> 7.0 Acknowledgments
> 
>    Mikael Pahmp (Axis Communications) contributed very helpful
>    comments which started the process of thinking about how to
>    trim down SLPv2.
> 
> 
> 8.0 References
> 
>   [1] Guttman, E., Perkins, C., Veizades, J., Day, M., "Service
>       Location Protocol, Version 2", RFC 2608, July 1999.
> 
>   [2] Bradner, S., "Key words for use in RFCs to Indicate
>       Requirement Levels", BCP 14, RFC 2119, March 1997.
> 
>   [3] Howes, T., "The String Representation of LDAP Search Filters",
>       RFC 2254, December 1997.
> 
>   [4] Meyer, D., "Administratively Scoped IP Multicast", RFC 2365,
>       July 1998.
> 
>   [5] Hanna, S., Patel, B., Shah, M., "Multicast Address Dynamic
>       Client Allocation Protocol (MADCAP)", RFC 2730, December 1999.
> 
>   [6] Kermode, R., "MADCAP Multicast Scope Nesting State Option",
>       <draft-ietf-malloc-madcap-nest-opt-04.txt>, April 2000,
>       A work in progress.
> 
>   [7] Zhao, W., Schulzrinne, H., "Interaction of SLP Directory Agents
>       for Reliability and Scalability", <draft-zhao-slp-da-
>       interaction-03.txt>, May 2000, A work in progress.
> 
>   [8] Guttman, E., "Attribute List Extension for the Service Location
>       Protocol", draft-guttman-svrloc-attrlist-ext-02.txt, March 1999,
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 7]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
>       A work in progress.
> 
>   [9] Perkins, C., Guttman, E., "DHCP Options for Service Location
>       Protocol", RFC 2610 June 1999.
> 
>  [10] Kempf, J., Pahmp, M., Holm, R., "SLP Scope and DA Configuration",
>       <draft-kempf-scope-rules-03.txt>, December 1999, A work in
>       progress.
> 
> 
> 9.0 Authors' Contact Information
> 
>       Erik Guttman
>       Network and Security Research Center, Sun Laboratories
>       Sun Microsystems, Inc.
>       Eichhoelzelstr. 7
>       74915 Waibstadt
>       Germany
> 
>       Phone: +49 172 865 5497
>       Fax:   +49 7263 911 701
>       Email: [email-masked]
> 
> 
>       James Kempf
>       Network and Security Research Center, Sun Laboratories
>       Sun Microsystems, Inc.
>       15 Network Circle
>       Menlo Park, CA 94025
>       USA
> 
>       Phone: +1 650 786 5890
>       Fax:   +1 650 786 6445
>       Email: [email-masked]
> 
> 
> 10. Full Copyright Statement
> 
> Copyright (C) The Internet Society (2000).  All Rights Reserved.
> This document and translations of it may be copied and furnished to
> others, and derivative works that comment on or otherwise explain it or
> assist in its implementation may be prepared, copied, published and
> distributed, in whole or in part, without restriction of any kind,
> provided that the above copyright notice and this paragraph are included
> on all such copies and derivative works.  However, this document itself
> may not be modified in any way, such as by removing the copyright notice
> or references to the Internet Society or other Internet organizations,
> except as needed for the purpose of developing Internet standards in
> which case the procedures for copyrights defined in the Internet
> Standards process must be followed, or as required to translate it into
> languages other than English.  The limited permissions granted above are
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 8]
> 

> Internet Draft          Proposed SLPv2 Revision             October 1999
> 
> 
> perpetual and will not be revoked by the Internet Society or its
> successors or assigns.  This document and the information contained
> herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
> INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
> INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
> WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Guttman, Kempf         Expires: 18 November 2000                [Page 9]
> 
>

---

From: James Kempf <[email-masked]>
Date: Mon, 22 May 2000 09:48:37 -0700 (PDT)

Based on the original SLPv2 definition, we have internally done a prototype
DA that backends to an LDAP database.

The other LDAP integration feature in SLPv2 is a provision for a 
UA or SA client to switch to LDAP for service access if a DA advert
contains an LDAP URL instead of an SLP URL. We have not tested this
yet.

I might add that the proposed simplifications Erik sent out would
weaken LDAP compatibility, in the sense that the query format
would be a weaker subset of the LDAPv3 format than currently. Currently,
the only unsupported feature is extensible matching rules. The proposed
simplifications would remove all operators except for equality,
allow only one level of logical combination, and limit attribute
types to strings. Based on our experience implementing SLP, however,
we believe these simplifactions would substantially reduce the
complexity of SA implementation, and thereby make SLP more attractive
for embedded systems.

		jak

>X-Authentication-Warning: wicked.neato.org: majordom set sender to 
[email-masked] using -f
>From: [email-masked]
>Date: Thu, 18 May 2000 13:36:02 -0700
>To: Erik Guttman <[email-masked]>
>Cc: [email-masked]
>Mime-Version: 1.0
>==============================================================================
>==============================================================================
>
>
>>      union of all scopes supported by the DAs which respond with a DAAdvert.