RFC 3712

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

πŸ“… published February 2004, from ietf

RFC 3712: Lightweight Directory Access Protocol (LDAP): Schema for Printer Services πŸ–¨οΈπŸŽ€

okay bestie, this one is an Informational RFC from February 2004, and it's written by P. Fleming (IBM) and I. McDonald (High North) ✨. It doesn't obsolete anything and doesn't update anything, since the title block has no Obsoletes or Updates entries πŸ’…. It's not an Internet standard, it's just here to give the community info 🌸.


Status of This Memo πŸ’Œ

so this memo is here to provide information for the Internet community. It does not specify an Internet standard of any kind, and distribution is unlimited πŸ¦‹.

Copyright (C) The Internet Society (2004). All Rights Reserved. πŸ’œ

Abstract 🧚

okay so this doc defines a schema (object classes and attributes) for printers and printer services, to be used with directories that support Lightweight Directory Access Protocol v3 (LDAP-TS) πŸ–¨οΈβœ¨. It's based on the printer attributes in Appendix E of Internet Printing Protocol/1.1 (IPP) (RFC 2911), and a few extra printer attributes come from the Printer MIB (RFC 1759) 🌈.

Table of Contents πŸ“‘

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
       1.1.  Rationale for using DirectoryString Syntax . . . . . . .  3
       1.2.  Rationale for using caseIgnoreMatch. . . . . . . . . . .  4
       1.3.  Rationale for using caseIgnoreSubstringsMatch. . . . . .  5
   2.  Terminology and Conventions. . . . . . . . . . . . . . . . . .  5
   3.  Definition of Object Classes . . . . . . . . . . . . . . . . .  6
       3.1.  slpServicePrinter. . . . . . . . . . . . . . . . . . . .  6
       3.2.  printerAbstract. . . . . . . . . . . . . . . . . . . . .  7
       3.3.  printerService . . . . . . . . . . . . . . . . . . . . .  8
       3.4.  printerServiceAuxClass . . . . . . . . . . . . . . . . .  8
       3.5.  printerIPP . . . . . . . . . . . . . . . . . . . . . . .  8
       3.6.  printerLPR . . . . . . . . . . . . . . . . . . . . . . .  9
   4.  Definition of Attribute Types. . . . . . . . . . . . . . . . .  9
       4.1.  printer-uri. . . . . . . . . . . . . . . . . . . . . . . 11
       4.2.  printer-xri-supported. . . . . . . . . . . . . . . . . . 11
       4.3.  printer-name . . . . . . . . . . . . . . . . . . . . . . 13
       4.4.  printer-natural-language-configured. . . . . . . . . . . 13
       4.5.  printer-location . . . . . . . . . . . . . . . . . . . . 14
       4.6.  printer-info . . . . . . . . . . . . . . . . . . . . . . 14
       4.7.  printer-more-info. . . . . . . . . . . . . . . . . . . . 14
       4.8.  printer-make-and-model . . . . . . . . . . . . . . . . . 15
       4.9.  printer-ipp-versions-supported . . . . . . . . . . . . . 15
       4.10. printer-multiple-document-jobs-supported . . . . . . . . 16
       4.11. printer-charset-configured . . . . . . . . . . . . . . . 16
       4.12. printer-charset-supported. . . . . . . . . . . . . . . . 16
       4.13. printer-generated-natural-language-supported . . . . . . 17
       4.14. printer-document-format-supported. . . . . . . . . . . . 17
       4.15. printer-color-supported. . . . . . . . . . . . . . . . . 18
       4.16. printer-compression-supported. . . . . . . . . . . . . . 18
       4.17. printer-pages-per-minute . . . . . . . . . . . . . . . . 18
       4.18. printer-pages-per-minute-color . . . . . . . . . . . . . 19
       4.19. printer-finishings-supported . . . . . . . . . . . . . . 19
       4.20. printer-number-up-supported. . . . . . . . . . . . . . . 19
       4.21. printer-sides-supported. . . . . . . . . . . . . . . . . 20
       4.22. printer-media-supported. . . . . . . . . . . . . . . . . 20
       4.23. printer-media-local-supported. . . . . . . . . . . . . . 20
       4.24. printer-resolution-supported . . . . . . . . . . . . . . 21
       4.25. printer-print-quality-supported. . . . . . . . . . . . . 22
       4.26. printer-job-priority-supported . . . . . . . . . . . . . 22
       4.27. printer-copies-supported . . . . . . . . . . . . . . . . 22
       4.28. printer-job-k-octets-supported . . . . . . . . . . . . . 23
       4.29. printer-current-operator . . . . . . . . . . . . . . . . 23
       4.30. printer-service-person . . . . . . . . . . . . . . . . . 24
       4.31. printer-delivery-orientation-supported . . . . . . . . . 24
       4.32. printer-stacking-order-supported . . . . . . . . . . . . 24
       4.33. printer-output-features-supported. . . . . . . . . . . . 25
       4.34. printer-aliases. . . . . . . . . . . . . . . . . . . . . 25
   5.  Definition of Syntaxes . . . . . . . . . . . . . . . . . . . . 26
   6.  Definition of Matching Rules . . . . . . . . . . . . . . . . . 26
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 26
       7.1.  Registration of Object Classes . . . . . . . . . . . . . 26
       7.2.  Registration of Attribute Types. . . . . . . . . . . . . 27
   8.  Internationalization Considerations. . . . . . . . . . . . . . 28
   9.  Security Considerations. . . . . . . . . . . . . . . . . . . . 29
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29
       10.1. Normative References . . . . . . . . . . . . . . . . . . 29
       10.2. Informative References . . . . . . . . . . . . . . . . . 30
   11. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 32
   12. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 32
   13. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 33

1. Introduction 🌸

