tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search     info

RFC 7612

Informational
Pages: 54
Top     in Index     Prev     Next
in Group Index     Prev in Group     No Next: Highest Number in Group     Group: ~ldap

Lightweight Directory Access Protocol (LDAP): Schema for Printer Services

Part 1 of 3, p. 1 to 12
None       Next RFC Part

Obsoletes:    3712


Top       ToC       Page 1 
Independent Submission                                        P. Fleming
Request for Comments: 7612                                   Independent
Obsoletes: 3712                                              I. McDonald
Category: Informational                                       High North
ISSN: 2070-1721                                                June 2015


             Lightweight Directory Access Protocol (LDAP):
                      Schema for Printer Services

Abstract

   This document defines a schema, object classes, and attributes, for
   Printers and print services, for use with directories that support
   the Lightweight Directory Access Protocol (RFC 4510).  This document
   is based on the Printer attributes listed in Appendix E of "Internet
   Printing Protocol/1.1: Model and Semantics" (RFC 2911).  Additional
   Printer attributes are based on definitions in "Printer MIB v2" (RFC
   3805), "PWG Command Set Format for IEEE 1284 Device ID v1.0" (PWG
   5107.2), "IPP Job and Printer Extensions - Set 3 (JPS3)" (PWG
   5100.13), and "IPP Everywhere" (PWG 5100.14).

   This memo is an Independent Submission to the RFC Editor by the
   Internet Printing Protocol (IPP) Working Group of the IEEE-ISTO
   Printer Working Group (PWG), as part of their PWG "IPP Everywhere"
   (PWG 5100.14) project for secure mobile printing with vendor-neutral
   Client software.

   This document obsoletes RFC 3712.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This is a contribution to the RFC Series, independently of any other
   RFC stream.  The RFC Editor has chosen to publish this document at
   its discretion and makes no statement about its value for
   implementation or deployment.  Documents approved for publication by
   the RFC Editor are not a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7612.

Page 2 
Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Table of Contents

   1. Introduction ....................................................4
      1.1. Relationship to SLP Printer Service ........................4
      1.2. Source of LDAP Printer Attributes ..........................4
      1.3. Source of LDAP Printer Schema OIDs .........................5
           1.3.1. IBM Assignments for RFC 3712 ........................5
           1.3.2. IEEE-ISTO PWG Assignments ...........................5
      1.4. Rationale for Design Choices ...............................5
           1.4.1. Rationale for Using DirectoryString Syntax ..........5
           1.4.2. Rationale for Using caseIgnoreMatch .................6
           1.4.3. Rationale for Using caseIgnoreSubstringsMatch .......7
   2. Conventions Used in This Document ...............................8
      2.1. Requirements Language ......................................8
      2.2. LDAP Schema Descriptions ...................................8
      2.3. Abbreviations ..............................................8
   3. Definition of Object Classes ....................................9
      3.1. slpServicePrinter .........................................10
      3.2. printerAbstract ...........................................10
      3.3. printerService ............................................11
      3.4. printerServiceAuxClass ....................................12
      3.5. printerIPP ................................................12
      3.6. printerLPR ................................................12
   4. Definition of Attribute Types ..................................13
      4.1. printer-uri ...............................................15
      4.2. printer-xri-supported .....................................16
      4.3. printer-name ..............................................18
      4.4. printer-natural-language-configured .......................19
      4.5. printer-location ..........................................19
      4.6. printer-info ..............................................20
      4.7. printer-more-info .........................................21
      4.8. printer-make-and-model ....................................21
      4.9. printer-ipp-versions-supported ............................22
      4.10. printer-multiple-document-jobs-supported .................23
      4.11. printer-charset-configured ...............................23
      4.12. printer-charset-supported ................................24

