The document is entitled: "Internet Printing Protocol (IPP): Job and
Printer Set Operations"
The files are available:
This is to become the first Internet-Draft. The text version has been sent
to the IETF. These operations used to be in the Set2 specification which
has had an Internet-Draft, but we removed them into a separate
specification, in order to speed them along. Carl-Uno will announce an IPP
WG Last Call when it is received from the Internet-Drafts secretariat.
Please send any comments to the mailing list.
There is one ISSUE which is a check for confirmation:
ISSUE 01 - Ok to define the 'any-value' out-of-band value to have an actual
value, consisting of the attribute syntax code?
The Encoding text is as follows:
8.1.3 Encoding of the 'any-value' out-of-band attribute value
The encoding of the 'any-value' out-of-band attribute value is 0x17 (see
[ipp-pro]). This out-of-band value REQUIRES a non-zero length and an
attribute value which identifies an attribute syntax type. The attribute
value is either (1) a one-octet attribute syntax tag as defined in [ipp-pro]
(value length = 1) or (2) a 0x7F code followed by a 4-octets of an extended
attribute syntax type code as allocated in [ipp-pro] (value length = 5).
Here is the Abstract:
This document specifies 3 additional OPTIONAL operations for use with the
Internet Printing Protocol/1.0 (IPP) [RFC2565, RFC2566], IPP/1.1 [ipp-mod,
ipp-pro], and future versions. The first is the Set-Printer-Attributes
operation that operators/administrators may perform on a Printer object to
change Printer attribute values. The second is the Set-Job-Attributes
operation that end-users may perform on their jobs and
operators/administrators may perform on any job, depending on circumstances.
The operation changes the Job attribute values. The third is the
Get-Printer-Supported-Values operation that operators/administrators may
perform on a Printer object in order to determine acceptable values for
setting "xxx-supported" attributes using the Set-Printer-Attributes
A Printer implementation can make the value of some attributes dependent on
the document-format, e.g. "resolution-supported".
Two operation attributes: "printer-message-from-operator" (text) and
"job-message-from-operator" (text) are defined to set the corresponding
IPP/1.1 Printer and Job Description attributes with the same names. A new
out-of-band value 'any-value' is added which may be used with any attribute
syntax if an attribute definition allows. The 'any-value' value used with
the 'name' attribute syntax can be (one of) the values of "xxx-supported"
attributes whose attribute syntaxes include both 'keyword' and 'name'. The
'any-value' value with the 'name' attribute syntax matches any name supplied
by the client during validation.
New Printer Description attributes are defined:
printer-settable-attributes-supported (1setOf type2 keyword)
job-settable-attributes-supported (1setOf type2 keyword)
document-format-varying-attributes (1setOf type2 keyword)
A new status code is defined: 'client-error-attributes-not-settable'.
A 'delete-attribute' out-of-band attribute value is defined for use by the
client in the Set-Job-Attributes request to indicate explicitly that the
Printer is to remove the specified attribute from the Job object.
Finally, the 'not-settable' out-of-band attribute value is defined for
returning in the Set-Printer-Attributes and Set-Job-Attributes operation
The scope of IPP is characterized in RFC2526 "Design Goals for an Internet
Printing Protocol". It is not the intent of this document to revise or
clarify this scope or conjecture as to the degree of industry adoption or
trends related to IPP within printing systems. It is the intent of this
document to extend the original set of operations - in a similar fashion to
the Set1 extensions which referred to IPP/1.0 and were later incorporated
Here is the Change History:
1.1 Changes to the January 30, 2000 version to make the March 1, 2000
The following changes to the January 30, 2000 version to make the March 1,
2000 version as a result of the IPP WG telecons, New Orleans meeting, and
mailing list discussion:
1. Clarified that this extension may be used with any IPP version,
including 1.0, 1.1, and future versions.
2. Added "READ-ONLY" and "not-settable" terms to the terminology
section. READ-ONLY is by definition, and "not-settable" is by
3. Assigned the "operation-id" values 0x0013, 0x0014, and 0x0015,
respectively, for the Set-Printer-Attributes, Set-Job-Attributes, and
4. Clarified that the Set-Printer-Attributes operation while a Printer
SHOULD accept a reasonable number of attribute, the Printer need only
support setting one attribute in a request, unless it supports setting the
three "parallel" attributes, ("printer-uri-supported",
"uri-authentication-supported", and "uri-security-supported" (see [ipp-mod]
sections 4.4.1 through 4.4.3), in which case it MUST support setting at
least three attributes in a single request.
5. Clarified that for the Set-Printer-Attributes operation the Printer
MUST validate all of the supplied attributes in combination with each other,
as well as with all of the existing attribute of the Printer object
6. Changed the requirements for accepting the Set-Printer-Attributes
operation when the Printer is in the 'stopped' state from MUST to SHOULD,
since some implementations may not be able to accept requests when stopped.
7. Clarified that setting certain Printer attributes with
Set-Printer-Attributes MAY require more access rights than other attributes,
i.e., System Administrator rights to set policy and only Operator rights to
set the configuration attributes to reflect the current hardware setup.
8. Clarified the order of error checking and what is returned in each
case in the Set-Printer-Attributes response.
9. Changed the 'default' out-of-band value to 'delete-attribute'
out-of-band value so that the effect is to actually remove the Job attribute
entirely in the Set-Job-Attribute operation.
10. Clarified that removing a Job attribute that is not present is not
11. Clarified the validation of the Set-Job-Attributes request and what
is returned for each error.
12. Changed the 'any-name' out-of-band attribute value to a more general
'any-value' out-of-band attribute value which in combination with an
attribute syntax represents any value of that attribute syntax. The
'any-value' value can be used with the 'name' attribute syntax in a
Get-Printer-Supported-Values response to indicate whether or not a
Set-Printer-Attributes will accept any name to be set for particular
"xxx-supported" (1setOf name | ...) Printer attributes.
13. Clarified that "printer-message-from-operator" and
"job-message-from-operator" both REQUIRE that the Printer accept zero-length
messages and the 'no-value' out-of-band value is synonymous with removing
any value from these Printer attributes.
14. Clarified that the Get-Printer-Supported-Values is REQUIRED only if
the Set-Printer-Attributes operation will accept setting some
"xxx-supported" Printer attributes.
15. Changed the IANA Considerations to indicate that the operations,
attributes, status codes, and out-of-band-values won't be registered and
published by IANA, since this document is intended to be standards track.
16. Added security considerations for denial of service and sabotage
because of the Set operations.