okay so this document defines several object classes so that Lightweight Directory Access Protocol v3 [LDAP-TS] apps get flexible options for describing printer info with LDAP schema πŸ–¨οΈ. There are classes for making directory entries with common printer info, and classes for extending existing entries with SLPv2 [RFC2608], IPP/1.1 [RFC2911], and LPR [RFC1179] specific info πŸ’–.

The schema here is based on the printer attributes listed in Appendix E 'Generic Directory Schema' of Internet Printing Protocol/1.1 (IPP) [RFC2911]. A few extra printer attributes come from definitions in the Printer MIB [RFC1759] ✨.

The schema is also technically aligned with the stable, IANA-registered 'service:printer:' v2.0 template [SLP-PRT] 🧚. That's so it stays compatible with the Service Location Protocol (SLPv2) [RFC2608] advertising and discovery stuff that's already out there in the wild, which is giving compatibility queen energy πŸ‘‘. The attribute syntaxes line up with that template too, so simpler types are sometimes used. For example, printer-uri uses 'DirectoryString' [RFC2252] instead of 'labeledURI' [RFC2079] πŸ¦‹.

Please send comments directly to the authors at the addresses listed in Section 13 "Authors' Addresses" πŸ’Œ.

1.1. Rationale for using DirectoryString Syntax πŸŽ€

okay so the 'DirectoryString' attribute syntax (UTF-8 [RFC2279]), defined in [RFC2252], is used for a few groups of string attributes in this document πŸ’…:

  1. URI
    • printer-uri, printer-xri-supported, printer-more-info

UTF-8 is forward compatible with any future deployment of (UTF-8 based) IRI (Internationalized Resource Identifiers) [W3C-IRI], which the W3C Internationalization Working Group is currently developing 🌈.

  1. Description
    • printer-name, printer-location, printer-info, printer-make-and-model

UTF-8 supports descriptions in any language, conforming to the "IETF Policy on Character Sets and Languages" [RFC2277] 🌍✨.

Note: The printer-natural-language-configured attribute holds a language tag [RFC3066] for these description attributes. For example, that could support text-to-speech conversions 🎧.

  1. Keyword
    • printer-compression-supported, printer-finishings-supported, printer-media-supported, printer-media-local-supported, printer-print-quality-supported

UTF-8 is compatible with the current IPP/1.1 [RFC2911] definition of the equivalent attributes. Most of those have the IPP/1.1 union syntax 'keyword or name' πŸ“. The keyword attributes in this document are extensible by site-specific or vendor-specific 'names', which 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.2. Rationale for using caseIgnoreMatch πŸ¦‹

The EQUALITY matching rule 'caseIgnoreMatch', defined in [RFC2252], is used for a few groups of string attributes in this document 🧚:

  1. URI

These URI attributes use EQUALITY matching with 'caseIgnoreMatch' (rather than 'caseExactMatch'). The reason is to follow the spirit of [RFC2396], which requires case insensitive matching on the host part of a URI, but case sensitive matching on the rest of the URI πŸ’œ.

These URI attributes also follow existing practice of supporting case insensitive equality matching for host names in the associatedDomain attribute, defined in [RFC1274] ✨.

Either equality matching rule would be a compromise 😭: a) case sensitive whole URI matching may lead to false negative matches, and it 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 may 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).

  1. Description

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

  1. Keyword

Case insensitive equality matching is more user-friendly for keyword attributes πŸ“.

1.3. Rationale for using caseIgnoreSubstringsMatch 🌈

The SUBSTR matching rule 'caseIgnoreSubstringsMatch', defined in [RFC2252], is used for a few groups of string attributes 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 [RFC1274] 🌸.

  1. Description

Support for case insensitive substring matching is more user-friendly for description attributes πŸ’….

  1. Keyword

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

2. Terminology and Conventions πŸ“–

okay so 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 BCP 14 [RFC2119] πŸ’œπŸŽ€.

Schema definitions are provided using LDAPv3 [LDAP-TS] description formats. The definitions here are formatted (line wrapped) for readability πŸ¦‹βœ¨.

3. Definition of Object Classes ✨

okay so this is where we actually get to make the classes πŸ’… we're defining the following LDAP object classes for generic printer stuff AND the services that go with it: SLPv2 [RFC2608], IPP/1.1 [RFC2911], and LPR [RFC1179]. here's the full lineup:

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 next bit is my favourite because it shows how apps can mix and match these like a outfit πŸŽ€ here are some examples of how applications might use these classes when they make directory entries:

  1. use printerService for directory entries holding common printer info πŸ–¨οΈ
  2. use both printerService and slpServicePrinter for directory entries holding common printer info for SLP registered printers 🧚
  3. use printerService, printerLPR and printerIPP for directory entries holding common printer info for printers that support both LPR and IPP 🌈
  4. use printerServiceAuxClass plus object classes NOT defined by this document for directory entries holding common printer info. in this one, printerServiceAuxClass is used to extend other structural classes that define printer info with the common printer info from this document πŸ¦‹

for attribute types the definitions live in Section 4, and we use attribute names instead of OIDs in the object class definitions because it's clearer πŸ™ˆ some attribute names from [RFC2911] got a printer- prefix, as recommended in [RFC2926] and [SLP-PRT]. lowkey this is the namespace being tidy because LDAP identifiers are flat πŸ’œ

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 SLPv2 [RFC2608] specific info 🌸 it SHOULD be used with a structural class such as printerService. it MAY be used to create new directory entries or extend existing ones with SLP 'service:printer' abstract service type info, as defined in [SLP-PRT]. this 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 $ printer-current-operator $
        printer-service-person $
        printer-delivery-orientation-supported $
        printer-stacking-order-supported $
        printer-output-features-supported )
)

this abstract class is the base 🧱 for deriving other printer-related classes, like (but not only) the ones in this doc. it sets up a shared set of printer attributes that aren't tied to any one service, protocol, or OS. it's giving "reusable foundation" and I'm obsessed 😭

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 info πŸ‘‘ it's derived from printerAbstract so it inherits all the common printer attributes. it can be used with or without auxiliary classes to define printer info, and auxiliary classes can extend the common info with protocol, service, or OS specific stuff ✨