Top      ToC       Page 3 
      4.13. printer-generated-natural-language-supported .............24
      4.14. printer-document-format-supported ........................25
      4.15. printer-color-supported ..................................25
      4.16. printer-compression-supported ............................26
      4.17. printer-pages-per-minute .................................26
      4.18. printer-pages-per-minute-color ...........................27
      4.19. printer-finishings-supported .............................27
      4.20. printer-number-up-supported ..............................28
      4.21. printer-sides-supported ..................................28
      4.22. printer-media-supported ..................................29
      4.23. printer-media-local-supported ............................30
      4.24. printer-resolution-supported .............................30
      4.25. printer-print-quality-supported ..........................31
      4.26. printer-job-priority-supported ...........................32
      4.27. printer-copies-supported .................................32
      4.28. printer-job-k-octets-supported ...........................33
      4.29. printer-current-operator .................................33
      4.30. printer-service-person ...................................34
      4.31. printer-delivery-orientation-supported ...................34
      4.32. printer-stacking-order-supported .........................35
      4.33. printer-output-features-supported ........................36
      4.34. printer-aliases ..........................................37
      4.35. printer-device-id ........................................37
      4.36. printer-device-service-count .............................38
      4.37. printer-uuid .............................................38
      4.38. printer-charge-info ......................................39
      4.39. printer-charge-info-uri ..................................39
      4.40. printer-geo-location .....................................40
      4.41. printer-ipp-features-supported ...........................41
   5. Definition of Syntaxes .........................................42
   6. Definition of Matching Rules ...................................42
   7. IANA Considerations ............................................42
      7.1. Registration of Attribute Types ...........................43
      7.2. Object Classes and Attribute Types from RFC 3712 ..........44
   8. Internationalization Considerations ............................45
   9. Security Considerations ........................................45
   10. References ....................................................46
      10.1. Normative References .....................................46
      10.2. Informative References ...................................50
   Appendix A. Changes since RFC 3712 ................................52
   Acknowledgments ...................................................54
   Authors' Addresses ................................................54

Top      ToC       Page 4 
1.  Introduction

   This document defines several object classes to provide Lightweight
   Directory Access Protocol (LDAP) [RFC4510] applications with flexible
   options in defining Printer information using an LDAP schema.
   Classes are provided for defining directory entries with common
   Printer information as well as for extending existing directory
   entries with Service Location Protocol Version 2 (SLPv2) [RFC2608],
   Internet Printing Protocol/1.1 (IPP/1.1) [RFC2911], and lineprinter
   (LPR) [RFC1179] protocol-specific information.

   This memo is an Independent Submission to the RFC Editor by the
   Internet Printing Protocol Working Group of the IEEE-ISTO Printer
   Working Group, as part of their Printer Working Group (PWG) "IPP
   Everywhere" (PWG 5100.14) project for secure mobile printing with
   vendor-neutral Client software.

1.1.  Relationship to SLP Printer Service

   The schema defined in this document is technically aligned with the
   stable IANA-registered 'service:printer:' v2.0 template [SLPPRT20],
   for compatibility with already-deployed SLPv2 [RFC2608] service
   advertising and discovery infrastructure.  The attribute syntaxes are
   technically aligned with the 'service:printer:' v2.0 template;
   therefore, simpler types are sometimes used (for example,
   'DirectoryString' [RFC4517] rather than 'labeledURI' [RFC2079] for
   the 'printer-uri' attribute).

