Printer Services Mail Archive: PS> SLP/LDAP for PSI Discover

PS> SLP/LDAP for PSI Discovery - details and examples

From: McDonald, Ira (imcdonald@sharplabs.com)
Date: Fri Nov 29 2002 - 15:09:16 EST

  • Next message: McDonald, Ira: "RE: PS> [PDF posted] Updated Documents"

    Hi folks, Friday (29 November 2002)

    Per my action item at last week's PSI Telecon (19 November 2002), below
    are some examples and details for PSI discovery via SLPv2 (RFC 2608) and
    LDAPv3 (RFC 2251).

    Note that the definition of standard PSI URL scheme names (see below)
    will allow the use of SLPv2 and LDAPv3 for PSI discovery without ANY
    additions to the existing standard printer schemas.

    Cheers,
    - Ira McDonald, co-editor of SLPv2 and LDAPv3 Printer Schemas
      High North Inc
      imcdonald@sharplabs.com

    ------------------------------------------------------------------------

    PSI URL Schemes
    ---------------

    Since PSI Print Services and PSI Target Devices MUST use the (future)
    IANA-registered PSI port and MUST NOT use "http:" port 80 for their
    WSDL/SOAP interface, it follows that we need to define standard URL
    scheme names for them.

    URL scheme registration in the IETF tree (without embedded hyphen '-')
    is EXTREMELY slow (currently several YEARS before acceptance and RFC
    publication). Therefore, I suggest we do NOT register the following two
    PSI URL scheme names, but instead use an unregistered alternative tree
    (with a "pwg-" prefix).

    Conformant to "Registration Procedures for URL Scheme Names" (RFC 2717):

        pwg-psips: - PSI Print Service

        pwg-psitd: - PSI Target Device

    PSI URLs should be converted to underlying HTTP URLs by substitution of
    the "http:" scheme name and insertion of the PSI standard port.

    Printer Schema Locations
    ------------------------

    The IANA-registered SLPv2 Printer Template v2.0 is in the directory:

        ftp://ftp.iana.org/assignments/svrloc-templates/

    in the file:

        printer.2.0.en (8 March 2000)

    The current draft of LDAPv3 Printer Schema v1.0 is in the directory:

        ftp://ftp.ietf.org/internet-drafts/

    in the file:

        draft-fleming-ldap-printer-schema-02.txt (30 June 2002)

    Note: The content and OIDs of the standard LDAPv3 Printer Schema v1.0
    have been stable for three years. IBM and other vendors have been
    shipping implementations for over two years. Although not yet published
    as an RFC, the LDAPv3 Printer Schema v1.0 is entirely safe to deploy
    (the OIDs are assigned in the IBM namespace, NOT in the IETF namespace).

    If the LDAPv3 Printer Schema v1.0 continues to be delayed by the IETF,
    we plan to adopt and publish it as an IEEE/ISTO PWG standard in early
    calendar 2003.

    SLPv2 Discovery
    ---------------

    For PSI discovery, we can use the IANA-registered standard SLPv2 Printer
    Template v2.0 (without ANY extensions), by specifying SLPv2 service
    URLs of the form:

        service:printer:pwg-psips://hostport[abs_path]
        
        service:printer:pwg-psitd://hostport[abs_path]

        hostport = host [ ":" port ]
        host = IPv6reference / IPv4address / hostname
        port = *DIGIT
        abs_path = "/" path_segments

    SLPv2 Service Request
    ---------------------

    To locate available PSI Print Service(s), a PSI Client, acting in the
    role of an SLPv2 User Agent (UA), should use an SLPv2 Service Request
    (see section 8.1 of SLPv2, RFC 2608) of the form:

         0 1 2 3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | Service Location header (function = SrvRqst = 1) |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | length of <PRList> | <PRList> String \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | length of <service-type> | <service-type> String \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | length of <scope-list> | <scope-list> String \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | length of predicate string | Service Request <predicate> \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | length of <SLP SPI> string | <SLP SPI> String \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    The <service-type> should be "service:printer:pwg-psips", to locate
    available PSI Print Service providers. Note that the final ":" MUST NOT
    be included in the <service-type>.

    The <scope-list> (without explicit configuration) should be "DEFAULT"
    (the standard SLPv2 scope). Note that SLPv2 scope names are always
    case-sensitive, so "DEFAULT" must be in uppercase.

    The <predicate> (not needed) MAY specify any LDAPv3 search filter (see
    "The String Representation of LDAP Search Filters", RFC 2254).

    To find a PSI Print Service provider that has SLPv2 registered with a
    different base URL (for example a "service:printer:ipp" URL), use a
    <predicate> that specifies a substring search for "pwg-psips" in the
    "printer-xri-supported" attribute. For example an LDAPv3 filter of:

        "printer-xri-supported=*pwg-psips*"

    SLPv2 Service Reply
    -------------------

    When operating in a zero config environment (without infrastructure), an
    available PSI Print Service(s), acting in the role of an SLPv2 Service
    Agent (UA), will DIRECTLY reply to the PSI Client.

    When operating in a managed environment (with infrastructure), an SLPv2
    Directory Agent (DA) will reply to the PSI Client (on behalf of the
    registered appropriate SLPv2 SAs).

    The presence of the network infrastructure is completely transparent to
    the PSI Client - SLPv2 discovery uses identical SLPv2 requests and
    responses in either case. The SLPv2 Service Reply will be of the form:

         0 1 2 3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | Service Location header (function = SrvRply = 2) |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | Error Code | URL Entry count |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        | <URL Entry 1> ... <URL Entry N> \
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Each returned PSI Print Service URL MUST specify either an IPv4/IPv6
    address (directly usable) or a hostname (which must be resolved by DNS
    or mDNS lookup).

    SLPv2 DA Discovery
    ------------------

    The DHCP option (decimal) 78 may be used, to find an SLPv2 Directory
    Agent (DA), per "DHCP Options for Service Location Protocol" (RFC 2610).

    LDAPv3 Discovery
    ----------------

    For PSI discovery, we can use the standard LDAPv3 Printer Schema v1.0
    (without ANY extensions), by searching for the LDAPv3 object class
    "printerService" (a base class) or "printerServiceAuxClass" (may be
    attached, for example, to a DMTF CIM printer object class - same content
    as "printerService") to find printer URLs (values of the "printer-uri"
    attribute) of the form:

        pwg-psips://hostport[abs_path]
        
        pwg-psitd://hostport[abs_path]

    Also, an LDAPv3 search filter may be used (as with SLPv2) to find the
    substring "pwg-psips" or "pwg-psitd" in the "printer-xri-supported"
    attribute.

    LDAPv3 DSA Discovery
    --------------------

    The DHCP option (decimal) 95 may be used, to find an LDAPv3 Directory
    Service Agent (DSA). See the definition in the directory:

        ftp://ftp.iana.org/assignments/bootp-dhcp-extensions/

    DNS Server Discovery
    --------------------

    The DHCP option (decimal) 6 may be used to find a DNS server address.
    See "DHCP Options and BOOTP Vendor Extensions" (RFC 2132).

    The DHCP option (decimal) 117 may also be used to find a DNS server.
    See "The Name Service Search Option for DHCP" (RFC 2937).



    This archive was generated by hypermail 2b29 : Fri Nov 29 2002 - 15:10:14 EST