Note: when extending other structural classes with auxiliary classes, printerService SHOULD NOT be used. not me reading this and going "ohh that's the vibe check" πŸ’€

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 info πŸŽ€ it's derived from printerAbstract, so it inherits the common printer attributes too. it SHOULD be used with a structural class 🫢

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-multiple-document-jobs-supported )
)

this auxiliary class defines IPP/1.1 [RFC2911] info 🌈 it SHOULD be used with a structural class such as printerService. it's used to extend structural classes with IPP specific printer info, so yeah, very on brand πŸ–¨οΈ

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] info πŸ“ it SHOULD be used with a structural class such as printerService. it's used to identify directory entries that support LPR, and the printer-name is a MUST here, no cap 😀

4. Definition of Attribute Types πŸ’œ

okay the attribute types below are what the object classes from Section 3 reference 🧚

the following attribute types reference syntax OIDs defined in Section 6 of [RFC2252] (see Section 5 'Definition of Syntaxes' below) πŸ“š

the following attribute types reference matching rule names (instead of OIDs) for clarity (see Section 6 below) πŸ’… for optional attributes, if the printer info isn't known, the attribute value SHOULD NOT be set. in the definitions below, the matching rules referenced are defined in Section 8 of [RFC2252] and/or Section 2 of [RFC3698] (see Section 6 'Definition of Matching Rules' below) πŸ¦‹

here's a summary of the attribute names this doc defines and what they correspond to in [RFC2911]. some [RFC2911] names got a printer- prefix, as recommended in [RFC2926], to deal with the flat namespace for LDAP identifiers 🌸

LDAP & SLP Printer Schema       IPP Model [RFC2911]
------------------------------  -------------------------------------
printer-uri
printer-xri-supported
                                [IPP printer-uri-supported]
                                [IPP uri-authentication-supported]
                                [IPP uri-security-supported]
printer-name                    printer-name
printer-natural-language-configured
                                natural-language-configured
printer-location                printer-location
printer-info                    printer-info
printer-more-info               printer-more-info
printer-make-and-model          printer-make-and-model
printer-ipp-versions-supported  ipp-versions-supported
printer-multiple-document-jobs-supported
                                multiple-document-jobs-supported
printer-charset-configured      charset-configured
printer-charset-supported       charset-supported
printer-generated-natural-language-supported
                                generated-natural-language-supported
printer-document-format-supported
                                document-format-supported
printer-color-supported         color-supported
printer-compression-supported   compression-supported
printer-pages-per-minute        pages-per-minute
printer-pages-per-minute-color  pages-per-minute-color
printer-finishings-supported    finishings-supported
printer-number-up-supported     number-up-supported
printer-sides-supported         sides-supported
printer-media-supported         media-supported
printer-media-local-supported   [site names from IPP media-supported]
printer-resolution-supported    printer-resolution-supported
printer-print-quality-supported print-quality-supported
printer-job-priority-supported  job-priority-supported
printer-copies-supported        copies-supported
printer-job-k-octets-supported  job-k-octets-supported
printer-current-operator
printer-service-person
printer-delivery-orientation-supported
printer-stacking-order-supported
printer-output-features-supported
printer-aliases

4.1. printer-uri

( 1.3.18.0.2.4.1140
NAME 'printer-uri'
DESC 'A URI supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE
)

if the printer-xri-supported LDAP attribute is implemented, then this printer-uri value SHOULD be listed in printer-xri-supported πŸ”—

values of URI SHOULD conform to [RFC2396], although URI schemes MAY be defined which do not conform to [RFC2396] (see [RFC2717] and [RFC2718]) 🌍

Note: LDAP application clients SHOULD NOT attempt to use malformed URI values read from this attribute. LDAP administrative clients SHOULD NOT write malformed URI values into this attribute. literally just don't be messy with URIs, bestie πŸ™…β€β™€οΈ
Note: for SLP registered printers, the LDAP printer-uri attribute SHOULD be set to the value of the SLP-registered URL of the printer, for interworking with SLPv2 [RFC2608] service discovery 🧚✨
Note: see Sections 1.1, 1.2, and 1.3 for rationale for design choices πŸ“–πŸ’–

4.2. printer-xri-supported πŸ”—βœ¨

bestie, this one is the list of XRIs (extended resource identifiers) the printer supports πŸ’… Each value is a URI followed by optional auth and security fields, kind of like a little bio with extra vibes πŸ¦‹

( 1.3.18.0.2.4.1107
NAME 'printer-xri-supported'
DESC 'The unordered list of XRI (extended resource identifiers)
      supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
)

So the list is a list of XRIs supported by this printer πŸ–¨οΈ Each value of this list should consist of a URI (uniform resource identifier) followed by (optional) authentication and security fields.

Values of URI should conform to [RFC2396], although URI schemes may be defined which do not conform to [RFC2396] (see [RFC2717] and [RFC2718]) 🌈

Note: LDAP application clients should not attempt to use malformed URI values read from this attribute. LDAP administrative clients should not write malformed URI values into this attribute. πŸ™ˆ

Note: This attribute is based on 'printer-uri-supported', 'uri-authentication-supported', and 'uri-security-supported' (called the 'Three Musketeers' because they are parallel ordered attributes) defined in IPP/1.1 [RFC2911]. This attribute unfolds those IPP/1.1 attributes and thus avoids the ordering (and same number of values) constraints of the IPP/1.1 separate attributes. It's giving unbothered by the old constraints πŸ‘‘

Defined keywords for fields include:

'uri' (IPP 'printer-uri-supported')
'auth' (IPP 'uri-authentication-supported')
'sec' (IPP 'uri-security-supported')