1.2.  Source of LDAP Printer Attributes

   The schema defined in this document is based on:

   o  all of the Printer attributes listed in Appendix E ("Generic
      Directory Schema") of "Internet Printing Protocol/1.1: Model and
      Semantics" [RFC2911] that are defined in Section 4.4 ("Printer
      Description Attributes") of [RFC2911]

   o  selected Printer attributes defined in "Printer MIB v2" [RFC3805],
      "PWG Command Set for IEEE 1284 Device ID v1.0" [PWG5107.2], "IPP
      Job and Printer Extensions - Set 3 (JPS3)" [PWG5100.13], and "IPP
      Everywhere" [PWG5100.14]

   See the table of Printer attributes and source documents in Section 4
   ("Definition of Attribute Types") of this document.

Top      ToC       Page 5 
1.3.  Source of LDAP Printer Schema OIDs

1.3.1.  IBM Assignments for RFC 3712

   In March 2000, IBM permanently assigned ASN.1 OIDs to all of the
   object classes and attribute types that were defined in the original
   LDAP Printer Schema [RFC3712] (see Section 7.2).

1.3.2.  IEEE-ISTO PWG Assignments

   In October 2011, IBM permanently delegated the base ASN.1 OID
   "1.3.18.0.2.24.46" to the IEEE-ISTO PWG for use in any PWG project.
   In October 2011, the IEEE-ISTO PWG permanently assigned subordinate
   ASN.1 OIDs for all of the new attribute types defined in this updated
   LDAP Printer Schema (see Section 7.1).

1.4.  Rationale for Design Choices

1.4.1.  Rationale for Using DirectoryString Syntax

   The attribute syntax 'DirectoryString' (UTF-8 [STD63]) defined in
   [RFC4517] is specified for several groups of string attributes that
   are defined in this document:

   1) URI

      - printer-uri, printer-xri-supported, printer-more-info,
        printer-charge-info-uri, printer-uuid

        The UTF-8 encoding is compatible with deployment of (UTF-8
        based) Internationalized Resource Identifiers (IRIs) [RFC3987].

   2) Description

      - printer-name, printer-location, printer-info,
        printer-make-and-model

        The UTF-8 encoding supports descriptions in any language,
        conformant with the IETF Policy on Character Sets and Languages
        [BCP18].

        Note: The printer-natural-language-configured attribute contains
        a language tag [BCP47] for these description attributes (for
        example, to support text-to-speech conversions).

Top      ToC       Page 6 
   3) Keyword

      - printer-compression-supported, printer-finishings-supported,
        printer-media-supported, printer-media-local-supported,
        printer-print-quality-supported

        The UTF-8 encoding is compatible with the current IPP/1.1
        [RFC2911] definition of the equivalent attributes, most of which
        have the IPP/1.1 union syntax 'keyword' or 'name'.  The keyword
        attributes defined in this document are extensible by site-
        specific or vendor-specific 'names' that behave like new
        'keywords'.

        Note: In IPP/1.1, each value is strongly typed over-the-wire as
        either 'keyword' or 'name'.  This union selector is not
        preserved in the definitions of these equivalent LDAP
        attributes.

1.4.2.  Rationale for Using caseIgnoreMatch

   The EQUALITY matching rule 'caseIgnoreMatch' defined in [RFC4517] is
   specified for several groups of string attributes that are defined in
   this document:

   1) URI

      These URI attributes specify EQUALITY matching with
      'caseIgnoreMatch' (rather than with 'caseExactMatch') in order to
      conform to the spirit of [STD66], which requires case-insensitive
      matching on the host part of a URI versus case-sensitive matching
      on the remainder of a URI.

      These URI attributes follow existing practice of supporting
      case-insensitive equality matching for host names in the
      associatedDomain attribute defined in [RFC4524].

      Either equality matching rule choice would be a compromise:

      a) case-sensitive whole URI matching can lead to false negative
         matches and has been shown to be fragile (given deployed client
         applications that 'pretty up' host names displayed and
         transferred in URI);

      b) case-insensitive whole URI matching can lead to false positive
         matches, although it is a dangerous practice to publish URI
         that differ only by case (for example, in the path elements).

Top      ToC       Page 7 
   2) Description

      Case-insensitive equality matching is more user-friendly for
      description attributes.

   3) Keyword

      Case-insensitive equality matching is more user-friendly for
      keyword attributes.

   4) IEEE 1284 Device ID

      Case-insensitive equality matching is mandatory for IEEE 1284
      Device ID attributes.

