title | author | copyright |
---|---|---|
PAPPL IPP Extensions |
Michael R Sweet |
Copyright © 2022-2023 by Michael R Sweet |
This document describes the IPP extensions unique to the Printer Application Framework (PAPPL). Conformance words including MAY, MUST, MUST NOT, RECOMMENDED, REQUIRED, SHOULD, SHOULD NOT
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.
Other printing terminology is imported from RFC 8011: Internet Printing Protocol/1.1: Model and Semantics and PWG 5100.22-2019: IPP System Service v1.0 (SYSTEM).
The Printer Application Framework (PAPPL) provides a generic framework for integrating legacy printer drivers with a common IPP Everywhere front-end. The framework implements a subset of the IPP System Service to manage multiple IPP Printers. Each Printer has an associated Output Device whose URI ("smi55357-device-uri") and driver ("smi55357-driver") specify where and how to communicate with the Output Device.
In order to support remote management of Printers, the existing Create-Printer operation is amended and two new operations are added to list the available Output Devices and drivers. Additionally, a third new operation automates adding multiple printers.
All of the new operations can require authentication and authorization as an Operator or Administrator.
The REQUIRED PAPPL-Create-Printers System operation creates zero or more Printers for newly discovered Output Devices.
Group 1: Operation Attributes
-
Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
-
Target: The "system-uri" (uri) operation attribute, which is the target for this operation.
-
Requesting User Name: The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in Section 9.3 of RFC 8011.
-
"smi55357-device-type" (1setOf type2 keyword): The Client OPTIONALLY supplies and a System MUST support this attribute which lists one or more device types to query; the default is 'all'.
Group 1: Operation Attributes
- Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
Groups 2-N: Printer Attributes
- “printer-id” (integer(1:65535)): The System MUST return this attribute.
- “printer-is-accepting-jobs” (boolean): The System MUST return all three of these attributes.
- “printer-state” (type1 enum): The System MUST return this attribute.
- “printer-state-reasons” (1setOf type2 keyword): The System MUST return this attribute.
- “printer-uuid” (uri(45)): The System MUST return this attribute.
- “printer-xri-supported” (1setOf collection): The System MUST return this attribute.
The REQUIRED PAPPL-Find-Devices System operation queries the System for a list of known or discovered Output Devices that can be used with the Create-Printer operation. The System MAY cache the list of Output Devices but the list MUST have been updated or confirmed within the 300 seconds prior to receiving a Client request.
Access Rights: The authenticated user (see Section 9.3 of RFC 8011) performing this operation MUST be an Operator or Administrator of the System (see Sections 1 and 9.5 of RFC 8011). Otherwise, the IPP System MUST reject the operation and return 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.
Group 1: Operation Attributes
-
Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
-
Target: The "system-uri" (uri) operation attribute, which is the target for this operation.
-
Requesting User Name: The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in Section 9.3 of RFC 8011.
-
"smi55357-device-type" (1setOf type2 keyword): The Client OPTIONALLY supplies and a System MUST support this attribute which lists one or more device types to query; the default is 'all'.
Group 1: Operation Attributes
- Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
Group 2: System Attributes
- "smi55357-device-col" (1setOf collection): A list of Output Devices supported by the System.
The REQUIRED PAPPL-Find-Drivers System operation queries the System for a list of known or matching Output Device drivers that can be used with the Create-Printer operation.
Access Rights: The authenticated user (see Section 9.3 of RFC 8011) performing this operation MUST be an Operator or Administrator of the System (see Sections 1 and 9.5 of RFC 8011). Otherwise, the IPP System MUST reject the operation and return 'client-error-forbidden', 'client-error-not-authenticated', or 'client-error-not-authorized' as appropriate.
Group 1: Operation Attributes
-
Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
-
Target: The "system-uri" (uri) operation attribute, which is the target for this operation.
-
Requesting User Name: The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied by the Client as described in Section 9.3 of RFC 8011.
-
"smi55357-device-id" (text(MAX)): The Client OPTIONALLY supplies and a System MUST support this attribute which specifies an IEEE-1284 device ID for filtering the list of drivers.
Group 1: Operation Attributes
- Natural Language and Character Set: The "attributes-charset" and "attributes-natural-language" attributes as described in Section 4.1.4.1 of RFC 8011.
Group 2: System Attributes
- "smi55357-driver-col" (1setOf collection): A list of drivers supported by the System.
This operation attribute specifies the IEEE-1284 device ID string for an Output Device.
This operation attribute specifies a list of Output Device connection types the Client wishes to query. The following keyword values are defined:
- 'all': All devices
- 'dns-sd': Devices discovered via DNS-SD
- 'local': Local (directly connected) devices
- 'network': Network devices
- 'other-local': Devices connected via another local interface
- 'other-network': Devices discovered via another network protocol
- 'snmp': Devices discovered via SNMP
- 'usb': Devices connected via USB
This attribute specifies the URI for the Output Device.
This attribute specifies the driver for the Output Device.
This REQUIRED attribute specifies the URI for the Output Device.
This REQUIRED attribute specifies the driver for the Output Device.
This attribute lists available Output Devices. The REQUIRED "smi55357-device-id", "smi55357-device-name", and "smi55357-device-uri" member attributes provide information about an individual Output Device.
This member attribute provides the IEEE-1284 Device ID for the Output Device.
This member attribute provides descriptive information about the Output Device.
This member attribute provides the URI value to use with the Create-Printer operation.
This REQUIRED attribute lists the supported "smi55357-device-uri" URI schemes.
This attribute lists available or matching drivers for Output Devices. The REQUIRED "smi55357-device-id", "smi55357-driver", and "smi55357-driver-info" member attributes provide information about a driver.
This member attribute provides the driver name as a keyword.
This member attribute provides the IEEE-1284 Device ID for Output Devices supported by the driver.
This member attribute provides descriptive information about the driver.
This registration amends the Create-Printer operation to accept the "smi55357-device-uri" and "smi55357-driver" operation attributes. The System MUST either accept the provided values and copy them to the corresponding Printer Status attributes of the new Printer or reject them with the 'client-error-attributes-or-values-not-supported' status code.
When the "smi55357-driver" attribute has the value 'auto', the System copies the value of the automatically-determined driver to the corresponding Printer Status attribute.
IPP-EVERYWHERE: IPP Everywhere™ technology landing page
PAPPL: Printer Application Framework (PAPPL)
PWG5100.22: IPP System Service v1.0 (SYSTEM), November 2019
RFC2199: Key words for use in RFCs to Indicate Requirement Levels, BCP14, March 1997
RFC8011: Internet Printing Protocol/1.1: Model and Semantics, STD92, January 2017
Operation attributes: Reference
-------------------- ---------
smi55357-device-id (text(MAX)) [PAPPL-IPP]
smi55357-device-type (1setOf type2 keyword) [PAPPL-IPP]
smi55357-device-uri (uri) [PAPPL-IPP]
smi55357-driver (keyword) [PAPPL-IPP]
Printer Status attributes: Reference
------------------------------ ---------
smi55357-device-uri (uri) [PAPPL-IPP]
smi55357-driver (keyword) [PAPPL-IPP]
System Status attributes: Reference
------------------------------ ---------
smi55357-device-col (1setOf collection) [PAPPL-IPP]
smi55357-device-id (text(MAX)) [PAPPL-IPP]
smi55357-device-info (text(MAX)) [PAPPL-IPP]
smi55357-device-uri (uri) [PAPPL-IPP]
smi55357-device-uri-schemes-supported (1setOf uriScheme) [PAPPL-IPP]
smi55357-driver-col (1setOf collection) [PAPPL-IPP]
smi55357-device-id (text(MAX)) [PAPPL-IPP]
smi55357-driver (keyword) [PAPPL-IPP]
smi55357-driver-info (text(MAX)) [PAPPL-IPP]
Attributes (attribute syntax)
Keyword Attribute Value Reference
----------------------- ---------
smi55357-device-type (1setOf type2 keyword) [PAPPL-IPP]
all [PAPPL-IPP]
dns-sd [PAPPL-IPP]
local [PAPPL-IPP]
network [PAPPL-IPP]
other-local [PAPPL-IPP]
other-network [PAPPL-IPP]
snmp [PAPPL-IPP]
usb [PAPPL-IPP]
Attributes (attribute syntax)
Enum Value Enum Symbolic Name Reference
---------- ------------------ ---------
operations-supported (1setOf type2 enum) [RFC8011]
0x402B PAPPL-Find-Devices [PAPPL-IPP]
0x402C PAPPL-Find-Drivers [PAPPL-IPP]
0x402D PAPPL-Create-Printers [PAPPL-IPP]
Operation Name Reference
-------------- ---------
Create-Printer (Extension) [PAPPL-IPP]
PAPPL-Create-Printers [PAPPL-IPP]
PAPPL-Find-Devices [PAPPL-IPP]
PAPPL-Find-Drivers [PAPPL-IPP]