A missing 'auth' field should be interpreted to mean 'none'. Per IPP/1.1 [RFC2911], defined values of the 'auth' field include:

'none' (no authentication for this URI)
'requesting-user-name' (from operation request)
'basic' (HTTP/1.1 Basic [RFC2617])
'digest' (HTTP/1.1 Basic, [RFC2617])
'certificate' (from certificate)

A missing 'sec' field should be interpreted to mean 'none'. Per IPP/1.1 [RFC2911], defined values of the 'sec' field include:

'none' (no security for this URI)
'ssl3' (Netscape SSL3)
'tls' (IETF TLS/1.0, [RFC2246])

Each XRI field should be delimited by '<'. For example:

'uri=ipp://foo.com< auth=digest< sec=tls<'
'uri=lpr://bar.com< auth=none< sec=none<'
'uri=mailto:printer@foobar.com< auth=none< sec=none<'

Note: The syntax and delimiter for this attribute are aligned with the equivalent attribute in the 'service:printer:' v2.0 template [SLP-PRT]. Whitespace is permitted after (but not before) the delimiter '<'. Note that this delimiter differs from printer-resolution-supported. Different delimiter, different vibe πŸŽ€

Note: See Sections 1.1, 1.2, and 1.3 for rationale for design choices. πŸ“š


4.3. printer-name 🏷️