1.4.3.  Rationale for Using caseIgnoreSubstringsMatch

   The SUBSTR matching rule 'caseIgnoreSubstringsMatch' defined in
   [RFC4517] is specified for several groups of string attributes that
   are defined in this document:

   1) URI

      These URI attributes follow existing practice of supporting
      case-insensitive equality matching for host names in the
      associatedDomain attribute defined in [RFC4524].

   2) Description

      Support for case-insensitive substring matching is more
      user-friendly for description attributes.

   3) Keyword

      Support for case-insensitive substring matching is more
      user-friendly for keyword attributes.

   4) IEEE 1284 Device ID

      Support for case-insensitive substring matching is mandatory for
      IEEE 1284 Device ID attributes.

Top      ToC       Page 8 
2.  Conventions Used in This Document

2.1.  Requirements Language

   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 [RFC2119].

2.2.  LDAP Schema Descriptions

   Schema definitions are provided using LDAP [RFC4510] description
   formats.  Definitions provided here are formatted (line wrapped) for
   readability.

2.3.  Abbreviations

   This document makes use of the following abbreviations (given with
   their expanded forms and references for further reading):

   IANA   - Internet Assigned Numbers Authority
            <http://www.iana.org>

   IEEE   - Institute of Electrical and Electronics Engineers
            <http://www.ieee.org>

   IPP    - Internet Printing Protocol [RFC2911] [PWG5100.12]
            <http://www.pwg.org/ipp/>

   ISTO   - IEEE Industry Standards and Technology Organization
            <http://www.ieee-isto.org/>

   PWG    - IEEE-ISTO Printer Working Group
            <http://www.pwg.org>

   RFC    - Request for Comments
            <http://www.rfc-editor.org>

   TLS    - Transport Layer Security [RFC5246]

   URI    - Uniform Resource Identifier [STD66]

   URL    - Uniform Resource Locator [STD66]

   UTF-8  - Unicode Transformation Format - 8-bit [STD63]

Top      ToC       Page 9 
3.  Definition of Object Classes

   We define the following LDAP object classes for use with both generic
   Printer-related information and services specific to SLPv2 [RFC2608],
   IPP/1.1 [RFC2911], and LPR [RFC1179].

      slpServicePrinter - auxiliary class for SLP-registered Printers
      printerAbstract - abstract class for all Printer classes
      printerService - structural class for Printers
      printerServiceAuxClass - auxiliary class for Printers
      printerIPP - auxiliary class for IPP Printers
      printerLPR - auxiliary class for LPR Printers

   The following are some examples of how applications could choose to
   use these classes when creating directory entries:

   1) Use printerService for directory entries containing common Printer
      information.

   2) Use both printerService and slpServicePrinter for directory
      entries containing common Printer information for SLP-registered
      Printers.

   3) Use printerService, printerLPR, and printerIPP for directory
      entries containing common Printer information for Printers that
      support both LPR and IPP.

   4) Use printerServiceAuxClass and object classes not defined by this
      document for directory entries containing common Printer
      information.  In this example, printerServiceAuxClass is used for
      extending other structural classes defining Printer information
      with common Printer information defined in this document.

   Refer to Section 4 for the definition of attribute types referenced
   by these object classes.  We use attribute names instead of OIDs in
   object class definitions for clarity.  Some attribute names described
   in [RFC2911] have been prefixed with 'printer-' as recommended in
   [RFC2926] and [SLPPRT20].

Top      ToC       Page 10 
3.1.  slpServicePrinter

   ( 1.3.18.0.2.6.254
   NAME  'slpServicePrinter'
   DESC  'Service Location Protocol (SLP) information.'
   AUXILIARY
   SUP   slpService
   )

   This auxiliary class defines information specific to the Service
   Location Protocol (SLPv2) [RFC2608].  It MAY be used to create new,
   or extend existing, directory entries with SLP 'service:printer'
   abstract service type information as defined in [SLPPRT20].  This
   object class is derived from 'slpService', the parent class for all
   SLP services, defined in [RFC2926].