( 1.3.18.0.2.4.1135
NAME 'printer-name'
DESC 'The site-specific administrative name of this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

Values of this attribute should be specified in the language specified in printer-natural-language-configured (for example, to support text-to-speech conversions), although the printer's name may be specified in any language. This name may be the last part of the printer's URI or it may be completely unrelated. This name may contain characters that are not allowed in a conventional URI (see [RFC2396]). Names can be wild and still be valid, periodt ✨


4.4. printer-natural-language-configured πŸ—£οΈ

( 1.3.18.0.2.4.1119
NAME 'printer-natural-language-configured'
DESC 'The configured natural language in which error and status
      messages will be generated (by default) by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

Also, a possible natural language for printer string attributes set by operator, system administrator, or manufacturer. Also, the (declared) natural language of the printer-name, printer-location, printer-info, and printer-make-and-model attributes of this printer.

Values of language tags should conform to "Tags for the Identification of Languages" [RFC3066]. For example:

'en-us' (English as spoken in the US)
'fr-fr' (French as spoken in France)

For consistency with IPP/1.1 [RFC2911], language tags in this attribute should be lowercase normalized. Lowercase all the way, no exceptions 🌸


4.5. printer-location πŸ“

( 1.3.18.0.2.4.1136
NAME 'printer-location'
DESC 'The physical location of this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

For example:

'Room 123A'
'Second floor of building XYZ'

4.6. printer-info πŸ“

( 1.3.18.0.2.4.1139
NAME 'printer-info'
DESC 'Descriptive information about this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

For example:

'This printer can be used for printing color transparencies for
 HR presentations'
'Out of courtesy for others, please print only small (1-5 page)
 jobs at this printer'
'This printer is going away on July 1, 1997, please find a new
 printer'

Iconic energy, honestly 😭


4.7. printer-more-info 🌐

( 1.3.18.0.2.4.1134
NAME 'printer-more-info'
DESC 'A URI for more information about this specific printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE
)

For example, this could be an HTTP type URI referencing an HTML page accessible to a Web Browser. The information obtained from this URI is intended for end user consumption. So it's the link you'd actually click to learn more πŸ¦‹

Values of URI should conform to [RFC2396], although URI schemes may be defined which do not conform to [RFC2396] (see [RFC2717] and [RFC2718]).

Note: LDAP application clients should not attempt to use malformed URI values read from this attribute. LDAP administrative clients should not write malformed URI values into this attribute.

Note: See Sections 1.1, 1.2, and 1.3 for rationale for design choices.


4.8. printer-make-and-model πŸ–¨οΈ

( 1.3.18.0.2.4.1138
NAME 'printer-make-and-model'
DESC 'Make and model of this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

Note: The printer manufacturer may initially populate this attribute. The manufacturer gets the first glam moment πŸ’…


4.9. printer-ipp-versions-supported πŸ”’

( 1.3.18.0.2.4.1133
NAME 'printer-ipp-versions-supported'
DESC 'IPP protocol version(s) that this printer supports.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
)

The IPP protocol version(s) should include major and minor versions, i.e., the exact version numbers for which this Printer implementation meets the IPP version-specific conformance requirements. Major and minor, both get listed, no shortcuts 🧚


4.10. printer-multiple-document-jobs-supported πŸ“„

( 1.3.18.0.2.4.1132
NAME 'printer-multiple-document-jobs-supported'
DESC 'Indicates whether or not this printer supports more than one
      document per job.'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE
)

4.11. printer-charset-configured πŸ”€

( 1.3.18.0.2.4.1109
NAME 'printer-charset-configured'
DESC 'The configured charset in which error and status messages will
      be generated (by default) by this printer.'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{63}
SINGLE-VALUE
)

Also, a possible charset for printer string attributes set by operator, system administrator, or manufacturer. For example:

'utf-8' (ISO 10646/Unicode in UTF-8 transform [RFC2279])
'iso-8859-1' (Latin1)

Values of charset tags should be defined in the IANA Registry of Coded Character Sets [IANA-CHAR] (see also [RFC2978]) and the '(preferred MIME name)' should be used as the charset tag in this attribute.

For consistency with IPP/1.1 [RFC2911], charset tags in this attribute should be lowercase normalized. Same lowercase rule, bestie πŸ’œ


4.12. printer-charset-supported πŸ”€

( 1.3.18.0.2.4.1131
NAME 'printer-charset-supported'
DESC 'Set of charsets supported for the attribute values of syntax
      DirectoryString for this directory entry.'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{63}
)

For example:

'utf-8' (ISO 10646/Unicode in UTF-8 transform [RFC2279])
'iso-8859-1' (Latin1)

Values of charset tags should be defined in the IANA Registry of Coded Character Sets [IANA-CHAR] (see also [RFC2978]) and the '(preferred MIME name)' should be used as the charset tag in this attribute.

For consistency with IPP/1.1 [RFC2911], charset tags in this attribute should be lowercase normalized.


4.13. printer-generated-natural-language-supported 🌍

( 1.3.18.0.2.4.1137
NAME 'printer-generated-natural-language-supported'
DESC 'Natural language(s) supported for this directory entry.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{63}
)

Values of language tags should conform to "Tags for the Identification of Languages" [RFC3066]. For example:

'en-us' (English as spoken in the US)
'fr-fr' (French as spoken in France)

For consistency with IPP/1.1 [RFC2911], language tags in this attribute should be lowercase normalized.


4.14. printer-document-format-supported πŸ“‘

( 1.3.18.0.2.4.1130
NAME 'printer-document-format-supported'
DESC 'The possible source document formats which may be interpreted
      and printed by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{127}
)

Values of document formats should be MIME media types defined in the IANA Registry of MIME Media Types [IANA-MIME] (see also [RFC2048]). Media types, the whole aesthetic πŸŽ€


4.15. printer-color-supported 🎨

( 1.3.18.0.2.4.1129
NAME 'printer-color-supported'
DESC 'Indicates whether this printer is capable of any type of color
      printing at all, including highlight color.'
EQUALITY booleanMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
SINGLE-VALUE
)

4.16. printer-compression-supported πŸ—œοΈ

( 1.3.18.0.2.4.1128
NAME 'printer-compression-supported'
DESC 'Compression algorithms supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255}
)

Values defined in IPP/1.1 [RFC2911] include:

'none' (no compression is used)
'deflate' (public domain ZIP described in [RFC1951])
'gzip' (GNU ZIP described in [RFC1952])
'compress' (UNIX compression described in [RFC1977])

4.17. printer-pages-per-minute ⏱️

( 1.3.18.0.2.4.1127
NAME 'printer-pages-per-minute'
DESC 'The nominal number of pages per minute which may be output by
      this printer.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE
)

This attribute is informative, not a service guarantee. Typically, it is the value used in marketing literature to describe this printer. For example, the value for a simplex or black-and-white print mode. Speed claims are vibes, not promises πŸ’€


4.18. printer-pages-per-minute-color 🌈

( 1.3.18.0.2.4.1126
NAME 'printer-pages-per-minute-color'
DESC 'The nominal number of color pages per minute which may be
      output by this printer.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE
)

This attribute is informative, not a service guarantee. Typically, it is the value used in marketing literature to describe this printer. Same energy as the black-and-white one, just in color 🌸

4.19. printer-finishings-supported ✨

( 1.3.18.0.2.4.1125
NAME 'printer-finishings-supported'
DESC 'The possible finishing operations supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{255}
)

okay so finishing is the glow-up step for printed pages πŸ’… IPP/1.1 [RFC2911] defines these values:

  • none
  • staple
  • punch
  • cover
  • bind
  • saddle-stitch
  • edge-stitch
  • staple-top-left
  • staple-bottom-left
  • staple-top-right
  • staple-bottom-right
  • edge-stitch-left
  • edge-stitch-top
  • edge-stitch-right
  • edge-stitch-bottom
  • staple-dual-left
  • staple-dual-top
  • staple-dual-right
  • staple-dual-bottom

Note: Implementations may support other values. 🫢

4.20. printer-number-up-supported 🌸

( 1.3.18.0.2.4.1124
NAME 'printer-number-up-supported'
DESC 'The possible numbers of print-stream pages to impose upon a
         single side of an instance of a selected medium.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.27
)

this is the "put several pages on one side" feature πŸ“„βœ¨ IPP/1.1 [RFC2911] defines these values: 1, 2, and 4.

Note: Implementations may support other values. πŸ’–

4.21. printer-sides-supported πŸ¦‹

( 1.3.18.0.2.4.1123
NAME 'printer-sides-supported'
DESC 'The number of impression sides (one or two) and the two-sided
         impression rotations supported by this printer.'
EQUALITY caseIgnoreMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

so this one tells you how many sides get ink and how the back side flips πŸ™ˆ IPP/1.1 [RFC2911] defines these values: one-sided, two-sided-long-edge, and two-sided-short-edge.

4.22. printer-media-supported πŸŽ€

( 1.3.18.0.2.4.1122
NAME 'printer-media-supported'
DESC 'The standard names/types/sizes (and optional color suffixes) of
         the media supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{255}
)

the values are defined in IPP/1.1 [RFC2911] or any IANA registered extensions 🌈 For example:

'iso-a4'
'envelope'
'na-letter-white'

4.23. printer-media-local-supported 🧚

( 1.3.18.0.2.4.1117
NAME 'printer-media-local-supported'
DESC 'Site-specific names of media supported by this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{255}
)

this is the local nickname drawer for media πŸ“ Values should be in the natural language specified by printer-natural-language-configured.

For example:

'purchasing-form' (site-specific name)

as opposed to 'na-letter' (standard keyword from IPP/1.1 [RFC2911]) in the printer-media-supported attribute. πŸ’…

4.24. printer-resolution-supported πŸ”₯

( 1.3.18.0.2.4.1121
NAME 'printer-resolution-supported'
DESC 'List of resolutions supported for printing documents by this
         printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{255}
)

okay so each resolution value should be a string with 3 fields πŸ“

  1. Cross feed direction resolution (positive integer);
  2. Feed direction resolution (positive integer);
  3. Unit: dpi (dots per inch) or dpcm (dots per centimeter).

Each resolution field should be delimited by >. For example:

'300> 300> dpi>'
'600> 600> dpi>'

Note: This attribute is based on printer-resolution-supported defined in IPP/1.1 [RFC2911] (which has a binary complex encoding) derived from prtMarkerAddressabilityFeedDir, prtMarkerAddressabilityXFeedDir, and prtMarkerAddressabilityUnit defined in the Printer MIB [RFC1759] (which have integer encodings). 🧠

Note: The syntax and delimiter for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT]. Whitespace is permitted after (but not before) the delimiter >. Note that this delimiter differs from printer-xri-supported. 🫢

4.25. printer-print-quality-supported πŸ‘‘

( 1.3.18.0.2.4.1120
NAME 'printer-print-quality-supported'
DESC 'List of print qualities supported for printing documents on
         this printer.'
EQUALITY caseIgnoreMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

IPP/1.1 [RFC2911] defines these values: unknown, draft, normal, and high. ✨

4.26. printer-job-priority-supported ⭐

( 1.3.18.0.2.4.1110
NAME 'printer-job-priority-supported'
DESC 'Indicates the number of job priority levels supported by this
         printer.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE
)

this one is a little plot twist πŸ™ˆ An IPP/1.1 [RFC2911] conformant Printer that supports job priority always supports the full range of priorities from 1 to 100 (to ensure consistent behavior). So this attribute describes the granularity of priority supported. Values of this attribute are from 1 to 100. πŸ’œ

4.27. printer-copies-supported πŸ“

( 1.3.18.0.2.4.1118
NAME 'printer-copies-supported'
DESC 'The maximum number of copies of a document that may be printed
         as a single job on this printer.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE
)

a positive value is the maximum supported copies 🌈 A value of 0 means no maximum limit. A value of -1 means unknown.

Note: The syntax and values for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT]. πŸ’…

4.28. printer-job-k-octets-supported πŸ¦‹

( 1.3.18.0.2.4.1111
NAME 'printer-job-k-octets-supported'
DESC 'The maximum size in kilobytes (1,024 octets actually) incoming
         print job that this printer will accept.'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE
)

a positive value is the maximum supported job size πŸ“¦ A value of 0 means no maximum limit. A value of -1 means unknown.

Note: The syntax and values for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT]. 🫢

4.29. printer-current-operator 🧚

( 1.3.18.0.2.4.1112
NAME 'printer-current-operator'
DESC 'The identity of the current human operator responsible for
         operating this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

the value should include info that would let other humans reach the operator, like a telephone number πŸ“ž πŸ’€

4.30. printer-service-person πŸ’œ

( 1.3.18.0.2.4.1113
NAME 'printer-service-person'
DESC 'The identity of the current human service person responsible
         for servicing this printer.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
SINGLE-VALUE
)

same energy as the operator one: the value should include info that would let other humans reach the service person, like a telephone number ☎️🌸

4.31. printer-delivery-orientation-supported 🌈

( 1.3.18.0.2.4.1114
NAME 'printer-delivery-orientation-supported'
DESC 'The possible delivery orientations of pages as they are printed
         and ejected from this printer.'
EQUALITY caseIgnoreMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

values defined include: unknown, face-up, and face-down πŸ“„

Note: The syntax and values for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT]. πŸ’–

4.32. printer-stacking-order-supported ⭐

( 1.3.18.0.2.4.1115
NAME 'printer-stacking-order-supported'
DESC 'The possible stacking order of pages as they are printed and
         ejected from this printer.'
EQUALITY caseIgnoreMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

values defined include: unknown, first-to-last, and last-to-first πŸ₯ž

Note: The syntax and values for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT]. 🫢

4.33. printer-output-features-supported πŸ”₯

( 1.3.18.0.2.4.1116
NAME 'printer-output-features-supported'
DESC 'The possible output features supported by this printer.'
EQUALITY caseIgnoreMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

values defined include: unknown, bursting, decollating, page-collating, and offset-stacking ✨

Note: The syntax and values for this attribute are aligned with the equivalent attribute in the service:printer: v2.0 template [SLP-PRT].

Note: Implementations may support other values. πŸ‘‘

4.34. printer-aliases πŸŽ€

( 1.3.18.0.2.4.1108
NAME 'printer-aliases'
DESC 'List of site-specific administrative names of this printer in
         addition to the value specified for printer-name.'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX  1.3.6.1.4.1.1466.115.121.1.15{127}
)

values of this attribute should be specified in the language specified in printer-natural-language-configured (for example, to support text-to-speech conversions), although the printer's alias may be specified in any language. πŸ¦‹


5. Definition of Syntaxes 🌸

No new attribute syntaxes are defined by this document. πŸ™…β€β™€οΈ

The attribute types defined in Section 4 of this document reference syntax OIDs defined in Section 6 of [RFC2252], which are summarized below:

Syntax OID                      Syntax Description
------------------------------  ------------------
1.3.6.1.4.1.1466.115.121.1.7    Boolean
1.3.6.1.4.1.1466.115.121.1.15   DirectoryString (UTF-8 [RFC2279])
1.3.6.1.4.1.1466.115.121.1.27   Integer

6. Definition of Matching Rules 🧚

No new matching rules are defined by this document. πŸ™…β€β™€οΈ

The attribute types defined in Section 4 of this document reference matching rules defined in Section 8 of [RFC2252] and/or Section 2 of [RFC3698], which are summarized below:

Matching Rule OID               Matching Rule Name          Usage
------------------------------  ------------------          -----
2.5.13.13                       booleanMatch                EQUALITY
2.5.13.2                        caseIgnoreMatch             EQUALITY
2.5.13.14                       integerMatch                EQUALITY
2.5.13.15                       integerOrderingMatch        ORDERING
2.5.13.4                        caseIgnoreSubstringsMatch   SUBSTR

7. IANA Considerations 🌈

This document does not define any new syntaxes or matching rules. πŸ’…

This document does define the following Object Identifier Descriptors. They have been registered by the IANA. 🫢

7.1. Registration of Object Classes πŸ‘‘

  • Subject: Request for LDAP Descriptor Registration
  • Descriptor (short name): see table below
  • Object Identifier: see table below
  • Person & email address to contact for further information: see below
  • Usage: object class
  • Specification: RFC3712
  • Author/Change Controller:
Pat Fleming
IBM
Highway 52 N
Rochester, MN 55901
USA
Phone: +1 507-253-7583
EMail: flemingp@us.ibm.com
  • Comments:
Object Class                                    OID
------------------------------------            ---------------------
slpServicePrinter                               1.3.18.0.2.6.254
printerAbstract                                 1.3.18.0.2.6.258
printerService                                  1.3.18.0.2.6.255
printerServiceAuxClass                          1.3.18.0.2.6.257
printerIPP                                      1.3.18.0.2.6.256
printerLPR                                      1.3.18.0.2.6.253

7.2. Registration of Attribute Types ✨

Okay so this section is the IANA registration request for a bunch of LDAP attribute types, and it's giving very organized paperwork energy πŸ—‚οΈπŸ’…. Here's the vibe:

  • Subject: Request for LDAP Descriptor Registration πŸŽ€
  • Descriptor (short name): see table below
  • Object Identifier: see table below
  • Person & email address to contact for further information: see below
  • Usage: attribute type
  • Specification: RFC3712
  • Author/Change Controller: Pat Fleming at IBM, Highway 52 N, Rochester, MN 55901, USA. Phone is +1 507-253-7583 and email is flemingp@us.ibm.com πŸ“žπŸ’Œ

Comments are blank here, but the actual registrations are in this table, bestie πŸ‘‘:

   Attribute Type                                  OID
   ------------------------------------            ---------------------
   printer-uri                                     1.3.18.0.2.4.1140
   printer-xri-supported                           1.3.18.0.2.4.1107
   printer-name                                    1.3.18.0.2.4.1135
   printer-natural-language-configured             1.3.18.0.2.4.1119
   printer-location                                1.3.18.0.2.4.1136
   printer-info                                    1.3.18.0.2.4.1139
   printer-more-info                               1.3.18.0.2.4.1134
   printer-make-and-model                          1.3.18.0.2.4.1138
   printer-ipp-versions-supported                  1.3.18.0.2.4.1133
   printer-multiple-document-jobs-supported        1.3.18.0.2.4.1132
   printer-charset-configured                      1.3.18.0.2.4.1109
   printer-charset-supported                       1.3.18.0.2.4.1131
   printer-generated-natural-language-supported    1.3.18.0.2.4.1137
   printer-document-format-supported               1.3.18.0.2.4.1130
   printer-color-supported                         1.3.18.0.2.4.1129
   printer-compression-supported                   1.3.18.0.2.4.1128
   printer-pages-per-minute                        1.3.18.0.2.4.1127
   printer-pages-per-minute-color                  1.3.18.0.2.4.1126
   printer-finishings-supported                    1.3.18.0.2.4.1125
   printer-number-up-supported                     1.3.18.0.2.4.1124
   printer-sides-supported                         1.3.18.0.2.4.1123
   printer-media-supported                         1.3.18.0.2.4.1122
   printer-media-local-supported                   1.3.18.0.2.4.1117
   printer-resolution-supported                    1.3.18.0.2.4.1121
   printer-print-quality-supported                 1.3.18.0.2.4.1120
   printer-job-priority-supported                  1.3.18.0.2.4.1110
   printer-copies-supported                        1.3.18.0.2.4.1118
   printer-job-k-octets-supported                  1.3.18.0.2.4.1111
   printer-current-operator                        1.3.18.0.2.4.1112
   printer-service-person                          1.3.18.0.2.4.1113
   printer-delivery-orientation-supported          1.3.18.0.2.4.1114
   printer-stacking-order-supported                1.3.18.0.2.4.1115
   printer-output-features-supported               1.3.18.0.2.4.1116
   printer-aliases                                 1.3.18.0.2.4.1108

8. Internationalization Considerations 🌍🌈

Okay so every text string attribute in this document uses UTF-8 syntax from [RFC2279], which [RFC2252] says it has to. πŸ’œ

The language tag for all those text string attributes comes from [RFC3066], and it lives in the printer-natural-language-configured attribute. πŸ—£οΈ

So, yep, every object class in here follows the "IETF Policy on Character Sets and Languages" from [RFC2277]. Iconic behaviour πŸ‘‘βœ¨


9. Security Considerations πŸ”πŸ˜­

Okay, this part is seriously important, so listen up bestie 🚨. For authentication methods in LDAP, check out [RFC2829]. For using TLS/1.0 from [RFC2246] to keep LDAP sessions confidential and intact, see [RFC2830].

As with any LDAP schema, you MUST protect specific entries and attributes with the right access control. It is particularly important that only administrators can modify entries defined in this LDAP printer schema. Otherwise, an LDAP client might be fooled into diverting print service requests from the original printer (or spooler) to a malicious intruder's host system, thus exposing the information in printed documents. πŸ’€πŸš¨

For more security stuff about deploying printers in an IPP environment, see Section 8 of [RFC2911]. πŸ–¨οΈπŸ”’


10. References πŸ“š

10.1. Normative References πŸ’–

   [IANA-CHAR] IANA Registry of Character Sets
               http://www.iana.org/assignments/charset-reg/...

   [IANA-MIME] IANA Registry of MIME Media Types
               http://www.iana.org/assignments/media-types/...

   [LDAP-TS]   Hodges, J. and R. Morgan, "Lightweight Directory Access
               Protocol (v3): Technical Specification", RFC 3377,
               September 2002.

   [RFC1274]   Barker, P. and S. Kille, "The COSINE and Internet X.500
               Schema", RFC 1274, November 1991.

   [RFC1759]   Smith, R., Wright, F., Hastings, T., Zilles, S. and J.
               Gyllenskog, "Printer MIB", RFC 1759, March 1995.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2252]   Wahl, M., Coulbeck, T., Howes, T. and S. Kille,
               "Lightweight Directory Access Protocol (v3): Attribute
               Syntax Definitions", RFC 2252, December 1997.

   [RFC2396]   Berners-Lee. T., Fielding, R. and L. Masinter, "URI
               Generic Syntax", RFC 2396, August 1998.

   [RFC2829]   Wahl, M., Alvestrand, H., Hodges, J. and R. Morgan,
               "Authentication Methods for LDAP", RFC 2829, May 2000.

   [RFC2830]   Hodges, J., Morgan, R. and M. Wahl, "Lightweight
               Directory Access Protocol (v3): Extension for Transport
               Layer Security", RFC 2830, May 2000.

   [RFC2911]   Hastings, T., Ed.., Herrito, R., deBry, R., Isaacson, S.
               and P. Powell, "Internet Printing Protocol/1.1: Model and
               Semantics", RFC 2911, September 2000.

   [RFC2926]   Kempf, J., Moats, R. and P. St. Pierre, "Conversion of
               LDAP Schemas to and from SLP Templates", RFC 2926,
               September 2000.

   [RFC3066]   Alvestrand, H., "Tags for the Identification of
               Languages", BCP 47, RFC 3066, January 2001.

   [RFC3698]   Zeilenga, K., Ed., "Lightweight Directory Access Protocol
               (LDAP): Additional Matching Rules", RFC 3698, February
               2004.

10.2. Informative References 🧚

   [IANA-SLPT] IANA Registry of SLP Templates
               http://www.iana.org/assignments/svrloc-templates/...

   [RFC1179]   McLaughlin, L., "Line Printer Daemon Protocol", RFC 1179,
               August 1990.

   [RFC1951]   Deutsch, P., "DEFLATE Compressed Data Format
               Specification Version 1.3", RFC 1951, May 1996.

   [RFC1952]   Deutsch, P., "GZIP File Format Specification Version
               4.3", RFC 1952, May 1996.

   [RFC1977]   Schryver, V., "PPP BSD Compression Protocol", RFC 1977,
               August 1996.

   [RFC2048]   Freed, N., Klensin, J. and J. Postel, "Multipurpose
               Internet Mail Extensions (MIME) Part Four: Registration
               Procedures", BCP 13, RFC 2048, November 1996.

   [RFC2079]   Smith, M., "Definition of an X.500 Attribute Type and an
               Object Class to Hold Uniform Resource Identifiers
               (URIs)", RFC 2079, January 1997.

   [RFC2246]   Dierks, T. and C. Allen, "TLS Protocol Version 1.0", RFC
               2246, January 1999.

   [RFC2277]   Alvestrand, H., "IETF Policy on Character Sets and
               Languages", RFC 2277, January 1998.

   [RFC2279]   Yergeau, F., "UTF-8, a Transformation Format of ISO
               10646", RFC 2279, January 1998.

   [RFC2608]   Guttman, E., Perkins, C., Veizades, J. and M. Day,
               "Service Location Protocol v2", RFC 2608, June 1999.

   [RFC2609]   Guttman, E., Perkins, C. and J. Kempf, "Service Templates
               and Service: Schemes", RFC 2609, June 1999.

   [RFC2617]   Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence,
               S., Leach, P., Luotonen, A. and L. Stewart, "HTTP
               Authentication: Basic and Digest Access Authentication",
               RFC 2617, June 1999.

   [RFC2717]   Petke, R. and I. King, "Registration Procedures for URL
               Scheme Names", RFC 2717, November 1999.

   [RFC2718]   Masinter, L., Alvestrand, H., Zigmond, D. and R. Petke,
               "Guidelines for new URL Schemes", BCP 19, RFC 2718,
               November 1999.

   [RFC2978]   Freed, N. and J.Postel, "IANA Charset Registration
               Procedures", RFC2978, October 2000.

   [SLP-PRT]   St. Pierre, Isaacson, McDonald.  Definition of the
               Printer Abstract Service Type v2.0, <durable URL below>,
               May 2000. Reviewed and approved by IETF SLP Designated
               Expert, according to Section 5 'IANA Considerations' in
               [RFC2609].

               Archived in the IANA Registry of SLP Templates [IANA-
               SLPT] at: http://www.iana.org/assignments/svrloc-
               templates/printer.2.0.en

   [W3C-IRI]   Duerst, Suignard, "Internationalized Resource Identifiers
               (IRI), Work in Progress.

11. Acknowledgments 🫢

The editors wish to acknowledge the very significant contributions of Ken Jones (Bytemobile) and Harry Lewis (IBM) during the development of this document. πŸ’–

Thanks to Patrik Faltstrom (Cisco), Ryan Moats (Lemur Networks), Robert Moore (IBM), Lee Rafalow (IBM), Kimberly Reger (IBM), Kurt Zeilenga (OpenLDAP), and the members of the IETF IPP Working Group, for review comments and help in preparing this document. 🌸


12. Authors' Addresses πŸ“¬

Please send comments to the authors at the addresses listed below. πŸ’Œ

   Pat Fleming
   IBM
   Highway 52 N
   Rochester, MN 55901
   USA

   Phone: +1 507-253-7583
   EMail: flemingp@us.ibm.com


   Ira McDonald
   High North Inc
   221 Ridge Ave
   Grand Marais, MI 49839
   USA

   Phone: +1 906-494-2434
   Email: imcdonald@sharplabs.com

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78 and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
   INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property πŸ¦‹

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. πŸ“œ

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. πŸ”—

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. πŸ’…

Acknowledgement ✨

okay so last but not least, bestie 🫢 the RFC Editor is the crew that keeps all these RFCs organized and published, and they're funded right now by the Internet Society 🌈 so big thanks to them for making the whole Internet standards machine possible πŸ’– it's giving teamwork, no cap πŸŽ€

πŸ“¦ where this page comes from