3.2.  printerAbstract

   ( 1.3.18.0.2.6.258
   NAME  'printerAbstract'
   DESC  'Printer-related information.'
   ABSTRACT
   SUP   top
   MAY   ( printer-name $
           printer-natural-language-configured $
           printer-location $
           printer-info $
           printer-more-info $
           printer-make-and-model $
           printer-multiple-document-jobs-supported $
           printer-charset-configured $
           printer-charset-supported $
           printer-generated-natural-language-supported $
           printer-document-format-supported $
           printer-color-supported $
           printer-compression-supported $
           printer-pages-per-minute $
           printer-pages-per-minute-color $
           printer-finishings-supported $
           printer-number-up-supported $
           printer-sides-supported $
           printer-media-supported $
           printer-media-local-supported $
           printer-resolution-supported $
           printer-print-quality-supported $
           printer-job-priority-supported $
           printer-copies-supported $
           printer-job-k-octets-supported $

Top      ToC       Page 11 
           printer-current-operator $
           printer-service-person $
           printer-delivery-orientation-supported $
           printer-stacking-order-supported $
           printer-output-features-supported $
           printer-device-id $
           printer-device-service-count $
           printer-uuid $
           printer-charge-info $
           printer-charge-info-uri $
           printer-geo-location )
   )

   This abstract class defines Printer information.  It is a base class
   for deriving other Printer-related classes, such as, but not limited
   to, classes defined in this document.  It defines a common set of
   Printer attributes that are not specific to any one type of service,
   protocol, or operating system.

3.3.  printerService

   ( 1.3.18.0.2.6.255
   NAME  'printerService'
   DESC  'Printer information.'
   STRUCTURAL
   SUP   printerAbstract
   MAY   ( printer-uri $
           printer-xri-supported )
   )

   This structural class defines Printer information.  It is derived
   from class printerAbstract and thus inherits common Printer
   attributes.  This class can be used with or without auxiliary classes
   to define Printer information.  Auxiliary classes can be used to
   extend the common Printer information with information specific to
   the protocol, service, or operating system.

   Note: When extending other structural classes with auxiliary classes,
   printerService SHOULD NOT be used.

Top      ToC       Page 12 
3.4.  printerServiceAuxClass

   ( 1.3.18.0.2.6.257
   NAME  'printerServiceAuxClass'
   DESC  'Printer information.'
   AUXILIARY
   SUP   printerAbstract
   MAY   ( printer-uri $
           printer-xri-supported )
   )

   This auxiliary class defines Printer information.  It is derived from
   class printerAbstract and thus inherits common Printer attributes.

3.5.  printerIPP

   ( 1.3.18.0.2.6.256
   NAME  'printerIPP'
   DESC  'Internet Printing Protocol (IPP) information.'
   AUXILIARY
   SUP   top
   MAY   ( printer-ipp-versions-supported $
           printer-ipp-features-supported $
           printer-multiple-document-jobs-supported )
   )

   This auxiliary class defines Internet Printing Protocol (IPP/1.1)
   [RFC2911] information.  It is used to extend structural classes with
   IPP-specific Printer information.

   Note: See "Internet Printing Protocol/1.1: IPP URL Scheme" [RFC3510]
   and "Internet Printing Protocol (IPP) over HTTPS Transport Binding
   and the 'ipps' URI Scheme" [RFC7472] for conforming URI for IPP
   Printers.

3.6.  printerLPR

   ( 1.3.18.0.2.6.253
   NAME  'printerLPR'
   DESC  'LPR information.'
   AUXILIARY
   SUP   top
   MUST  ( printer-name )
   MAY   ( printer-aliases )
   )

   This auxiliary class defines LPR [RFC1179] information.  It is used
   to identify directory entries that support LPR.


Next RFC Part