INTERNET-DRAFT R. deBry
IBM Corporation
T. Hastings
Xerox Corporation
R. Herriot
Sun Microsystems
S. Isaacson
Novell, Inc.
P. Powell
San Diego State University
March 26, 1997
Internet Printing Protocol/1.0: Model and Semantics
draft-ietf-ipp-model-00.txt
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are
working documents of the Internet Engineering Task Force
(IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum
of six months and may be updated, replaced, or obsoleted
by other documents at any time. It is inappropriate to
use Internet-Drafts as reference material or to cite them
other than as "work in progress."
To learn the current status of any Internet-Draft, please
check the "1id-abstracts.txt" listing contained in the
Internet-Drafts Shadow Directories on ftp.is.co.za
(Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific
Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US
West Coast).
Abstract
This document is one of a set of documents which together
describe all aspects of a new Internet Printing Protocol
(IPP). IPP is an application level protocol that can be
used for distributed printing on the Internet. The
protocol is heavily influenced by the printing model
introduced in the Document Printing Application (ISO/IEC
10175 DPA) standard. Although DPA specifies the both end
user and administrative features, IPP version 1.0
(v1.0)is focused only on end user functionality.
deBry, Hastings, Herriot, Isaacson, Powell [Page 1]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
The full set of IPP documents includes:
Internet Printing Protocol: Requirements
Internet Printing Protocol/1.0: Model and Semantics
Internet Printing Protocol/1.0: Security
Internet Printing Protocol/1.0: Protocol Specification
Internet Printing Protocol/1.0: Directory Schema
The requirements document takes a broad look at
distributed printing functionality, and it enumerates
real-life scenarios which help to clarify the features
that need to be included in a printing protocol for the
Internet. It identifies requirements for three types of
users: end users, operators, and administrators. The
requirements document calls out a subset of end user
requirements which must be satisfied in the first version
of IPP. Operator and administrator requirements are out
of scope for v1.0. The model and semantics document
describes a simplified model with abstract objects, their
attributes, and their operations. The model introduces a
Printer object and a Job object. The Job object supports
multiple documents per job. The security document covers
potential threats and proposed counters to those threats.
The protocol specification is formal document which
incorporates the ideas in all the other documents into a
concrete mapping using clearly defined data
representations and transport protocol mappings that real
implementers can use to develop interoperable client and
server side components. Finally, the directory schema
document shows a generic schema for directory service
entries that represent instances of IPP Printers.
This document is the "Internet Printing Protocol/1.0:
Model and Semantics" document.
deBry, Hastings, Herriot, Isaacson, Powell [Page 2]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Table of Contents
1. Introduction............................................7
1.1 Conformance ..........................................8
1.1.1 Client Considerations .............................9
1.1.2 Server Considerations .............................9
2. Simplified Printing Model..............................10
3. IPP Objects............................................14
3.1 Printer .............................................14
3.2 Job .................................................17
3.3 Document Object .....................................18
3.4 Object Relationships ................................19
3.5 Object Attributes ...................................19
3.6 Object Identity .....................................21
4. IPP Operations.........................................22
4.1 Introduction ........................................22
4.2 Operation Semantics .................................23
4.2.1 Print Operation ..................................23
4.2.1.1 Print Request ................................24
4.2.1.2 Print Response ...............................25
4.2.2 Cancel Job Operation .............................25
4.2.2.1 Cancel-Job Request ...........................26
4.2.2.2 Cancel-Job Response ..........................26
4.2.3 Get Attributes Operation .........................26
4.2.3.1 Get-Attributes Request .......................27
4.2.3.2 Get-Attributes Response ......................27
4.2.4 Get Jobs Operation ...............................28
4.2.4.1 Get-Jobs Request .............................28
4.2.4.2 Get-Jobs Response ............................29
deBry, Hastings, Herriot, Isaacson, Powell [Page 3]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5. Object Attributes......................................30
5.1 Attribute Syntaxes ..................................30
5.1.1 Attribute Extensibility ..........................34
5.1.2 Relationship of Job and Printer Attributes .......36
5.1.3 Attribute Value Tags .............................38
5.1.3.1 Tagged Printer Attributes ....................38
5.1.3.2 Tagged Job Attributes ........................39
5.2 Job Template (job-template) Attributes ..............39
5.2.1 Job Sheet Attributes (Set by Client/End User) ....40
5.2.1.1 job-sheets (type4 keyword) ...................40
5.2.2 Job Notification (job-notification) Attributes (Set
by a Client/End User) ..................................41
5.2.2.1 notification-events (setOf type2 keyword) ....41
5.2.2.2 notification-addresses (setOf url) ...........42
5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
Client/End User) .......................................43
5.2.3.1 job-priority (integer(1:100)) ................43
5.2.3.2 job-hold-until (type4 keyword) ...............44
5.2.4 Job Production (job-production) Attributes (Set by
Client/End User) .......................................45
5.2.4.1 multiple-documents-are (type1 keyword) .......47
5.2.4.2 best-effort (type2 keyword) ..................48
5.2.5 Document Production (document-production)
Attributes (Set by Client/End User) ....................49
5.2.5.1 medium (setOf type2 keyword) .................49
5.2.5.2 number-up (type3Enum) ........................57
5.2.5.3 sides (type2 keyword) ........................58
5.2.5.4 printer-resolution (type2 keyword) ...........59
5.2.5.5 print-quality (type2 keyword) ................60
5.2.5.6 copies (integer(1:2**31 - 1)) ................61
5.2.5.7 finishing (setOf type2 keyword) ..............61
5.2.5.8 compression (type2 keyword) ..................63
5.2.6 Document Format Attributes (Set by Client/End User)63
5.2.6.1 document-format (type2 keyword) ..............63
5.2.7 Job Size (job-size) Attributes (Set by Client and
Printer) ...............................................68
5.2.7.1 job-k-octets (integer(0:2**31 - 1)) ..........69
5.2.7.2 job-impressions (integer(0:2**31 - 1)) .......70
5.2.7.3 job-media-sheets (integer(0:2**31 - 1)) ......70
5.2.8 Number of Documents (Set by Printer) .............71
5.2.8.1 number-of-documents (integer(1:2**31 - 1)) ...71
5.3 Job Attributes Set by the Printer ...................71
5.3.1 Job Identification (job-identification) Attributes
(Set by the Printer) ...................................71
5.3.1.1 job-URL (url) ................................71
deBry, Hastings, Herriot, Isaacson, Powell [Page 4]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)72
5.3.2.1 job-originating-user (name) ..................72
5.3.2.2 job-originating-host (name) ..................72
5.3.2.3 user-locale (type3 keyword) ..................72
5.3.2.4 job-name (name) ..............................73
5.3.3 Job Status (job status) Attributes (Set by Printer)73
5.3.3.1 job-state (type1 keyword) ....................73
5.3.3.2 job-state-reasons (setOf type2 keyword) .....76
5.3.3.3 job-state-as-text (text) .....................78
5.3.3.4 output-device-assigned (url) .................78
5.3.3.5 submission-time (dateTime) ...................79
5.3.3.6 number-of-intervening-jobs (integer(0:2**31 -
1)) ..................................................79
5.3.3.7 job-message-from-operator (text) .............79
5.3.3.8 completion-time (dateTime) ...................79
5.4 Document Attributes .................................80
5.4.1 Document Data (document-data) Attributes (Set by a
Client/End User) .......................................80
5.4.1.1 document-name (name) .........................80
5.4.1.2 document-URL (url) ...........................80
5.4.1.3 document-content (octetString) ...............81
5.5 Printer Description (printer-description) Attributes81
5.5.1 Printer Identification (printer-identification
Attributes (Set by the Administrator) ..................81
5.5.1.1 printer-URL (url) ............................81
5.5.1.2 printer-name (name) ..........................81
5.5.2 Printer Description Attributes (Set by the
Administrator) .........................................82
5.5.2.1 printer-location (text) ......................82
5.5.2.2 printer-description (text) ...................83
5.5.2.3 printer-more-info-site (url) .................83
5.5.2.4 printer-driver-installer (url) ..............83
5.5.3 Printer Description Attributes (Set by the
Manufacturer) ..........................................83
5.5.3.1 printer-make-and-model (text) ................83
5.5.3.2 maximum-printer-speed (integerUnits) .........83
5.5.3.3 printer-more-info-manf (url) .................84
5.6 Printer Status (printer-status)Attributes ...........84
5.6.1 Printer Status Attributes (Set by the Printer) ...84
5.6.1.1 printer-state (type1 keywordEnum) ............84
5.6.1.2 printer-state-reasons (setOf type2 keyword) ..86
5.6.1.3 printer-is-accepting-jobs (boolean) ..........89
5.6.1.4 printer-state-as-text (text) .................89
5.6.1.5 queued-job-count (integer(0:2**31 - 1)) ......90
deBry, Hastings, Herriot, Isaacson, Powell [Page 5]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.6.2 Printer Status Attributes (Set by the
Administrator) .........................................90
5.6.2.1 printer-message-from-the-operator (text) .....90
5.7 Printer Behavior (printer-behavior) Attributes ......90
5.7.1 Printer Behavior Attributes (set by the
Administrator) .........................................90
5.7.1.1 printer-locale (locale) ......................90
5.7.1.2 fonts-substitutions (setOf setOf font) .......90
5.7.1.3 scheduling-algorithm (type3 keyword) .........91
5.7.1.4 printer-fonts (setOf font) ...................91
6. IANA Considerations....................................91
7. Security Considerations................................92
8. References.............................................92
9. Author's Address.......................................93
deBry, Hastings, Herriot, Isaacson, Powell [Page 6]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
1. Introduction
The Internet Printing Protocol (IPP) is an application
level protocol that can be used for distributed printing
on the Internet. The protocol is heavily influenced by
the printing model introduced in the Document Printing
Application (ISO/IEC 10175 DPA) standard. Although DPA
identifies both end user and administrative features, the
first version of IPP is focused only on the end user
functionality.
Section 2 is a comparison between the new IPP model and a
generic description of the various solutions and
architectures that exist in today's distributed printing
products. This section shows a high level mapping
between the complex set of inter-dependent distributed
printing components and the IPP model. This new IPP
model simplifies the back-end implementations by exposing
only the objects, attributes, and operations that are
essential for end user access and control of the print
subsystem. When future versions of IPP include operator
and administrator requirements, the model can be extended
to support the appropriate objects, attributes, and
operations.
Section 3 introduces the full semantics of the new
Printer, Job, and Document objects in the IPP model. It
covers how instances of these objects are identified,
named, and related to each other.
Section 4 covers the operations which are part of the IPP
model. These operations include: the Print, Cancel, Get
Attributes, and Get Jobs operations. The Print and Get
Jobs operations are performed by a Printer. The Get
Attributes operation is performed by either a Printer or
a Job. A Cancel Job operation is performed on a Job
object.
Section 5 describes the attributes, their syntaxes, and
semantics which are part of the IPP model. Each object's
attributes are described, and the attributes are grouped
into logical groups to help clarify their relationships
and meaning.
Sections 6-9 cover security, technical references, and
author contact information.
deBry, Hastings, Herriot, Isaacson, Powell [Page 7]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
1.1 Conformance
This specification uses the verbs: "shall", "should",
"may", and "need not" to specify conformance requirements
as follows:
- "shall": indicates an action that the subject of the
sentence must implement in order to claim conformance to
this specification
- "may": indicates an action that the subject of the
sentence does not have to implement in order to claim
conformance to this specification, in other words that
action is an implementation option
- "need not": indicates an action that the subject of
the sentence does not have to implement in order to claim
conformance to this specification. The verb "need not"
is used instead of "may not", since "may not" sounds like
a prohibition.
- "should": indicates an action that is recommended for
the subject of the sentence to implement, but is not
required, in order to claim conformance to this
specification.
A conforming implementation shall implement all
operations and objects defined in this document.
Attributes are conditionally mandatory. This means that
an implementation need not include an attribute if the
attribute controls a feature that the implementation does
not support. For example, a printer that can only print
on one side need not implement the "sides" attribute. A
printer that does not support any of the finishing
attribute values, need not implement the "finishing"
attribute. An implementation that does not allow for
non-ready supported values in addition to ready values,
need not implement a full set of possibly supported
values. A printer with only a single input tray with
only one media type in that tray need not implement the
"media" attribute.
Some of the attributes include values which are
extensible. The set of attributes themselves are also
extensible. Therefor, an IPP implementation (either
client or server) shall support these extensions. Some
implementations may choose to ignore private extensions,
deBry, Hastings, Herriot, Isaacson, Powell [Page 8]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
others my be able to support these values. On the client
side, this might mean displaying the values to the end
user via some extensible user interface mechanism. On
the server side, it might mean actually performing the
semantic action implied by the new value. In either
case, the operation shall not fail because either the
client or server does not understand extended values or
attributes.
IPP allows for variations on attributes using a mechanism
called "attribute tags" or "adornments" (see section
5.1.3). Clients can supply attributes with tags that
represent variations on the normal (unadorned) attribute
semantics. Servers can also respond with tagged
attribute information. Tags are most applicable and
useful in more sophisticated implementations. Therefor,
all adornment tags are optional for conforming
implementations. This allows for interoperability since
the behavior of implementations which can not support the
semantics of the adornment tags is consistent with the
behavior implied by the absence of all tags.
1.1.1 Client Considerations
IPP clients shall support all operations, objects, and
attributes as defined in this document. However, there
is no conformance requirements placed on the user
interfaces provided by IPP clients or their applications.
For example, one application might not allow an end user
to submit multiple documents per job, while another does.
One application might first query a Printer object in
order to supply a graphical user interface (GUI) dialogue
box with current supported and default values whereas a
different application might not. A conforming client may
choose to ignore any adornment tags it does not
understand.
1.1.2 Server Considerations
It is not required that a conforming server support all
(standard) values of all supported attributes. For
example, it is not required that a printer implement all
finishing methods indicated by the standard values. The
explicit requirement of the term "supported", with
respect to one of the attributes that deal with printer
functions or resources, is that the server shall
deBry, Hastings, Herriot, Isaacson, Powell [Page 9]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
recognize the attribute and those values that are
supported, and shall be able to respond to a query about
which values that printer does, in fact, support. A
conforming server shall ignore any adornment tags it does
not understand.
2. Simplified Printing Model
In order to a achieve its goal of realizing a workable
printing protocol for the Internet, IPP is based on a
simplified printing model which abstracts the many (often
complex) real world printing solutions. Many of these
include features, interfaces, and relationships that are
beyond the scope of IPP. IPP has to run in a distributed
computing environment where requesters of print services
(clients, applications, PC drivers, etc.) cooperate and
interact with print service providers. Although the
underlying configuration may be a complex n-tier
client/server system, an important simplifying step in
the IPP model is to expose only the key objects and
interfaces. The IPP model encapsulates the important
elements into three simple objects:
Printer (section 3.1)
Job (section 3.2)
Document (section 3.3)
Each of these objects has a set of operations associated
with it. These include:
Printer:
Print (section 4.2.1)
Get Attributes (section 4.2.3)
Get Jobs (section 4.2.4)
Job object
Get Attributes (section 4.2.3)
Cancel Job (section 4.2.2)
There are no operations defined for a Document object.
All document information is accessed through a Job object
and its operations.
It is important, however, to understand that in real
system implementations (which lie underneath the
abstracted IPP model), there are other components of a
print service which are not explicitly modeled in the IPP
model. These components allow for additional operator
deBry, Hastings, Herriot, Isaacson, Powell [Page 10]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
and administrator functionality. These components are
illustrated in the following figure:
+--------------+
| Application |
+------+-------+
|
o +..............+
\|/ | Spooler |
/ \ +..............+
End-User |
+-----------+ +-----+ +..............+ Existing
| Browser | | GUI | | Print Driver | Print
+-----+-----+ +--+--+ +..............+ Client
| | | |
| +---+------------+---+ +----+----+
N D S | | IPP Client |<--| Gateway |
O I E | +---------+----------+ +---------+
T R C | |
I E U |
F C R -------------- Transport --------
I T I
C O T | --+
A R Y +--------+--------+ |
T Y | IPP Server | |
I +--------+--------+ |
O | |
N +.................+ | IPP Printer
| Print Service | |
+.................+ |
| |
Output Device(s) |
--+
This figure shows that the abstraction of a Printer
object not only supports the functionality of the actual
output device but additionally supports (where
implementation configuration requires) the spooling,
scheduling, and multiple output device management
functions often associated with a print server.
In the IPP model, users take on the role of end users,
operators, or administrators based on authentication and
authorization mechanisms provided through the security
service(s). Printers are registered as entries in the
directory. End users find and select Printers based on
some sort of filtered and context based searching using
deBry, Hastings, Herriot, Isaacson, Powell [Page 11]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
the directory. The directory is used to store relatively
static information about the Printer. This allows end
users to search for and find Printers that match their
search criteria (name, context, printer capabilities,
etc.) All information about the Printer, both static and
dynamic information, can be accessed directly from the
Printer itself. The more dynamic information associated
with a Printer includes state, currently loaded and ready
media, number of jobs, errors, warnings, etc. Once an
end user selects a Printer, the end user interacts with
that Printer in order to determine status and
capabilities of the Printer and then submits jobs to the
Printer. When a job is submitted to the Printer, a Job
object is created. The end user then interacts with this
new Job to query its status and monitor the progress of
the job. End users may also cancel the Job. The end
user is able to register to receive certain events which
are then routed using the notification service(s).
It should be obvious, that not all existing or even
future print subsystems conform to this model directly.
The IPP model however, can be overlaid on top of any of
these products and architectures. How does this IPP model
fit on top of these systems? In order to answer that
question we must first consider a generic model that
allows us to describe the many different features and
components of these various systems.
Consider the figure above. Each distributed print
service product will include elements from the following
list:
End Users: End Users are humans who submit print jobs.
End users will issue IPP operation requests and receive
IPP operation responses through an end user interface.
GUI: A Graphical End User Interface developed
specifically for interacting with an IPP Client.
Browser: A World-Wide-Web Browser. IPP conforming systems
will support access to print functions using standard
Web Browsers.
Applications: Application software which produces printer
output and submits it for printing. Some applications
generate printer page description languages directly,
while others depend on operating system components, such
as a Print Driver, to do so.
deBry, Hastings, Herriot, Isaacson, Powell [Page 12]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Spooler: A system component which stores print jobs prior
to submitting them for printing. On the client side, a
spooler allows the application to run asynchronously from
the actual transmission and print operation. On the
server side, a spooler allows the server to receive and
store multiple jobs while printing. Spoolers are optional
components.
Print Driver: In some desktop operating systems, such as
Windows, Print Drivers are used by the operating system
to generate the actual PDL for a given device from an
internal, device independent presentation format. This
keeps the applications themselves from having to worry
about generating device specific data streams for each
possible output device. Print Drivers do not exist in all
environments.
IPP clients: IPP clients are computer network nodes with
which humans, though a GUI or a command line, or programs
interact in order to manipulate the distributed print
service. An IPP client uses the IPP protocol to invoke
IPP operations on another node. Each operation has
arguments and results associated with it. The IPP client
provides arguments which add information about the
operation requested, and receives results which describe
the status and outcome of the operation.
Gateway: Gateways provide a mechanism for supporting the
clients of existing print services, such as LPR. A
gateway transforms the protocol of an existing client
into IPP and vice-versa.
Transport: The transport system and protocol used to
carry IPP messages across the network. IPP assumes a
reliable transport protocol.
Notification Services: Notification services in the
network provide a means for asynchronously communicating
events such as completion of a print job back to an end-
user. These notification services are used by IPP but are
not included natively in the IPP protocol. Example would
be include e-mail, HTTP POSTs, or any other similar
service.
Directory Services: Directory services in the network
provide a means where IPP Printers can be advertised by
registering with the directory. Although not mandatory
in an IPP conforming system, the use of a directory
deBry, Hastings, Herriot, Isaacson, Powell [Page 13]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
service is suggested in order to provide printer location
services to end users. A generic directory schema for IPP
Printers is described in "Internet Printing Protocol/1.0:
Directory Schema".
Security: The IPP protocol itself does not contain any
unique security mechanisms, but rather it depends upon
existing security systems, such as Secure Sockets Layer
(SSL) to provide authentication, privacy and message
integrity.
IPP Server: An IPP Printer object is an abstraction of
some print service provider. An Printer, by definition,
supports the IPP protocol. The component that implements
the protocol on behalf of the Printer is called an IPP
Server. In real configurations, an IPP Server may be a
component of a print server or an output device.
Print Service: Print Services may be embedded in an
output device or implemented in a separate system which
is associated with an output device. The print service
receives requests from the IPP client, performs the
requested operation, and sends back results which
describe the status and outcome of the operation
requested. A print service normally provides queuing,
job management, and device management functions.
Output Devices: Output devices interpret the print data
and generate some form of output. In the case of a laser
printer, for example, this normally means rasterizing the
print data and putting the resulting marks on paper. An
output device may receive print data directly from a
client or through a Print server.
A specific implementation of a print service may not
include all of the elements described here, and the
physical packaging of elements is up to the
implementation. For example, an output device may include
a queue or a print server may include a rasterizer.
3. IPP Objects
3.1 Printer
A major component of the IPP model is the Printer object.
To the end user, the Printer object is an abstraction of
deBry, Hastings, Herriot, Isaacson, Powell [Page 14]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
not only the functionality typically associated with an
actual output device, but also the abstraction
additionally supports (where necessary) the spooling,
scheduling, and multiple output device management
functions often associated with a print server.
The capabilities and state of an IPP Printer are
described by its attributes. Printer attributes are
defined in the following categories:
Job Template Attributes (section 5.2)
Printer Description Attributes (section 5.5)
Printer Status Attributes (section 5.6)
Printer Behavior attributes (section 5.7)
Operations which can be invoked on a printer include:
Print (section 4.2.1)
Get Attributes (section 4.2.3)
Get Jobs (section 4.2.4)
An instance of a Printer object implements IPP. Using
the protocol, end users may query the attributes of the
Printer, submit jobs to the Printer, determine subsequent
states of submitted and queued jobs, and cancel their own
print jobs. The realization of a Printer object may take
on different forms for any given configuration of real
components. However, the details of the configuration of
real components must be transparent to the end user.
Since a Printer object is an abstraction of a generic
document output device, an IPP Printer object could be
used to represent any real or virtual device with
semantics consistent with the Printer object. For
example, an instance of a Printer object could be used
to front end a fax-out device, any kind of imager, or
even a CD writer.
Some examples of configurations supporting a Printer
object include:
1) An output device, with no spooling capabilities
2) An output device, with a built-in spooler
3) A print server supporting IPP with one or more
associated
output devices
3a) The associated output devices may or may not be
capable
deBry, Hastings, Herriot, Isaacson, Powell [Page 15]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
of spooling jobs
3b) The associated output devices may or may not
support IPP
See the following figures for some examples on how to
view Printer objects on top of other printing system
configurations. The embedded case represents
configurations 1 and 2. Configuration number 3 is
represented by the hosted and fan-out figures below.
deBry, Hastings, Herriot, Isaacson, Powell [Page 16]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Legend:
##### indicates a Printer object which is
either embedded in an output device or is
hosted in a server. A Printer object
may or may not queue/spool.
any indicates any network protocol or direct
connect, including IPP
embedded printer:
output device
+---------------+
O +--------+ | ########### |
/|\ | client |------------IPP------------># Printer # |
/ \ +--------+ | ########### |
+---------------+
hosted printer:
+---------------+
O +--------+ ########### | |
/|\ | client |--IPP--># Printer #-any->| output device |
/ \ +--------+ ########### | |
+---------------+
+---------------+
fan out: | |
+-->| output device |
any/ | |
O +--------+ ########### / +---------------+
/|\ | client |-IPP-># Printer #-*
/ \ +--------+ ########### \ +---------------+
any\ | |
+-->| output device |
| |
+---------------+
3.2 Job
A Job object is used to model a job. A job can contain
one or more documents. The information required to
create a Job object is sent in a Print operation from the
end user via a client implementation to a Printer. The
deBry, Hastings, Herriot, Isaacson, Powell [Page 17]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Printer may perform some validation checks to verify that
the job may indeed be processed. For example, the Print
operation may request that the documents within the job
be printed duplex (on both sides of the media). However,
the Printer may not support such a feature. Once the
Printer validates the submitted information, a Job object
is created. The instance of the Job object is
initialized with information from the Print request along
with default information from the Printer. This document
defines rules which define which pieces of information
override other pieces of information and what to do in
the event of conflicts between what is possible and what
is requested.
Job attributes are broken up into the following groups:
Job Template Attributes optionally supplied by the
client/end user
Job Sheet Attributes (section 5.2.1)
Job Notification Attributes (section 5.2.2)
Job Scheduling Attributes (section 5.2.3)
Job Production Attributes (section 5.2.4)
Document Production Attributes (section 5.2.5)
Document Format Attributes (section 5.2.6)
Job Template Attributes set by Client and Printer
Job Size Attributes (section 5.2.7)
Job Template Attributes set by the Printer
Number of Documents Attribute (section 5.2.8)
Job Attributes set by the Printer
Job Identification Attributes (section 5.3.1)
Job Owner Attributes (section 5.3.2)
Job Status Attributes (section 5.3.3)
The following operations can be invoked on Jobs:
Cancel Job (section 4.2.2)
Get Attributes (section 4.2.3)
3.3 Document Object
Documents consist of printable data and attributes which
describe the data to be printed. In this version of the
protocol only the document format attribute may be
defined for individual documents.
Document attributes include:
Document Attributes (section 5.4)
deBry, Hastings, Herriot, Isaacson, Powell [Page 18]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Currently no operations are defined on documents.
3.4 Object Relationships
Instances of objects within the system have relationships
which must be maintained persistently along with the
persistent storage of the object attributes. A Printer
can represent one or more output devices. An output
device can be represented by one or more Printer objects.
A Printer can contain zero or more Job objects. A Job
object is contained in exactly one Printer object. A Job
object contains one or more Documents. If the Document
is simply a reference to some print data stream, the
reference may be used in multiple documents in the same
Job or even in different Jobs. If the Document is not
just a reference, but an actual stream of print data, it
shall only be contained in one Document.
3.5 Object Attributes
Each object type is defined by a set of attributes that
support and describe the realization of each instance of
an object. That is, a Printer object is defined as
specific set of attributes that are associated with each
instance of a Printer object. In the same manner, a Job
object is defined by defining the set of attributes that
will be associated with each instance of a Job object.
These attributes are defined in section 5 of this
document. Some attributes apply to only a Job object.
Some apply to only a Printer object.
In addition, there are some attributes that are shared
between both Printer objects and Job objects. These
attributes are defined in section 5.2. They are called
Job Template attributes. When one of these attributes is
part of a Job object, it specifies some end user job
processing instruction. It describes "what is wanted" by
the end user. When the attribute is part of a Printer
object, it specifies what the printer is capable of . It
describes "what is supported" by this instance of a
Printer. Also, as a Printer attribute, , the attribute
may have an optional default value which shall be used
for Jobs which do not supply an attribute value . This
default value describes "what will happen" if not
supplied in the by the end user in the Print Request.
deBry, Hastings, Herriot, Isaacson, Powell [Page 19]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
For example, one such Job Template attribute is the "job-
priority" attribute. When this attribute is part of a
Printer object, its value us a range of job priority
values. This range indicates what job priorities are
supported at this Printer. It may also have a default
value that determines what the job priority will be if
not supplied in the Print Request. When the "job-
priority" attribute is included with the Print Request,
it specifies the desired job priority for this job. If
the request does not include the job-priority attribute,
the Printer creates the Job object using the default
value from Printer attribute. If the Print Request does
supply a job priority value, the Printer must validate
the user supplied job priority; perhaps the end user is
requesting a job priority which is higher that what is
allowed by the Printer. If the value in the print request
is within the range of supported values, the request is
accepted and the Job object is created using the value
supplied by the end user. In this case, the Printer's
default value is not used. If the value supplied in the
request is outside the range of supported values, the
request is rejected.
Section 5.1 also introduces the notion of adornments on
attribute values in order to handle some nuances
associated with values of certain Job and Printer
attributes. These adornments are tags that are
associated with specific values in the attribute. For
example, in a Printer object, one of the attributes is
the medium attribute. A set of values in this attribute
implies that the Printer is capable of printing jobs on
those media types. However, there may be a distinction
between a supported value that is "ready" and another
that is "not-ready". This semantic information can be
passed between the Printer and interested clients by
using an "availability" tag which identifies each value
as either being ready or not ready (even though they are
all supported).
Two important attributes that need to be mentioned here
are the "multiple-documents-are" attribute and the "best-
effort" attribute.
The "multiple-documents-are attribute" is relevant only
if a job consists of two or more documents. It controls
finishing operations, job-sheet placement, and the order
of documents when the copies attribute is specified. The
end user uses this attribute in a Print Request to
deBry, Hastings, Herriot, Isaacson, Powell [Page 20]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
control whether multiple documents in the job are
intended to be finished or copied separately or as one
job. The values for this attribute are: "single-
document", "separate-documents-uncollated-copies", or
"separate-documents-collated-copies".
The "best-effort" attribute determines what to do if
there is a conflict between what a client requests and
what a Printer is capable of . Values for this attribute
are: "substitute-as-needed" and "do-not-substitute". If
the value for this attribute in a Print Request is
"substitute-as-needed" then the end user desires the job
be printed using substitutions by the Printer where
needed in order to resolve conflicts. If the value is
"do-not-substitute", then the end user desires that the
job should not be processed unless every attribute value
can be completely satisfied as specified. It is not
expected that this attribute is used much. Many clients
will submit a job with no attributes, and the Printer
will use default values. Other clients will submit a job
via a GUI which limits the attribute values to only those
which are supported. A value of "substitute-as-needed:
is useful in the GUI context only if an end user expects
the job to be moved to another Printer and prefers a sub-
optimal result to nothing at all. Also, an end user may
be printing a pre-formatted document where it is not
obvious that the client supplied attributes conflict with
what is in the print data itself or even if the printer
can satisfy the instructions already embedded in the pre-
formatted document. This "best-effort" attribute is most
useful in the case where an end user uses a command line
interface to blindly request attributes that may not be
supported.
3.6 Object Identity
All instances of Printer and Job objects have an
identifier attribute whose value is globally unique so
that they can persistently and unambiguously referenced.
The IPP model requires that these values be URLs as
defined by RFC 1738 and RFC 1808. In addition to an
identifier attribute, instances of Printer and Job
objects may have a name. An object name need not be
unique across all instances of all objects. The Printer
name is chosen and set by an administrator. The Job name
is created by the Printer using the name of the forst
document in the job. In all cases, the name only has
deBry, Hastings, Herriot, Isaacson, Powell [Page 21]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
local meaning, and is not constrained to be globally
unique.
To summarize, each instance of Printer and Job objects
will have two identifying attributes:
- xxx-URL: The globally unique locator for this object
instance
- xxx-name: The non-globally unique name for this object
instance
Document objects only have names, no identifiers. The
"document-name" attribute is used to store the name of
the Document. This name is just of interest within the
context of a Job. It need not be globally unique.
ISSUE: Do Documents need identifiers?
4. IPP Operations
4.1 Introduction
Printers and Jobs each have a set of operations
associated with it. End users, or programs invoke, these
operations through interactions with an IPP client. The
operations are:
For a Printer object:
Print (section 4.2.1)
Get Attributes (section 4.2.3)
Get Jobs (section 4.2.4)
For a Job object:
Cancel Job (section 4.2.2)
Get Attributes (section 4.2.3).
IPP objects are identified by URLs. When a client
communicates with a remote IPP object, it sends an
operation request to the URL for that object. Each
request carries along with it the parameters and data
required to perform the specified operation. Each
request requires a response from the object indicating
success or failure of the operation including response
data and/or error messages. Details of the IPP protocol
deBry, Hastings, Herriot, Isaacson, Powell [Page 22]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
are contained in "Internet Printing Protocol: Protocol
Specification."
It is assumed that URLs for IPP Printers are available to
end users or programs who wish to invoke Printer
operations. Although not mandatory, it is recommended
that Printers be registered in a directory service which
end users and programs can interrogate. "Internet
Printing Protocol: Directory Schema" defines the
attributes to be associated with an Printer entry in a
directory service.
ISSUE: We need to add "implementation notes." These are
helpful hints of how to map these abstract concepts to
real development efforts. Does it go here?
4.2 Operation Semantics
In this section, the four IPP operations are described in
terms of their contents and semantics.
4.2.1 Print Operation
When an end user desires to submit a print job, the
client sends a Print Request and receives a Print
Response. The information in a Print Request along with
any default information associated with the Printer is
sufficient to create a Job object. An instance of a Job
object contains all the information needed by the Printer
to print one or more documents as a print job.
When a Printer receives a Print Request, it either
accepts or rejects the request. The Printer accepts the
Print Request and creates a Job object if it is able to
accept each attribute in the request, and it rejects the
request and does not create a Job object if it rejects
any attribute in the request. There are five cases to
consider with respect to each attribute.
- The client supplies an attribute value and it is among
the values supported by the Printer: The job attribute is
accepted.
- The client supplies an attribute value but the
attribute is syntactically bad: The Printer rejects the
job.
deBry, Hastings, Herriot, Isaacson, Powell [Page 23]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
- The client supplies an attribute value and a) the
attribute value is not among the values supported by the
Printer, or b) the printer does not specify the
attribute: The job attribute is accepted only if the
best-effort attribute is set to substitute-as-needed
which allows the Printer to perform a best effort at
processing the job rather than rejecting the job. If
the job attribute is accepted, the Printer sets the value
of the attribute to a reasonable value, which may be the
Printer's default value if it is specified.
- The client does not supply a value, but the Printer
does: The attribute is accepted and when the Printer
creates a Job object, the Printer uses its default value.
If Printer is able to inspect the PDL and determine the
value of the embedded attribute, it sets the value of the
attribute to the embedded value and adorns it with the
embedded tag.
- Neither the client supplies an attribute value nor does
the Printer define a default value: The print request is
accepted, the Printer creates the Job object using
defaults as defined in this specification.
Issue: Can a Job object be created without some of the
attributes, then as the Printer processes the Job, there
is some default behavior as described either in this
document or a supplied on an implementation defined
basis. That is, if neither the client nor the Printer's
default supplies a value for a job attribute, then the
output device shall supply its own default value for that
job attribute, if necessary, in order to produce output.
4.2.1.1 Print Request
ISSUE: The client initially submits the request to a
Printer URL. If a client submits a job in fragments, the
initial submission returns a Job URL to which the client
submits subsequent fragments.
The following abstract data types are part of the Print
Request:
Job and A set of Job object and Document
Document attributes as defined in section 5.2.
Attributes This section may be empty. If so,
Printer defaults are used.
deBry, Hastings, Herriot, Isaacson, Powell [Page 24]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Document Document content is optional and shall
Contents not be included when a URL is provided
in the document-URL attribute which
points to the content.
The simplest Print Request consists of a document contents
and nothing else.
4.2.1.2 Print Response
The following abstract data types are part of the Print
Response:
Job- A URL Used for all other operations on
Identifier this Job.
Job Status All job attributes belonging to the job-
status group. The value of each
attribute shall be from a snapshot taken
sometime after the time the Printer
receives the print request. Since any
job affecting printer state information
(printer-state-reasons) is reflected in
the job-state and job-state-reasons, it
is sufficient to return only job status
attributes and no printer status
attributes.
Status status information including error
status
Message optional status message
The simplest response consists of the job identifier, Job
status, and operation status which is either an OK status or
Error status.
4.2.2 Cancel Job Operation
This operation allows a user to cancel one specific Print
Job any time after the print job has been established on
the Printer. Some pages may be printed before a job is
terminated if printing has already started when the
Cancel Job operation is received. Only the end user who
is also the job originator (job-originating-user Job
attribute) can cancel the job.
deBry, Hastings, Herriot, Isaacson, Powell [Page 25]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
4.2.2.1 Cancel-Job Request
The client submits the request to a Job URL.
The following abstract data types are part of the Cancel
Job Request:
Message Optional message to the operator.
4.2.2.2 Cancel-Job Response
The following information is part of the Cancel Job
Response:
Status status information including error
status
Message optional status message
4.2.3 Get Attributes Operation
This operation allows an end user to obtain information
from a Printer or Job object. The operation contains the
set of attributes names and/or attribute group names that
the requester is interested in. A corresponding
attribute list is returned in the response with the
appropriate attribute values filled in for each attribute
(explicitly named or implicitly included in an attribute
group) in the request.
If the request to a Printer does not supply any attribute
names, the Printer shall assume that the client is
implicitly requesting the default groups of "printer-
identification" and "printer-status". If the request to a
Job object does not supply any attribute names, the
Printer shall assume that the client is implicitly
requesting the default groups of "job-identification",
"job-owner", and "job-status".
deBry, Hastings, Herriot, Isaacson, Powell [Page 26]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
4.2.3.1 Get-Attributes Request
The client submits the request to a Job URL or Printer
URL.
The following abstract data types are part of the Get
Attributes Request:
Requested A set of attributes without values in
Attributes whose values the requester is
interested This is optional.
format This is used only when a this request
is sent to a Job and the end user is
interested in production attributes. In
that case, the client must the format
in the request since the default value
of the formats supported for the
Printer might be "auto-sense", and a
Printer's attributes or attribute
values may differ for each format that
it supports. This request value allows
a client to specify a particular
format.
There shall be a way to specify certain groups of
attributes, and it shall be possible to get more than one
group. The groups shall be organized in the same way as
this document and shall have the same names as the
sections heads of the groupings. Each section and
subsection contains the group name for the attributes in
that section or subsection.
For Printers and Job the special groups include:
- "none": no attributes of the specified object. NOTE:
none is primarily useful in Get Jobs, but can be
used as a ping with Get Attributes.
- "all": all attributes of the specified object.
4.2.3.2 Get-Attributes Response
The following abstract data types are part of the Get
Attributes Response:
Result The requested attributes of the object
Attributes with their current values, if the
requester supplied any Requested
deBry, Hastings, Herriot, Isaacson, Powell [Page 27]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Attributes
Status status information including error
status
Message optional status message
A Printer may choose, for security reasons, not to return
all attributes that a client requests. It may even return
none of the requested attributes. In such cases, the
status returned is the same as if the Printer had
returned all requested attributes. The client cannot tell
by such a response whether the requested attribute was
present or absent on the Printer.
4.2.4 Get Jobs Operation
This operation allows a client to retrieve Printer
attributes and a list of print jobs belonging to the
target Printer object. A list of Job attributes or
attribute groups that the client is interested in seeing
may be included in the request. If the request does not
supply any Printer attributes, the Printer shall assume
that the client is implicitly requesting the default
groups: "printer-identification" and "printer-status". If
the request does not specify any job attributes, the
Printer shall assume the default groups: "job-
identification", "job-status", "job-owner" and "job-
size". The Printer object will be returned first,
followed by the requested jobs in chronological order.
This order is explicitly defined to be: oldest to newest
with regard to completion time, either actual or
expected.
This operation is like Get Attributes, except that Get
Jobs can return attributes from more than one object.
4.2.4.1 Get-Jobs Request
The client submits the request to a Printer URL.
The following abstract data types are part of the Get
Jobs Request:
deBry, Hastings, Herriot, Isaacson, Powell [Page 28]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Job Owner This is the user-name. If the value is
non-null, then the requester wants only
those jobs whose job-originating-owner
is the same as the specified user-name.
If the value is null, then the requester
wants all jobs.
Job States A possibly empty set of job state
values. If the set is not empty,
then the requester wants only those jobs
whose job-state is the same as one of
the specified job state values, If the
set is empty , then the requester wants
all jobs that are pending or printing.
Requested A set of attribute names (without
Printer values) in whose values the requester is
Attributes interested from the specified Printer
Requested Job A set of attribute names (without
Attributes values) in whose values the requester is
interested from each of the jobs on the
specified Printer.
There shall be a way to specify certain groups of
attributes, and it shall be possible to get more than one
group. The groups are the same as for Get Attributes.
4.2.4.2 Get-Jobs Response
The following information is part of the Get Jobs
Response:
Result The result includes zero or more objects
Attributes each with zero or more attributes.
Status status information including error
status
Message optional status message
A Printer may choose, for security reasons, not to return
all attributes that a client requests. It may even return
none of the requested attributes. In such cases, the
status returned is the same as if the Printer had
returned all requested attributes. The client cannot tell
deBry, Hastings, Herriot, Isaacson, Powell [Page 29]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
by such a response whether the requested attribute was
present or absent on the Printer.
5. Object Attributes
This section describes the attributes with their
corresponding syntaxes and values that are part of the
IPP model. The sections below show the objects and their
associated attributes which are included within the scope
of this protocol. Many of these attributes are derived
from other relevant specifications:
ISO/IEC 10175 DPA (Final, June 1996)
RFC 1759 Printer MIB (Proposed Standard, May 1995)
Internet-Draft: Printer MIB (Draft Standard in
progress, December 1996)
Internet-Draft: Job Monitoring MIB (I-D in progress,
March 1997)
Each attribute is uniquely identified in this document
using a "keyword" in the section header describing that
attribute. A keyword is a sequence of characters (length
of 1 to 255) which consists of just letters, digits,
hyphen ("-"), and underscore ("_"). With these
restrictions, there will be a straight forward encoding
of these keywords onto real values in the protocol
specification. Not only are attributes uniquely
identified with keywords, some attributes take on a
syntax which is a set of keywords. This set of keywords
represents the domain of the attribute.
5.1 Attribute Syntaxes
The following table shows the basic syntax types that a
client and server shall be able to handle.
Table 1
Basic Type Description Comments
text a sequence of For free form human
characters: readable text
length: 0 to intended for human
4096 consumption.
deBry, Hastings, Herriot, Isaacson, Powell [Page 30]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Basic Type Description Comments
characters: any
name a sequence of
characters: some object via a
length: 1 to user-friendly
255 characters: string, such as a
For referencing
any Printer name, a
document name, a
user name, or a
host name. May
include the SPACE
character.
NOTE - The protocol
may need to provide
means to quote the
SPACE character if
the protocol uses
SPACE for other
purposes.
fileName a sequence of For referencing
characters: some file. The
length: 1 to limit is the same
1024 as POSIX and NT.
characters: any
keyword a sequence of For semantic
characters: identifiers of
length: 1 to entities in the
255 characters: abstract protocol
letters, (specified in this
digits, hyphen document). These
("-"), entities can be
underscore attribute names or
("_") values of
attributes, When a
keyword is used to
represent an
attribute (its
name), it must be
unique within the
full scope of IPP
objects and
attributes. When a
keyword is used to
deBry, Hastings, Herriot, Isaacson, Powell [Page 31]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Basic Type Description Comments
represent a value
of an attribute, it
must be unique just
within the scope of
that attribute.
That is, a keyword
can not be used for
two different
values of the same
attribute to mean
two different
semantic ideas.
However, the same
keyword can be used
across two or more
attributes,
representing
different semantic
ideas for each
attribute.
url a sequence of Universal Resource
characters: as Locator
defined in
rfc1738 and ISSUE: do we keep
rfc1808 URLs abstract here
too and not define
them in terms of
rfcs?
octetString a sequence of Used for opaque
octets data, such as the
document-content.
boolean two values of like an keywordSet,
true and false but there are only
two values. NOTE:
An application
might use a
checkbox for such a
value.
integer an integer each attribute
value that is specifies the range
in the range constraint
from -2**31 to
deBry, Hastings, Herriot, Isaacson, Powell [Page 32]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Basic Type Description Comments
2**31 - 1 explicitly.
dateTime a value that
holds the date time
and time to the
absolute date and
nearest second.
integerSeconds an integer with a relative time
implicit units
of seconds
integerPoints an integer with for measurment
implicit units
of computer
points, i.e.,
1/72 of an
inch.
integerUnits an integer with an integer value
explicit units expressed in units
ISSUE: we have two
types with implicit
units and one with
explicit units
where the units are
specific for one
attribute printer-
speed.
setOf X 0 or more for sets of values
values of type
X.
1setOf X 1 or more for sets of values
values of type
X.
setWithDefaultOf X 0 or more for sets of values
values of type where one is a
X and a default default value
value of type X
1setWithDefaultOf 1 or more for sets of values
deBry, Hastings, Herriot, Isaacson, Powell [Page 33]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Basic Type Description Comments
X values of type where one is a
X and a default default value
value of type X
withDefault X an explicit For values which
default value are not restricted
of type X. The but have a default.
set of values
is implicitly
unrestricted.
RangeWithDefaultOf a range of for a range of
X value of type X values, such as
with a default integers, where one
value of type X value is the
default.
OR the below syntax
type instead
integerRangeWithDef an integer for a range of
ault range with a integers where one
default integer value is the
value default.
5.1.1 Attribute Extensibility
This document uses prefixes to the keyword basic syntax
type in order to communicate extra information to the
reader through its name. This extra information need not
be represented in an implementation because it is
unimportant to a client or printer. The table below
describes the prefixes and their meaning
Basic Type Prefix Comments
keyword type1 someone must revise the IPP
standard to add a new name.
No private names are
allowed.
deBry, Hastings, Herriot, Isaacson, Powell [Page 34]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Basic Type Prefix Comments
keyword type2 implementers can, at any
time, add new values by
proposing them to the PWG
for registration (or an
IANA-appointed registry
advisor after the PWG is no
longer certified) where they
are reviewed for approval..
IANA keeps the registry.
Implementers can support
private (unregistered) with
a suitable distinguishing
prefix, such as -xxx- where
xxx is the company name
registered with IANA for use
in domain names.
keyword type3 implementers can add new
values by submitting a
registration request
directly to IANA, no PWG or
IANA-appointed registry
advisor review is required.
Implementers can support
private (un-registered)
names with a suitable
distinguishing prefix, such
as -xxx- where xxx is the
company name registered with
IANA for use in domain
names.
keyword type4 an installation defined name
that can be added to a local
system by an administrator.
Care must be taken by the
administrator to see that
keywords do not conflict
with other keywords defined
by the standard or as
defined by the implementing
product. There is no
registration or approval
procedure for type 4
keywords
deBry, Hastings, Herriot, Isaacson, Powell [Page 35]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.1.2 Relationship of Job and Printer Attributes
If a client can supply a Job attribute in a Print
Request, there is a corresponding Printer attribute with
the same name. The Printer attribute as a similar syntax
type, however, the Printer attribute must additionally
specify a set of supported values and an optional default
value. The default value is used when creating a new Job
object where the client has not supplied a value in the
Print Request. These attributes, which can be in both
Job and Printer objects, are called Job Template
attributes and are fully defined in section 5.2 "Job
Template Attributes". The table below shows the
relationships between the syntax types of Job attributes
and their corresponding Printer attributes. The syntax
type of the Printer object is "constructed" using Job
attribute type. For example, the table shows that if the
basic syntax type of a Job attribute is "text" then the
corresponding Printer attribute will be of type
"withDefault text". Or, if the syntax type of the Job
attribute is "integer", then the corresponding Printer
attribute will be of type "rangeWithDefault of integer".
The essence of what is shown in the table below is
whether a context (Job attribute or Printer attribute)
allows a single value or multiple values.
Name of Job Printer Attribute
syntax type Attribute Syntax
Syntax
text text withDefault text
name name withDefault name
keyword keyword setWithDefaultOf
keyword
or
or
setOf
keyword 1setWithDefaultOf
keyword
or
deBry, Hastings, Herriot, Isaacson, Powell [Page 36]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Name of Job Printer Attribute
syntax type Attribute Syntax
Syntax
1setOfkeywo
rd
boolean boolean setWithDefaultOf
boolean
url url withDefault url
integer integer rangeWithDefaultOf
integer
integerUnits integerUnit rangeWithDefaultOf
s integer, setOf Units
dateTime dateTime not needed because
there are no job
production attributes
that a client can
supply.
integerSecon integerSeco rangeWithDefaultOf
ds nds integerSeconds
NOTE: if have
integerUnits and no
integerSeconds, we can
replace
rangeWithDefaultOf by
integerRangeWithDefaul
t.
setOf X setOf X setWithDefaultOf X
The Printer and the client shall be knowledgeable about
each of the above syntax forms and know how the handle
the values in a Job attribute and a Printer attribute.
deBry, Hastings, Herriot, Isaacson, Powell [Page 37]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.1.3 Attribute Value Tags
In order to handle some nuances associated with Job and
Printer attribute values, attribute values can have tags
associated with them. The following sections describe
these tags. All tags are optional. Fully conforming
implementations need not support them.
5.1.3.1 Tagged Printer Attributes
Job Template attribute values in a Printer can have extra
tags associated with them:
- Availability: Some supported attributes shall have an
availability value associated with each value. A client
may choose to display values only with certain values of
availability. Standard values are: "ready" and "not-
ready". If an attribute value does not have this tag,
it is by default "ready". "not-ready" means that the
Printer can accept the job, but the Printer cannot
complete the job without some external intervention to
make the value ready.
ISSUE: Should the following availability tags be added
which help to more clearly specify some subtle meanings?
These include "virtually-ready" (ready enough for the
Printer to schedule the job since it the value is
intended to always be ready, media in manual-feed trays
would have this value), "on-order" (not-ready and cannot
be made ready soon, but something is happening), or
"special-order" (not-ready and cannot be made ready soon,
nothing is happening).
- Embedded-only: Some supported production attributes
have an "embedded-only" tag associated with an attribute
to indicate that the Printer supported this attribute
when it is embedded in the document data, but it does not
support it as an explicit attribute. The attributes that
this tag is attached to varies according to the format
specified in the Get Attributes operation.
- Default Value: Supported attributes can have a default
tag associated with the value that is default. If
multiple values are tagged with a default value, a client
shall use the first value that is tagged with default. If
no values are tagged, then it assumes the first value in
the supported list is the default value.
deBry, Hastings, Herriot, Isaacson, Powell [Page 38]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
- Scheduling: If a printer uses this value for
scheduling, then it associates this tag to indicate that
it would like the attribute set when the job is
submitted. The attribute can come back with or without
the embedded tag. If an attribute does not have this tag,
then the Printer will not use this attribute for
scheduling.
NOTE: the mostly likely attribute that a Printer would
attach this adornment to is the media attribute.
5.1.3.2 Tagged Job Attributes
Job attribute values set by a client and defined in
section 5.2 "Job Template Attributes" can have the
following extra tags associated with them:
- Embedded: If an attribute has this tag, then the
attribute value(s) are embedded in the document. The
printer can use this information for scheduling, but it
shall not use it to modify the document. This attribute
cannot be associated with individual attribute values.
- Default: If a attribute value has this tag, then the
Printer shall ignore the Job attribute, if any, and shall
use the Printer's default value for the attribute.
Issue: Does the following imply too much about using
"fan-in" for multiple default sets for a given output
device? Note: it is the duty of an administrator to
create a reasonable number of Printers feeding into each
output device to handle user's expected defaults. For
example, a Windows client will send a PostScript document
with no attributes. For production attributes, a
Printer's defaults must be "as-is". But other clients
may want to force PostScript files to print two-sided.
For those clients, there must be another printer whose
sides default is "2-sided-long-edge".
5.2 Job Template (job-template) Attributes
The following attributes can exist in both Jobs and
Printers. When such an attribute is in a Job object, it
identifies some desired behavior on this Job by the
Printer. When it is in a Printer object, it constrains
the values that the corresponding Job attribute can have
deBry, Hastings, Herriot, Isaacson, Powell [Page 39]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
and it specifies a default value as well. The set of
values in the Printer object are called the "supported
values".
These attributes form the attribute group called "job-
template".
The attributes are described below. The part in
parenthesis after each attribute name is the name of the
syntax as listed in Table 1 in section 5.1.
A client can specify any of the attributes in this group
in a Print Request. If a client GUI wishes to present a
user with a list of values to choose from, then the
client program should perform the Get Attributes
operation to a Printer URL using the group job-template
in order to get the complete list of attributes that a
client can specify. Each attribute returned with the job-
template group shall contain a list of supported values
for the attribute and the Printer's default value.
5.2.1 Job Sheet Attributes (Set by Client/End User)
The client shall specify these attributes to control the
printing of job sheets.
There is no group name for these attributes since there
is only one attribute in the group.
The client may also specify job sheet attributes in: Get-
Attributes and Get-Jobs.
5.2.1.1 job-sheets (type4 keyword)
5.2.1.1.1 As a Job Attribute
This job attribute determines what type of job-sheets
(banner pages) the Printer shall print with the job.
The standard values are: "none", and "default-sheet".
The value "none" means that end user desires no job sheet
be printed. The value "default-sheet" means that the end
user desires a site specific default sheet defined by and
administrator be printed.
deBry, Hastings, Herriot, Isaacson, Powell [Page 40]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.2.1.1.2 As a Printer Attribute
This printer attribute identifies the default job-sheet.
It also identifies the job-sheet values supported by this
printer, and the state of readiness for each job-sheet.
To allow no job sheets, the system administrator shall
include the value none as a value for the supported
values. If the administrator's policy is not to support
none, the Printer shall use the default-sheet value if
the client supplies the none value but also indicates
(through the best-effort attribute) that Printer could
substitute values as needed in order to process the job.
5.2.2 Job Notification (job-notification) Attributes (Set by
a Client/End User)
The client shall specify these attributes to indicate
events that the client is interested in, along with the
notification address and method for performing the
notification.
These attributes form the attribute group called "job-
notification".
The client may also specify notification attributes in:
Get-Attributes and Get-Jobs.
5.2.2.1 notification-events (setOf type2 keyword)
5.2.2.1.1 As a Job Attribute
This job attribute specifies the events about which the
end user want to be notified.
Standard values within the set are: job-completion, job-
canceled, job-problems and printer-problems.
If this attribute contains the empty set, the Printer
shall not notify. This value is useful if an
administrator has set up a notification Printer default
but the end user does not want notification.
deBry, Hastings, Herriot, Isaacson, Powell [Page 41]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
If this attribute contains the value: job-completion, the
Printer shall notify the client when the job containing
this attribute completes with or without errors.
If this attribute contains the value: job-canceled, the
Printer shall notify the client when the job containing
this attribute is canceled by the end-user or by the
operator, or aborts before completion.
If this attribute contains the value: job-problems, the
Printer shall notify the client when this job has a
problem while this job is printing. Problems include:
paper jam and out-of-paper.
If this attribute contains the value: printer-problems,
the Printer shall notify the client when any job,
including this job, is affected by a Printer problem (the
printer has moved to the stopped state and there is a
reason in the printer-state-reasons attribute) while this
job is waiting to print or printing. Problems include:
paper jam and out-of-paper.
5.2.2.1.2 As a Printer Attribute
This printer attribute indicates the default value. It
also indicates the values of the job and printer
notification-events attribute supported by this Printer
and the states of readiness for each value.
This document does not specify how or whether an
administrator can configure the information that a
Printer sends with an event when a Printer notifies a
user about the occurrence of an event.
If this attribute is unspecified, then the Printer does
not support notification. If this attribute is not
contained in an instance of a Printer and the client
supplies the attribute in the Print Request, the
attribute in the Print Request is ignored.
5.2.2.2 notification-addresses (setOf url)
This address specifies both the address and mechanism for
delivery of notification events to the client.
deBry, Hastings, Herriot, Isaacson, Powell [Page 42]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
The Printer shall use this attribute as the address for
sending messages to a job submitter when an event occurs
that the end user has registered an interest in.
If the URL has a "mailto:" scheme, then email is used and
the rest of the URL is used as the email address. If the
URL has a "http:" scheme, then an HTTP method is used to
add HTML formatted events to the end of the specified
HTML file.
5.2.2.2.1 As a Job Attribute
This job attribute specifies the method and addresses to
which the Printer should send messages when events
specified by the notification-events attribute occur.
5.2.2.2.2 As a Printer Attribute
This Printer attribute's syntax type is "setOf urlScheme"
so that an interested client shall know which URL schemes
can be include in the notification-addresses attribute in
the Print Request.
5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
Client/End User)
The client shall specify these attributes to provide the
Printer with information for the scheduling a print-job.
These attributes form the attribute group called "job-
scheduling".
The client may also specify these attributes in: Get-
Attributes and Get-Jobs.
5.2.3.1 job-priority (integer(1:100))
5.2.3.1.1 As a Job Attribute
This job attribute specifies a priority for scheduling
the print-job. Printers that employ a priority-based
scheduling algorithm use this attribute.
deBry, Hastings, Herriot, Isaacson, Powell [Page 43]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
A higher value specifies a higher priority. The value 1
is defined to indicate the lowest possible priority (a
job which a priority-based scheduling algorithm shall
pass over in favor of higher priority jobs). The value
100 is defined to indicate the highest possible priority.
Priority is expected to be evenly or "normally"
distributed across this range. Among those jobs that are
ready to print, a Printer shall print all jobs with a
priority value of n before printing those with a priority
value of n-1 for all n. The mapping of vendor-defined
priority over this range is implementation-specific.
5.2.3.1.2 As a Printer Attribute
The printer attribute specifies the default priority. It
also specifies the supported range available to end-
users. When setting up this attribute, an administrator
might identify only a subset of the full range which is
the range that the end user is authorized to use. There
might be higher or lower priorities (outside the range
defined for end users) available to operators or other
privileged users.
If this attribute is not contained in an instance of a
Printer and the client supplies the attribute in the
Print Request, the attribute in the Print Request is
ignored.
5.2.3.2 job-hold-until (type4 keyword)
5.2.3.2.1 As a Job Attribute
This job attribute specifies the named time period during
which the Job print job shall become a candidate for
printing.
Standard values for named time periods are: "no-hold",
"evening", "night", "weekend", "second-shift", "third-
shift". An administrator shall associate allowable print
times with a named time period. An administrator is
encouraged to pick names that suggest the type of time
period.
If the value of this attribute specifies a time period
that is in the future, the Printer shall add the job-
deBry, Hastings, Herriot, Isaacson, Powell [Page 44]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
hold-until-specified value to the job's job-state-reasons
attribute and shall not schedule the print-job for
printing until the specified time-period arrives. When
the specified time period arrives, the Printer shall
remove the job-hold-until-specified value from the job's
job-state-reason attribute and, if no other reasons
remain, shall consider the job as a candidate for
processing.
If this job attribute value is the named value "no-hold",
or the time period has already started , the job shall be
a candidate for processing immediately.
5.2.3.2.2 As a Printer Attribute
This printer attribute indicates the default value. It
also indicates the values of the attribute supported by
this printer.
If this attribute is not contained in an instance of a
Printer and the client supplies the attribute in the
Print Request, the attribute in the Print Request is
ignored.
5.2.4 Job Production (job-production) Attributes (Set by
Client/End User)
The client shall specify these attributes to affect the
rendering, production and finishing of the documents in
the job. Similar types of instructions may also be
contained in the document to be printed.
These attributes form the attribute group called "job-
production".
If there is a conflict between the value of one of these
attributes, and a corresponding instruction in the
document (either implicit or explicit), the value of the
attribute shall take precedence over the document
instruction.
A job production attribute provides a client with a way
to request some feature at print time that may not have
been embedded within the document data when the document
was created. A job production attribute also provides a
client with a way to override a feature at print time
deBry, Hastings, Herriot, Isaacson, Powell [Page 45]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
that was embedded within the document data when the
document was created.
Note: until companies that supply interpreters for PDL's,
such as PostScript and PCL allow a way to specify
overrides for internal job production instructions, a
Printer may not be able to implement these attributes for
some PDL's.
A job production attribute tells a Printer what features
the job needs. A program that translates document data to
a Printer's PDL, and/or merges production attributes into
the document data should add job production attributes
to a job, using the "embedded" tag. Such a program may
execute at a number of different points in time:
1. The program produces a final form document and
stores these resource attributes in a file before the
end-user submits the print job.
2. The program produces a final form document data
stream when the end-user specifies "Print" to the
application program (e.g., Windows GDI driver).
3. The program running in the context of the Printer or
server translates a revisable or final form document
into a PDL that the output device understands.
For example, a job production attribute medium with the
value of "letter" requests that a job be printed on
letter paper, and gives information about what resources
the job needs. For example, a job production attribute
media with the values of "letter" and "ledger" and the
tag "embedded" tell a Printer that the job needs letter
and ledger paper, but gives no information about which
pages use each medium_ that information is embedded in
the document.
A Printer may use these attributes to validate and
schedule the print-job without interpreting the contents
of the document. This provides the opportunity for a
Printer to support a broad set of document formats yet
still support fast efficient scheduling and validation of
each job.
If any of these attributes is unspecified, the Printer
shall assume that the all resources required by the
document of the type specified by the missing attributes
deBry, Hastings, Herriot, Isaacson, Powell [Page 46]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
are ready, i.e., are available to the Printer and/or
output device without human intervention.
The client may specify these attributes in: Get-
Attributes and Get-Jobs.
The client may also specify job production-instruction
attributes in: Get-Attributes and Get-Jobs. For all the
attributes in this section, the default behavior if the
Printer attribute is unspecified is that the document is
printed with the output-device defaults, possibly
overridden by whatever is in the document data, if
anything.
Each attribute which is of type keyword in this section
also has a special value: "ignore" which is useful for a
file type, such as PostScript, which the Printer may not
allow changes to.
5.2.4.1 multiple-documents-are (type1 keyword)
5.2.4.1.1 As a Job Attribute
This job attribute is relevant only if a job consists of
two or more documents. It controls finishing operations,
job-sheet placement, and the order of documents when the
copies attribute exceeds 1.
This attribute can have one of three values: single-
document, separate-documents-uncollated-copies, separate-
documents-collated-copies.
If the files for the job are a and b and this attribute's
value is single-document , then files a and b are treated
as a single document for finishing operations. Also,
there will be no slip sheets between files a and b. If
more than one copy is made, the ordering must be a, b, a,
b, ....
If the files for the job are a and b and this attribute's
value is separate-documents-uncollated-copies, or
separate-documents-collated-copies or unspecified, then
each file is treated as a single document for finishing
operations. Also, a client may specify that a slip sheet
deBry, Hastings, Herriot, Isaacson, Powell [Page 47]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
be between files a and b. If more than one copy is made,
and the attribute's value is separate-documents-
uncollated-copies or unspecified, the ordering is a, a,
b, b, .... If more than one copy is made, and the
attribute's value is separate-documents-collated-copies,
the ordering is a, b, a, b, ....
5.2.4.1.2 As a Printer Attribute
This printer attribute specifies the default value and
the supported values.
5.2.4.2 best-effort (type2 keyword)
This attribute determines what to do if there is a
conflict between what a client requests and what a
Printer is capable of . Values for this attribute are:
"substitute-as-needed" and "do-not-substitute".
5.2.4.2.1 As a Job Attribute
This job attribute specifies the Printer should do if the
Printer can not support all other attribute values in
other Job attributes. If the value is "substitute-as-
needed" then the end user desires the job to be printed
using substitutions by the Printer where needed in order
to resolve conflicts. If the value is do-not-substitute
then the end user desires that the job should not be
processes unless every attribute value can be completely
satisfied. If the client does not supply a value for
this attribute in a print request, the Printer shall
assume that the value is "do-not-substitute."
Note: that best-effort is unlikely to be used much. Many
clients will submit a job with no attributes, and the
Printer will use default values. Other clients will
submit a job via a GUI which limits the attribute values
to those which are supported. Best-effort is useful in
the GUI context only if a user expects the job to be
moved to another printer and prefers a sub-optimal result
to nothing at all. Best-effort is most useful in the case
where an end-user uses a command line interface to
request attributes that may not be supported.
deBry, Hastings, Herriot, Isaacson, Powell [Page 48]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.2.4.2.2 As a Printer Attribute
This printer attribute specifies supported and default
behavior of the Printer if there is a conflict between
Job attributes and Printer supported attributes, If the
value is "substitute" then Printer is capable of doing
some sort of best effort when there is a conflict, If
the value is do-not-substitute then the Printer will
reject all print requests that can not be completely
satisfied. If the Printer object does not instantiate
this attribute, the client shall assume that the value is
do-not-subtitute.
5.2.5 Document Production (document-production) Attributes
(Set by Client/End User)
These attributes are similar to Job Production Attributes
except that they may also be associated with a document
and override the same attribute associated with the job.
These attributes form the attribute group called
"document-production".
5.2.5.1 medium (setOf type2 keyword)
5.2.5.1.1 As a Job Attribute
This job attribute identifies the medium that the Printer
shall use for all pages of the document regardless of
what media are specified within the document.
The values for medium include medium-names, medium-sizes,
input-trays and electronic forms so that one attribute
specifies the media.
If a printer allows a client to specify a medium-name as
the value of this attribute, such a medium-name
implicitly selects an input-tray that contains the
specified medium.
If a printer allows a client to specify a medium-size as
the value of this attribute, such a medium-size
implicitly selects a medium-name which in turn implicitly
deBry, Hastings, Herriot, Isaacson, Powell [Page 49]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
selects an input-tray that contains the medium with the
specified size. If a printer contains two or more medium-
names with the same medium-size, then a printer shall not
include that medium-size in the list of supported values
for this attribute and the printer shall reject jobs that
request such a medium-size.
If a printer allows a client to specify an input-tray as
the value of this attribute, such an input-tray
implicitly selects the medium that is in that input-tray
at the time the job prints. This case includes manual-
freed input-trays.
If a printer allows a client to specify an electronic
form as the value of this attribute, such an electronic
form implicitly selects a medium-name which in turn
implicitly selects an input-tray that contains the medium
specified by the electronic form. The electronic form
also implicitly selects an image that the Printer shall
merge with the data from the document as its prints each
page. When this attribute appears as a job attribute with
the embedded tag, it may contain more than one value and
it shall indicate all media required by the document.
5.2.5.1.2 As a Printer Attribute
This printer attribute identifies the default value. It
also identifies the media, media-sizes, input trays, and
electronic forms supported by this printer, and indicates
the state of availability for each medium resource.
Standard values are defined(taken from ISO DPA and the
Printer MIB):
default The default medium for the
output device
iso-a4-white Specifies the ISO A4 white
medium
iso-a4-colored Specifies the ISO A4 coloured
medium
iso-a4- Specifies the ISO A4
transparent transparent medium
iso-a3-white Specifies the ISO A3 white
medium
iso-a3-colored Specifies the ISO A3 coloured
medium
deBry, Hastings, Herriot, Isaacson, Powell [Page 50]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
iso-a5-white Specifies the ISO A5 white
medium
iso-a5-colored Specifies the ISO A5 coloured
medium
iso-b4-white Specifies the ISO B4 white
medium
iso-b4-colored Specifies the ISO B4 coloured
medium
iso-b5-white Specifies the ISO B5 white
medium
iso-b5-colored Specifies the ISO B5 coloured
medium
jis-b4-white Specifies the JIS B4 white
medium
jis-b4-colored Specifies the JIS B4 coloured
medium
jis-b5-white Specifies the JIS B5 white
medium
jis-b5-colored Specifies the JIS B5 coloured
medium
The following standard values are defined for North
American media:
na-letter-white Specifies the North American
letter white medium
na-letter- Specifies the North American
colored letter coloured medium
na-letter- Specifies the North American
transparent letter transparent medium
na-legal-white Specifies the North American
legal white medium
na-legal-colored Specifies the North American
legal coloured medium
The following standard values are defined for envelopes:
iso-b4-envelope Specifies the ISO B4 envelope
medium
iso-b5-envelope Specifies the ISO B5 envelope
medium
iso-c3-envelope Specifies the ISO C3 envelope
medium
iso-c4-envelope Specifies the ISO C4 envelope
medium
deBry, Hastings, Herriot, Isaacson, Powell [Page 51]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
iso-c5-envelope Specifies the ISO C5 envelope
medium
iso-c6-envelope Specifies the ISO C6 envelope
medium
iso-designated- Specifies the ISO Designated
long-envelope Long envelope medium
na-10x13- Specifies the North American
envelope 10x13 envelope medium
na-9x12-envelope Specifies the North American
9x12 envelope medium
monarch-envelope Specifies the Monarch envelope
na-number-10- Specifies the North American
envelope number 10 business envelope
medium
na-7x9-envelope Specifies the North American
7x9 inch envelope
na-9x11-envelope Specifies the North American
9x11 inch envelope
na-10x14- Specifies the North American
envelope 10x14 inch envelope
na-number-9- Specifies the North American
envelope number 9 business envelope
na-6x9-envelope Specifies the North American
6x9 inch envelope
na-10x15- Specifies the North American
envelope 10x15 inch envelope
The following standard values are defined for the less
commonly used media (white-only):
executive-white Specifies the white executive
medium
folio-white Specifies the folio white
medium
invoice-white Specifies the white invoice
medium
ledger-white Specifies the white ledger
medium
quarto-white Specified the white quarto
medium
iso-a0-white Specifies the ISO A0 white
medium
iso-a1-white Specifies the ISO A1 white
medium
iso-a2-white Specifies the ISO A2 white
medium
deBry, Hastings, Herriot, Isaacson, Powell [Page 52]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
iso-a6-white Specifies the ISO A6 white
medium
iso-a7-white Specifies the ISO A7 white
medium
iso-a8-white Specifies the ISO A8 white
medium
iso-a9-white Specifies the ISO A9 white
medium
iso-10-white Specifies the ISO A10 white
medium
iso-b0-white Specifies the ISO B0 white
medium
iso-b1-white Specifies the ISO B1 white
medium
iso-b2-white Specifies the ISO B2 white
medium
iso-b3-white Specifies the ISO B3 white
medium
iso-b6-white Specifies the ISO B6 white
medium
iso-b7-white Specifies the ISO B7 white
medium
iso-b8-white Specifies the ISO B8 white
medium
iso-b9-white Specifies the ISO B9 white
medium
iso-b10-white Specifies the ISO B10 white
medium
jis-b0-white Specifies the JIS B0 white
medium
jis-b1-white Specifies the JIS B1 white
medium
jis-b2-white Specifies the JIS B2 white
medium
jis-b3-white Specifies the JIS B3 white
medium
jis-b6-white Specifies the JIS B6 white
medium
jis-b7-white Specifies the JIS B7 white
medium
jis-b8-white Specifies the JIS B8 white
medium
jis-b9-white Specifies the JIS B9 white
medium
jis-b10-white Specifies the JIS B10 white
medium
deBry, Hastings, Herriot, Isaacson, Powell [Page 53]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
The following standard values are defined for engineering
media:
a Specifies the engineering A
size medium
b Specifies the engineering B
size medium
c Specifies the engineering C
size medium
d Specifies the engineering D
size medium
e Specifies the engineering E
size medium
The following standard values are defined for input-trays
(from ISO DPA and the Printer MIB):
top The top input tray in the printer.
middle The middle input tray in the printer.
bottom The bottom input tray in the printer.
envelope The envelope input tray in the
printer.
manual The manual feed input tray in the
printer.
large- The large capacity input tray in the
capacity printer.
main The main input tray
side The side input tray
The following standard values are defined for media sizes
(from ISO DPA):
iso-a0 Specifies the ISO A0 size: 841 mm by
1189 mm as defined in ISO 216
iso-a1 Specifies the ISO A1 size: 594 mm by 841
mm as defined in ISO 216
iso-a2 Specifies the ISO A2 size: 420 mm by 594
mm as defined in ISO 216
iso-a3 Specifies the ISO A3 size: 297 mm by 420
mm as defined in ISO 216
iso-a4 Specifies the ISO A4 size: 210 mm by 297
mm as defined in ISO 216
iso-a5 Specifies the ISO A5 size: 148 mm by 210
mm as defined in ISO 216
iso-a6 Specifies the ISO A6 size: 105 mm by 148
mm as defined in ISO 216
deBry, Hastings, Herriot, Isaacson, Powell [Page 54]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
iso-a7 Specifies the ISO A7 size: 74 mm by 105
mm as defined in ISO 216
iso-a8 Specifies the ISO A8 size: 52 mm by 74
mm as defined in ISO 216
iso-a9 Specifies the ISO A9 size: 37 mm by 52
mm as defined in ISO 216
iso-a10 Specifies the ISO A10 size: 26 mm by 37
mm as defined in ISO 216
iso-b0 Specifies the ISO B0 size: 1000 mm by
1414 mm as defined in ISO 216
iso-b1 Specifies the ISO B1 size: 707 mm by
1000 mm as defined in ISO 216
iso-b2 Specifies the ISO B2 size: 500 mm by 707
mm as defined in ISO 216
iso-b3 Specifies the ISO B3 size: 353 mm by 500
mm as defined in ISO 216
iso-b4 Specifies the ISO B4 size: 250 mm by 353
mm as defined in ISO 216
iso-b5 Specifies the ISO B5 size: 176 mm by 250
mm as defined in ISO 216
iso-b6 Specifies the ISO B6 size: 125 mm by 176
mm as defined in ISO 216
iso-b7 Specifies the ISO B7 size: 88 mm by 125
mm as defined in ISO 216
iso-b8 Specifies the ISO B8 size: 62 mm by 88
mm as defined in ISO 216
iso-b9 Specifies the ISO B9 size: 44 mm by 62
mm as defined in ISO 216
iso-b10 Specifies the ISO B10 size: 31 mm by 44
mm as defined in ISO 216
na-letter Specifies the North American letter
size: 8.5 inches by 11 inches
na-legal Specifies the North American legal
size: 8.5 inches by 14 inches
executive Specifies the executive size (7.25 X
10.5 in)
folio Specifies the folio size (8.5 X 13
in)
invoice Specifies the invoice size (5.5 X
8.5 in)
ledger Specifies the ledger size (11 X 17
in)
quarto Specifies the quarto size (8.5 X
10.83 in)
deBry, Hastings, Herriot, Isaacson, Powell [Page 55]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
iso-c3 Specifies the ISO C3 size: 324 mm by
458 mm as defined in ISO 269
iso-c4 Specifies the ISO C4 size: 229 mm by
324 mm as defined in ISO 269
iso-c5 Specifies the ISO C5 size: 162 mm by
229 mm as defined in ISO 269
iso-c6 Specifies the ISO C6 size: 114 mm by
162 mm as defined in ISO 269
iso- Specifies the ISO Designated Long
designated size: 110 mm by 220 mm as defined in
-long ISO 269
na-10x13- Specifies the North American
envelope 10x13 size: 10 inches by 13
inches
na-9x12- Specifies the North American
envelope 9x12 size: 9 inches by 12 inches
na-number-10- Specifies the North American
envelope number 10 business envelope
size: 4.125 inches by 9.5 inches
na-7x9- Specifies the North American 7x9
envelope inch envelope size
na-9x11- Specifies the North American
envelope 9x11 inch envelope size
na-10x14- Specifies the North American
envelope 10x14 inch envelope size
na-number-9- Specifies the North American
envelope number 9 business envelope size
na-6x9- Specifies the North American 6x9
envelope envelope size
na-10x15- Specifies the North American
envelope 10x15 envelope size
monarch- Specifies the Monarch envelope
envelope size (3.87 x 7.5 in)
a Specifies the engineering A
size: 8.5 inches by 11
inches
b Specifies the engineering B
size: 11 inches by 17
inches
c Specifies the engineering C
size: 17 inches by 22
inches
d Specifies the engineering D
size: 22 inches by 34
inches
deBry, Hastings, Herriot, Isaacson, Powell [Page 56]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
e Specifies the engineering E
size: 34 inches by 44
inches
jis-b0 Specifies the JIS B0 size: 1030mm x
1456mm
jis-b1 Specifies the JIS B1 size: 728mm x
1030mm
jis-b2 Specifies the JIS B2 size: 515mm x
728mm
jis-b3 Specifies the JIS B3 size: 364mm x
515mm
jis-b4 Specifies the JIS B4 size: 257mm x
364mm
jis-b5 Specifies the JIS B5 size: 182mm x
257mm
jis-b6 Specifies the JIS B6 size: 128mm x
182mm
jis-b7 Specifies the JIS B7 size: 91mm x 128mm
jis-b8 Specifies the JIS B8 size: 64mm x 91mm
jis-b9 Specifies the JIS B9 size: 45mm x 64mm
jis-b10 Specifies the JIS B10 size: 32mm x 45mm
5.2.5.2 number-up (type3Enum)
5.2.5.2.1 As a Job Attribute
This job attribute specifies the number of source page-
images to impose upon a single side of an instance of a
selected medium.
5.2.5.2.2 As a Printer Attribute
This printer attribute identifies the default value and
the number-up values supported by this printer..
The state of readiness for each number-up value is also
included, though all number-up conversions should always
be ready.
In general, only certain numeric values are valid for
this attribute and the value "none", depending upon the
Printer implementation to which the print-request is
directed. Standard values are: "none", "1", "2", "4".
deBry, Hastings, Herriot, Isaacson, Powell [Page 57]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
This attribute primarily controls the translation,
scaling and rotation of page images, but a site may
choose to add embellishments, such as borders to each
logical page. The value "none" shall not include any
embellishments and shall place one logical page on a
single side of an instance of the selected medium without
any translation, scaling, or rotation.
5.2.5.3 sides (type2 keyword)
5.2.5.3.1 As a Job Attribute
This job attribute specifies how source page-images are
to be imposed upon the sides of an instance of a selected
medium.
When this attribute appears as a job attribute with the
embedded tag, it may contain more than one value and it
shall indicate all sides operations required by the
document.
5.2.5.3.2 As a Printer Attribute
This printer attribute indicates the default. It also
indicates the values of the sides attribute supported by
this printer and the states of readiness of each value.
The standard values are: 1-sided, 2-sided-long-edge, 2-
sided-short-edge.
1-sided imposes each consecutive source page-image upon
the same side of consecutive media sheets.
2-sided-long-edge imposes each consecutive pair of source
page-image upon front and back sides of consecutive media
sheets, such that the orientation of each pair of source-
pages on the medium would be correct for the reader as if
for binding on the long edge. This imposition is
sometimes called "duplex".
2-sided-short-edge imposes each consecutive pair of
source page-image upon front and back sides of
consecutive media sheets, such that the orientation of
each pair of source-pages on the medium would be correct
deBry, Hastings, Herriot, Isaacson, Powell [Page 58]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
for the reader as if for binding on the short edge. This
imposition is sometimes called "tumble" or "head-to-toe".
2-sided-long-edge and 2-sided-short-edge work the same
for portrait or landscape. That is, "head-to-toe" is
"tumble" in portrait but "duplex" in landscape. "head-
to-head" also switches between "duplex" and "tumble" when
using portrait and landscape modes.
5.2.5.4 printer-resolution (type2 keyword)
5.2.5.4.1 As a Job Attribute
This job attribute specifies the resolution that the
Printer should use.
When this attribute appears as a job attribute with the
embedded tag, it shall indicate the printer resolution
required by the document.
5.2.5.4.2 As a Printer Attribute
This printer attribute indicates the default value. It
also indicates the values of the printer-resolution-
select attribute supported by this printer and their
states of readiness.
The state of readiness for each printer resolution is
also included, though normally all printer-resolutions
should always be ready.
The values are type2Enums which represent single integers
or pair of integers. The latter are to specify the
resolution when the x and y dimensions differ. When two
integers are specified, the first is in the x direction,
i.e., in the direction of the shortest dimension of the
medium, so that the value is independent of whether the
printer feeds long edge or short edge first.
The standard values are:
res-100
res-200
res-240
res-300
deBry, Hastings, Herriot, Isaacson, Powell [Page 59]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
res-600
res-800
res-1200
res-1800
res-100x200
res-300x600
res-600x300
res-400x800
res-800x400
res-600x1200
res-1200x600
res-1800x600
5.2.5.5 print-quality (type2 keyword)
5.2.5.5.1 As a Job Attribute
This job attribute specifies the print quality that the
Printer should use.
When this attribute appears as a job attribute with the
embedded tag, it shall indicate the print-quality
required by the document.
5.2.5.5.2 As a Printer Attribute
This printer attribute indicates the default value. It
also indicates the values of the printer-quality
attribute supported by this printer and the states of
readiness for each print-quality value.
The standard values are defined in the printer-quality
attribute.
The standard values are:
draft Lowest quality available on the
printer
normal Normal or intermediate quality on
the printer
high Highest quality available on the
printer
deBry, Hastings, Herriot, Isaacson, Powell [Page 60]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.2.5.6 copies (integer(1:2**31 - 1))
5.2.5.6.1 As a Job Attribute
This job attribute specifies the number of copies of the
job to be printed.
NOTE - The effect of this attribute on jobs and documents
is controlled by the multiple-files-are job attribute.
5.2.5.6.2 As a Printer Attribute
This printer attribute indicates the default value. It
also specifies the minimum and maximum number of copies
of a document that can be rendered by this printer in a
single print-job.
5.2.5.7 finishing (setOf type2 keyword)
5.2.5.7.1 As a Job Attribute
This job attribute identifies the finishing operation
that the Printer should apply to each copy of each
printed document in the job where the definition of a
copy is controlled by the multiple-documents-are Job
attributes.
When this attribute appears as a job attribute with the
embedded tag, it may contain more than one value and it
shall indicate all finishing operations required by the
job.
5.2.5.7.2 As a Printer Attribute
This printer attribute identifies the default value. It
also identifies the finishing operations supported by
this Printer and states of availability for each
finishing.
Standard values for this attribute are:
none Perform no finishing.
deBry, Hastings, Herriot, Isaacson, Powell [Page 61]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
staple This indicates that staples are to
be used to bind the document. The
exact number and placement of the
staples is site-defined; other
finishing object attributes may be
included to provide this
information.
staple-top- This indicates that one or more
left staples should be placed on the top
left corner of the document
staple- This indicates that one or more
bottom-left staples should be placed on the
bottom left corner of the document
staple-top- This indicates that one or more
right staples should be placed on the top
right corner of the document
staple-
bottom- staples should be placed on the
This indicates that one or more
right bottom right corner of the document
saddle- This indicates that one or more
stitch staples (wire stitches) are to be
used to bind the document along the
middle fold. The exact number and
placement of the stitches is site-
defined.
edge-stitch This indicates that one or more
staples (wire stitches) are to be
used to bind the document along one
edge. The exact number and
placement of the staples is site-
defined.
punch This indicates that holes are
required in the finished document.
The exact number and placement of
the holes is site-defined The
punch specification may be
satisfied (in a site- and
implementation-specific manner)
either by drilling/punching, or by
substituting predrilled media.
cover This value is specified when it is
desired to select a non-printed (or
pre-printed) cover for the
document. This does not supplant
the specification of a printed
cover (on cover stock medium) by
the document itself.
deBry, Hastings, Herriot, Isaacson, Powell [Page 62]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
bind This indicates that a binding is to
be applied to the document; the
type and placement of the binding
is site-defined.
5.2.5.8 compression (type2 keyword)
This attribute identifies compression algorithms used for
compression document data.
Standard values for this attribute are: zip, tar, ...
5.2.5.8.1 As a Job Attribute
This job attribute identifies the compression algorithm
that has been applied to the document data.
5.2.5.8.2 As a Printer Attribute
This printer attribute identifies the default value. It
also identifies the compression algorithms supported by
this Printer
5.2.6 Document Format Attributes (Set by Client/End User)
There is no group name for these attributes since there
is only one attribute in the group.
5.2.6.1 document-format (type2 keyword)
5.2.6.1.1 As a Job Attribute
This job attribute identifies the document format of this
document, and may be a per-document attribute.
5.2.6.1.2 As a Printer Attribute
This printer attribute indicates default value. It also
indicates the values of the attribute supported by this
deBry, Hastings, Herriot, Isaacson, Powell [Page 63]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
printer and the states of readiness for each value. One
possible supported and default value is "auto-sense".
The following standard values have been reviewed with the
Printer Working Group and are registered with IANA as
part of the IETF Printer MIB project. The standard value
assigned by the PWG starts with the four letters: "lang",
in order to follow SNMP ASN.1 rules that all enum symbols
shall start with a lower case letter. The keyword values
in IPP shall be the same as the PWG standard values
registered with IANA with the "lang" removed. The MIB
(integer) value is included here for reference only, the
MIB integer value shall not be used in IPP; the keyword
value shall be used instead:
keyword MIB Description
Value val
ue
other 1
PCL 3 PCL. Starting with PCL version 5,
HP-GL/2 is included as part of the
PCL language. PCL and HP-GL/2 are
registered trademarks of Hewlett-
Packard Company.
HPGL 4 Hewlett-Packard Graphics Language.
HP-GL is a registered trademark of
Hewlett-Packard Company.
PJL 5 Peripheral Job Language. Appears
in the data stream between data
intended for a page description
language. Hewlett-Packard Co.
PS 6 PostScript Language (tm)
Postscript - a trademark of Adobe
Systems Incorporated which may be
registered in certain
jurisdictions
IPDS 7 Intelligent Printer Data Stream
Bi-directional print data stream
for documents consisting of data
objects (text, image, graphics,
bar codes), resources (fonts,
overlays) and page, form and
finishing instructions.
Facilitates system level device
control, document tracking and
error recovery throughout the
print process. Pennant Systems,
IBM
deBry, Hastings, Herriot, Isaacson, Powell [Page 64]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
PPDS 8 IBM Personal Printer Data Stream.
Originally called IBM ASCII, the
name was changed to PPDS when the
Laser Printer was introduced in
1989. Lexmark International, Inc.
EscapeP 9 Epson Corp.
Epson 10
DDIF 11 Digital Document Interchange
Format Digital Equipment Corp.,
Maynard MA
Interpress 12 Xerox Corp.
ISO6429 13 ISO 6429. Control functions for
Coded Character Sets (has ASCII
control characters, plus
additional controls for character
imaging devices.) ISO Standard,
Geneva, Switzerland
LineData 14 line-data: Lines of data as
separate ASCII or EBCDIC records
and containing no control
functions (no CR, LF, HT, FF,
etc.). For use with traditional
line printers. May use CR and/or
LF to delimit lines, instead of
records. See ISO 10175 Document
Printing Application (DPA) ISO
standard, Geneva, Switzerland
MODCA 15 Mixed Object Document Content
Architecture Definitions that
allow the composition,
interchange, and presentation of
final form documents as a
collection of data objects (text,
image, graphics, bar codes),
resources (fonts, overlays) and
page, form and finishing
instructions. Pennant Systems,
IBM
REGIS 16 Remote Graphics Instruction Set,
Digital Equipment Corp., Maynard
MA
SCS 17 SNA Character String Bi-
directional print data stream for
SNA LU-1 mode of communications
IBM
SPDL 18 ISO 10180 Standard Page
Description Language ISO Standard
TEK4014 19 Tektronix Corp.
deBry, Hastings, Herriot, Isaacson, Powell [Page 65]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
PDS 20
IGP 21 Printronix Corp.
CodeV 22 Magnum Code-V, Image and printer
control language used to control
impact/dot- matrix printers. QMS,
Inc., Mobile AL
DSCDSE 23 DSC-DSE: Data Stream Compatible
and Emulation Bi-directional print
data stream for non-SNA (DSC) and
SNA LU-3 3270 controller (DSE)
communications IBM
WPS 24 Windows Printing System, Resource
based command/data stream used by
Microsoft At Work Peripherals.
Developed by the Microsoft
Corporation.
LN03 25 Early DEC-PPL3, Digital Equipment
Corp.
CCITT 26
QUIC 27 QUIC (Quality Information Code),
Page Description Language for
laser printers. Included
graphics, printer control
capability and emulation of other
well- known printer . QMS, Inc.
CPAP 28 Common Printer Access Protocol
Digital Equipment Corp
DecPPL 29 Digital ANSI-Compliant Printing
Protocol (DEC-PPL) Digital
Equipment Corp
SimpleText 30 simple-text: character coded data,
including NUL, CR , LF, HT, and FF
control characters. See ISO 10175
Document Printing Application
(DPA) ISO standard, Geneva,
Switzerlan
NPAP 31 Network Printer Alliance Protocol
(NPAP). This protocol has been
superseded by the IEEE 1284.1
TIPSI standard. (ref.
LangTIPSI(49)).
DOC 32 Document Option Commands, Appears
in the data stream between data
intended for a page description .
QMS, Inc
imPress 33 imPRESS, Page description language
originally developed for the
ImageServer line of systems. A
deBry, Hastings, Herriot, Isaacson, Powell [Page 66]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
binary language providing
representations for text, simple
graphics (rules, lines, conic
sections), and some large forms
(simple bit-map and CCITT group
3/4 encoded).The language was
intended to be sent over an 8-bit
channel and supported early
document preparation languages
(e.g. TeX and TROFF). QMS, Inc.
Pinwriter 34 24 wire dot matrix printer for
USA, Europe, and Asia except
Japan. More widely used in
Germany, and some Asian countries
than in US. NEC
NPDL 35 Page printer for Japanese market.
NEC
NEC201PL 36 Serial printer language used in
the Japanese market. NEC
Automatic 37 Automatic PDL sensing. Automatic
sensing of the interpreter
language family by the printer
examining the document content.
Which actual interpreter language
families are sensed depends on the
printer implementation.
Pages 38 Page printer Advanced Graphic
Escape Set IBM Japan
LIPS 39 LBP Image Processing System
TIFF 40 Tagged Image File Format (Aldus)
Diagnostic 41 A hex dump of the input to the
interprete
PSPrinter 42 The PostScript Language used for
control (with any PDLs) Adobe
Systems Incorporated
CaPSL 43 Canon Print Systems Language
EXCL 44 Extended Command Language Talaris
Systems Inc
LCDS 45 Line Conditioned Data Stream Xerox
Corporatio
XES 46 Xerox Escape Sequences Xerox
Corporation
PCLXL 47 Printer Control Language.
Extended language features for
printing, and printer control.
Technical reference manual # TBD.
Hewlett-Packard Co.
ART 48 Advanced Rendering Tools (ART).
deBry, Hastings, Herriot, Isaacson, Powell [Page 67]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Page Description language
originally developed for the Laser
Press printers. Tehnical
reference manual: "ART IV
Reference Manual", No F33M. Fuji
Xerox Co., Ltd.
TIPSI 49 Transport Independent Printer
System Interface (ref. IEEE Std.
1284.1)
Prescribe 50 Page description and printer
control language. It can be
described with ordinary ASCII
characters. Technical reference
manual: "PRESCRIBE II Programming
Manual"
LinePrinte 51 A simple-text character stream
r which supports the control codes
LF, VT, FF and CR plus Centronics
or Dataproducts Vertical Format
Unit (VFU). language is commonly
used on many older model line and
matrix printers.
IDP 52 Imaging Device Protocol Apple
Computer.
XJCL 53 Xerox Corp.
5.2.7 Job Size (job-size) Attributes (Set by Client and
Printer)
These attributes form the attribute group called "job-
size".
These attribute values all have adornments of either
"total" or "printed" and they indicate the size of a job
in various units. A client may set these attributes, but
not an end-user. The Printer may set these attributes if
the client does not. In both of these cases, the
attribute value has the adornment of "total", which
indicates the client and Printer's best estimate to the
total.
If a value has the adornment of "printed", then the value
shall indicate the current number of octets, impressions
or media-sheets (depending on the attribute) that have
deBry, Hastings, Herriot, Isaacson, Powell [Page 68]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
been printed. Only the printer shall be allowed to set a
value with the "printed" adornment.
If a value has no adornment, then it implicitly has the
adornment "total".
The corresponding Printer attributes indicate the range
of allowed values, but there is no explicit default. If
the Job attribute is not specified and the Printer
attribute is specified, the Printer shall either compute
a value for the job attribute or leave it unspecified.
An attribute is accepted if any one of the following
conditions is satisfied: a) the Printer attribute is
unspecified, b) the job attribute is unspecified, c) the
job attribute is within the range specified by the
Printer attribute.
5.2.7.1 job-k-octets (integer(0:2**31 - 1))
This attribute specifies the total size of the job in K
octets, i.e., in units of 1024 octets. The value shall
be rounded up, so that a job between 1 and 1024 octets
shall be indicated as being 1K, 1025 to 2048 shall be 2,
etc. This attribute is not intended to be a counter as in
the Job Monitoring MIB; it is intended to be useful
routing and scheduling information if known.
5.2.7.1.1 As a Job Attribute
This job attribute is set by client on in the Print
Request if it is known. It is set by the Printer once
the Job object is created if the Printer is able to
calculate this value.
5.2.7.1.2 As a Printer Attribute
This Printer attribute specifies a support range for job
sizes. A default value is not applicable for this
attribute.
deBry, Hastings, Herriot, Isaacson, Powell [Page 69]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.2.7.2 job-impressions (integer(0:2**31 - 1))
This job attribute specifies the total size of the job in
impressions. This attribute is not intended to be a
counter as in the Job Monitoring MIB; it is intended to
be useful routing and scheduling information if known.
5.2.7.2.1 As a Job Attribute
This job attribute is set by client on in the Print
Request if it is known. It is set by the Printer once
the Job object is created if the Printer is able to
calculate this value.
5.2.7.2.2 As a Printer Attribute
This Printer attribute specifies a support range for job
sizes. A default value is not applicable for this
attribute.
5.2.7.3 job-media-sheets (integer(0:2**31 - 1))
This job attribute specifies the total size of the job in
media-sheets. This attribute is not intended to be a
counter as in the Job Monitoring MIB; it is intended to
be useful routing and scheduling information if known.
5.2.7.3.1 As a Job Attribute
This job attribute is set by client on in the Print
Request if it is known. It is set by the Printer once
the Job object is created if the Printer is able to
calculate this value.
5.2.7.3.2 As a Printer Attribute
This Printer attribute specifies a support range for job
sizes. A default value is not applicable for this
attribute.
deBry, Hastings, Herriot, Isaacson, Powell [Page 70]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.2.8 Number of Documents (Set by Printer)
This group contains a single attribute which specifies
the number of documents in the job.
This group does not have a name since there is only one
attribute in the group.
The client need not set this attribute because, the
Printer sets the value of this job attribute depending on
the number of documents that the client supplies in the
Print operation. The client may specify this attribute
in: Get-Attributes and Get-Jobs.
The printer attribute is set by an implementation and
contains the range of values supported. Normally, it is
either exactly 1 document or at least 1 document. The
printer shall reject a job if the number of documents is
not in the range of this attribute.
5.2.8.1 number-of-documents (integer(1:2**31 - 1))
This attribute specifies the number of documents in the
job. There are document specific attributes (see section
5.4).
5.3 Job Attributes Set by the Printer
These attributes form the attribute group called "job-
set-by-printer".
The Printer sets the value for each of these job
attributes. A client may not set them.
5.3.1 Job Identification (job-identification) Attributes
(Set by the Printer)
These attributes form the attribute group called "job-
identification".
5.3.1.1 job-URL (url)
This attribute contains the URL for the job.
deBry, Hastings, Herriot, Isaacson, Powell [Page 71]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
The Printer, on receipt of a new job, shall generate a
URL which identifies the job on the Printer. The Printer,
shall return the value of the URL job attribute as part
of the PrintResult in the Print operation. The precise
format of a job URL shall be implementation dependent.
5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)
The Print shall add all of these attributes to a job to
provide information to identify a print-job.
These attributes form the attribute group called "job-
owner".
The client may specify these attributes in the
operations: Get-Attributes and Get-Jobs, but not in
Print.
5.3.2.1 job-originating-user (name)
This attribute specifies the user name of the person
submitting the print job. The Printer shall set this
attribute to the most authentic name that it can obtain
from the protocol over which the operation was received
from the client.
5.3.2.2 job-originating-host (name)
This attribute identifies the originating host of the
job. The Printer shall set this attribute to the most
authentic host name it can obtain from the protocol over
which the operation was received from the client.
5.3.2.3 user-locale (type3 keyword)
This attribute identifies the locale of the job, i.e, the
country, language, and coded character set. The Printer
sets this attribute the most authentic value it can
obtain from the protocol over which the operation was
received from the client..
The Printer shall use this attribute to determine the
locale for notification messages that it sends.
deBry, Hastings, Herriot, Isaacson, Powell [Page 72]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
Issue: Is there a more standard syntax for locale?
The standard values are listed under the document-locale
attribute.
ISSUE: specify the list of valid locales.
5.3.2.4 job-name (name)
This attribute contains the name of the job. It is a
name that is more user friendly than the job-URL. The
Printer, on receipt of the job, shall generate a name
which is the name of the first document in the job. This
name comes from the document-name or document-URL
depending on which attribute is specified.
5.3.3 Job Status (job status) Attributes (Set by Printer)
These attributes form the attribute group called "job-
status".
The Printer shall add these attributes to a job when a
client submits a job, and the Printer shall assign
appropriate values to each such job-status attribute.
The Printer uses these attributes to specify the job
status before, during and after the processing of the
print-job by the Printer.
The client may specify job-status attributes in: Get-
Attributes and Get-Jobs, but not Print.
5.3.3.1 job-state (type1 keyword)
This attribute identifies the current state of the job.
Standard values are:
unknown The job state is not known, or is
indeterminate.
pending The job is waiting to start processing
on a printer. Various job-reasons may
keep a job from moving to the printing
state.
deBry, Hastings, Herriot, Isaacson, Powell [Page 73]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
processing The server is processing the job, or
has made the job ready for printing,
but the output device is not yet
printing it, either because the job
hasn't reached the output device or
because the job is queued in the
output device or some other spooler,
awaiting the output device to print
it.
Or
The server has completed processing
the job and the output device is
currently printing the job. That is,
an output device is either printing
pages of the job, or failing in its
attempt to print pages of the job
because of some wait state, such as,
start-wait, end-wait, needs-attention,
etc. The complete job state includes
the detailed status represented in the
printer's printer-state attribute.
As with the printer state, let's let
the reason make the distinction as to
whether paper is being marked or the
printer is just processing. Most
printers won't bother with this
nuance.
terminatin The job has been canceled by a Cancel-
g Job request or aborted by the server
and is in the process of terminating.
The job's job-state-reasons attribute
contains the reasons that the job is
being terminated.
deBry, Hastings, Herriot, Isaacson, Powell [Page 74]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
retained The job is being retained at the
server. The job has (1) completed
successfully or with warnings or
errors, (2) been aborted while
printing by the server, or (3) been
canceled by the Cancel-Job request
before or during processing. The
job's job-state-reasons attribute
contains the reasons that the job has
been retained.
While in the retained state, all of
the job's document data (and
resources, if any) shall be retained
by the server; thus a job in the
retained state could be reprinted,
using some means outside the scope of
IPP V1.0. If a given implementation
does not support this functionality,
there is no need to support this
value.
deBry, Hastings, Herriot, Isaacson, Powell [Page 75]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
completed The job has:
(1) completed successfully or with
warnings or errors,
(2) been aborted by the server
while printing, or
(3) been canceled by the Cancel-
Job request,
For case 1, "completed " only happens
when all job media sheets have been
properly stacked in the appropriate
output tray or bin.
The job's job-state-reasons attribute
contains the reason(s) that the job
has been completed.
While in the completed state, a job's
document data (and resources if any)
need not be retained by the server;
thus a job in the completed state
could not be reprinted. The length of
time that a job may be in this state,
before transitioning to unknown, is
implementation-dependent. However,
servers that implement the completed
job-state shall retain, as a minimum,
the following attributes for any job
in the completed state: job-
identifier, job-originator, job-name,
current-job-state, output-device-
assigned, and job-state-reasons.
The IPP protocol supports all values for job states, but
Printers need only support those states which are
appropriate for the particular implementation.
5.3.3.2 job-state-reasons (setOf type2 keyword)
This attribute identifies the reason or reasons that the
job is in the state that it is in (e.g., held,
terminating, retained, completed, etc.). The printer
shall indicate the particular reason(s) by setting the
value of the job-state-reasons attribute.
ISSUE: Should we change job-incomplete to job-spooling
and adde job-queued, job-sent-to-printer and job-held?
Job-queued is really the default. Job-held can only be
deBry, Hastings, Herriot, Isaacson, Powell [Page 76]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
changed by an operator in an unspecified manner. Should
a job move to the printing state when a spooler sends it
to a printer or move to the printing state when marking
starts. Should it depend on the printer as to whether it
announces such nuances. We probably need a state
transition diagram.
The following standard values are defined:
job-incomplete The job has been accepted by the
server, but the Printer is
waiting for the transfer of the
remainder of the job.
job-sending-to- Optional. The job is in the
output-device pending state but is being
transmitted to the output device.
job-queued-in- Optional. The job is in the
output-device pending state and is queued on
the output device.
job-printing The job-state is processing, and
the printer is marking media.
This attribute is optional and
useful for printers which spend a
great deal of time processing
when no marking is happening.
printer-stopped The printer is stopped. This
reason appears in all jobs in
the pending state when the value
of the Printer's printer-state
attribute is stopped. This reason
appears in a job in the
processing state when the output-
device is stopped.
printer-partly- Optional. This reason appears in
stopped all jobs in the pending state
when the value of the Printer's
printer-state-reasons contains
the value partly-stopped.
job-hold-until- The value of the job's job-hold-
specified until attribute has specified a
time period that has not yet
arrived, so that the Printer
shall not consider the job as a
candidate for processing.
deBry, Hastings, Herriot, Isaacson, Powell [Page 77]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
required- At least one of the resources
resources-not- needed by the job, such as media,
ready fonts, resource objects, etc., is
not ready on any of the physical
printer's for which the job is a
candidate.
successful The job completed successfully.
completion
completed-with- The job completed with warnings.
warnings
completed-with- The job completed with errors
errors (and possibly warnings too).
cancelled-by-user The job was cancelled by the user
using the CancelJob request.
cancelled-by- The job was cancelled by the
operator operator using the CancelJob
request.
aborted-by-system The job was aborted by the
system.
logfile-pending The job's logfile is pending file
transfer.
logfile- The job's logfile is being
transferring transferred.
5.3.3.3 job-state-as-text (text)
This attributes specifies the job-state and job-state-
reasons in human readable text and it shall be set by the
Printer.
5.3.3.4 output-device-assigned (url)
This attribute identifies the Output Device to which the
Printer has assigned this job. It is the printer-URL
rather than the printer-name so that the Output-Device is
not limited to be near the Printer.
If an Output Device implements a Printer, the Printer
need not set this attribute.
If a Print Server implements a Printer, the value shall
be empty until the Printer assigns an Output Device to
the job.
The value of the job's output-device-assigned attribute
shall remain after the job has completed, so that end
deBry, Hastings, Herriot, Isaacson, Powell [Page 78]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
users can determine the Output Device on which the job
was printed.
5.3.3.5 submission-time (dateTime)
This attribute indicates the date and time at which this
job was accepted by the Printer. If the Printer does not
support the notion of time, the attribute need not be
stored as part of the job object.
5.3.3.6 number-of-intervening-jobs (integer(0:2**31 - 1))
This attribute indicates the number of jobs that are
"ahead" of this job in the current scheduled order. For
efficiency, it is only necessary to calculate this value
when an operation if performed that requests this
attribute.
NOTE - This attribute is necessary since an end user may
request just their own jobs and they need some relative
position indicator if there are other jobs interspersed
in the waiting list which are not returned in the
response or cannot be because of site security policy
restrictions.
5.3.3.7 job-message-from-operator (text)
This attribute provides a message from an operator,
system administrator or "intelligent" process to indicate
to the end user the reasons for modification or other
management action taken on a job.
5.3.3.8 completion-time (dateTime)
This attribute indicates the date and time at which this
job completed. This time is useful for jobs which are
retained after printing. If the Printer does not support
the notion of time, the attribute is not stored as part
of the Job object.
deBry, Hastings, Herriot, Isaacson, Powell [Page 79]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.4 Document Attributes
5.4.1 Document Data (document-data) Attributes (Set by a
Client/End User)
These attributes form the attribute group called
"document-data".
This group of attributes describes the document data for
the job. These attributes also include the document data
or reference it.
All job attributes in other sections of this document
occur only once per job and apply to all documents in a
job.
The client may specify document-data attributes in Print.
The client must specify either the document-URL or
document-content in Print.
Except for document-content, the client may specify
document-data attributes in: Get-Attributes, and Get-
Jobs.
5.4.1.1 document-name (name)
This attribute contains the name of the document used by
the client to initially identify the document. If the
client uses a URL, this attribute shall be absent.
ISSUE: Do we need to add a document-file-name attribute
for files that don't have a URL?
5.4.1.2 document-URL (url)
This attribute contains the URL of the document if the
client specified the document with a URL.
If this attribute is specified, then document-content
shall be unspecified.
deBry, Hastings, Herriot, Isaacson, Powell [Page 80]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.4.1.3 document-content (octetString)
This attribute contains the actual contents of the
document.
If this attribute is specified, then document-URL shall
be unspecified.
This attribute shall be used during the transmission of
the Print operation over a network. A Printer shall save
the document data to a file and reference it with the
document-URL. A Get-Attribute or Get-Jobs operation shall
always find that this attribute is unspecified.
5.5 Printer Description (printer-description) Attributes
These attributes form the attribute group called
"printer-description".
5.5.1 Printer Identification (printer-identification
Attributes (Set by the Administrator)
These attributes form the attribute group called
"printer-identification".
5.5.1.1 printer-URL (url)
This attribute contains the URL for the printer.
An administrator shall determine a printer's URL and
shall set this attribute to that URL. The precise format
of a printer URL shall be implementation dependent.
5.5.1.2 printer-name (name)
This attribute contains the name of the printer. It is a
name that is more user friendly than the printer-URL.
An administrator shall determine a printer's name and
shall set this attribute to that name. This name may be
the last part of the printer's URL or it may be
unrelated. In non-US-English locales, a name may contain
characters that are not allowed in a URL.
deBry, Hastings, Herriot, Isaacson, Powell [Page 81]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.5.2 Printer Description Attributes (Set by the
Administrator)
A printer object may be realized in either a Print Server
or Output Device. Note: How these attribute are set by an
Administrator is outside the scope of this specification.
A Printer Object in an Output Device contains a set of
printer object attributes that represent an Output Device
capable of rendering a document in visible form.
Examples include electronic and electro-mechanical
printers such as laser printers, ink-jet printers, and
various kinds of impact printers, but may include other
types of output devices such as microfiche imagers and
plotters as well.
A Printer Object in a Print Server may supply queuing,
spooling, and scheduling for an Output device that does
not queue or spool.
A Print Server, in the most common case, controls exactly
one downstream Output Device. The Print Server's Printer
object has attributes whose values are the same as those
of the Printer object in the downstream Output Device.
A Printer Object in a Print Server may contain a set of
printer object attributes that are the union of the
Printer objects in the downstream Output Devices. This
object extends the capabilities of an Output Device. For
example, an administrator might define a single Print
Server to represent all of the Output Devices of the same
type and capability in a single location, associated with
a particular server. A end user would normally send a
print-job to a Print Server, and allow the Print Server
to assign the job to a particular Output Device based on
the relative load and availability of the printers under
its control, thus providing a load balancing service.
However, nothing precludes an administrator from
configuring a print system so that an end user can send a
print-job directly to an Output Device.
The attributes defined in this section provide
information about a particular Printer.
5.5.2.1 printer-location (text)
This attribute identifies the location of this printer.
deBry, Hastings, Herriot, Isaacson, Powell [Page 82]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.5.2.2 printer-description (text)
This attribute identifies the descriptive information
about the this Printer. This could include things like:
"This printer can be used for printing color
transparencies for HR presentations", or "Out of courtesy
for others, please print only small (1-5 page) jobs at
this printer", or even "this printer is going away on
July 1, 1997, please find a new printer".
5.5.2.3 printer-more-info-site (url)
This attribute contains a URL used to obtain more
information about this specific printer. The
information obtained from this URL is intended for
end-user consumption. Features outside the scope of IPP
can be accessed from this URL. The information is
intended to be specific to this printer instance and site
services. (e.g. job pricing, services offered, end user
assistance) The manufacturer may initially populate this
attribute
5.5.2.4 printer-driver-installer (url)
This attribute contains a URL to use to locate the driver
installer for this printer. This attribute is intended
for consumption by automata. The mechanics of print
driver installation is outside the scope of IPP. The
manufacturer may initially populate this attribute.
5.5.3 Printer Description Attributes (Set by the
Manufacturer)
5.5.3.1 printer-make-and-model (text)
This attribute identifies the make and model of the
printer.
5.5.3.2 maximum-printer-speed (integerUnits)
This attribute indicates the maximum printer speed of the
Printer in units of pages per minute, impressions per
minute, lines per minute, and characters per second. A
deBry, Hastings, Herriot, Isaacson, Powell [Page 83]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
job cannot control a Printer's speed, but a Printer
Browser can use printer speed as a criteria.
The standard units are a type2 setOf keyword : ppm, ipm,
spm, lpm, and cps. These mean pages per minute,
impressions per minutes, sides per minutes, lines per
minute, and characters-per-second, respectively.
5.5.3.3 printer-more-info-manf (url)
This attribute contains a URL used to obtain more
information about this type of printer. The
information obtained from this URL is intended for
end-user consumption. Features outside the scope of IPP
can be accessed from this URL. (e.g. latest firmware,
upgrades, print drivers, optional features available)
The information is intended to be germane to this
printer without regard to site specific modifications or
services.
5.6 Printer Status (printer-status)Attributes
These attributes form the attribute group called
"printer-status".
5.6.1 Printer Status Attributes (Set by the Printer)
5.6.1.1 printer-state (type1 keywordEnum)
This attribute identifies the current state of the
printer. The printer-state reasons attribute augments the
printer-state attribute to give more detailed information
about the printer state.
The protocol shall support all values for printer states.
A Printer shall continually keep this attribute set to
the value in the table below which most accurately
reflects the state of the Printer..
deBry, Hastings, Herriot, Isaacson, Powell [Page 84]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
The following standard values are defined:
unknown The Printer state is not known, or is
indeterminate. A Printer shall use
this state only if it cannot
determine its actual state.
idle If a Printer receives a job (whose
required resources are ready) while
in this state, such a job shall
transit into the processing state
immediately.
If the printer-state-reasons
attribute contains any reasons, they
shall be reasons that would not
prevent a job from transiting into
the processing state immediately,
e.g. is toner-low.
NOTE: if a Printer controls more than
one output device, the above
definition implies that a Printer is
idle if at least one output device is
idle.
processing If a Printer receives a job (whose
required resources are ready) while
in this state, such a job shall
transit into the pending state
immediately. Such a job shall transit
into the processing state only after
jobs ahead of it complete printing.
If the printer-state-reasons
attribute contains any reasons, they
shall be reasons that do not prevent
the current job from printing, e.g.
toner-low.
NOTE: if a Printer controls more than
one output device, the above
definition implies that a Printer is
processing if at least one output
device is processing, and none is
idle.
deBry, Hastings, Herriot, Isaacson, Powell [Page 85]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
stopped If a Printer receives a job (whose
required resources are ready) while
in this state, such a job shall
transit into the pending state
immediately. Such a job shall transit
into the processing state only after
some human fixes the problem that
stopped the printer and after jobs
ahead of it complete printing.
The printer-state-reasons attribute
shall contain at least one reason,
e.g. paper-jam, which prevents it
from either processing the current
job or transiting a pending job to
the processing state.
NOTE: if a Printer controls more than
one output device, the above
definition implies that a Printer is
stopped only if all output devices
are stopped.
NOTE: in the case where a Printer controls more than one
output device, it is tempting to define stopped as when a
sufficient number of output devices are stopped and leave
it to an implementation to define the sufficient number.
But such a rule complicates the definition of stopped
and processing. For example, with this alternate
definition of stopped, a job can move from idle to
processing without human intervention, even though the
Printer is stopped.
5.6.1.2 printer-state-reasons (setOf type2 keyword)
This attribute supplies additional detail about the
printer state.
Each value shall have an adornment to indicate its level
of severity. The three levels are: report (least
severe), warning and error (most severe).
- "report": it has the adornment of "report". An
implementation may choose to omit some or all
reports. Some reports specify finer granularity
about the printer state; others serve as a precursor
deBry, Hastings, Herriot, Isaacson, Powell [Page 86]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
to a warning. A report shall contain nothing that
could affect the printed output.
- "warning": it has the adornment of "warning". An
implementation may choose to omit some or all
warnings. Warnings serve as a precursor to an error.
A warning shall contain nothing that prevents a job
from completing, though in some cases the output may
be of lower quality.
- "error": it has no adornment. An implementation shall
include all errors. If this attribute contains one
or more errors, printer shall be in the stopped
state.
ISSUE: Toner-low should be a warning because it allows
printing to proceed, but in some printers, toner-low may
also produce degraded output. Do we want a fourth
category, perhaps severe-warning which allows a job to
continue printing but with reduced quality?
If a Printer controls more than one output device, each
value of this attribute shall apply to one more of the
output devices. An error on one output device that does
not stop the Printer as a whole appears as a warning in
the Printer's printer-state-reasons attribute. Such a
Printer's printer-state value may be stopped even with no
printer-state-reasons that are errors.
The following standard values are defined:
partly-stopped When a Printer controls more than
one output device, this reason
indicates that one or more output
devices are stopped. If the
reason is a report, fewer than
half of the output devices are
stopped. If the reason is a
warning, fewer than all of the
output devices are stopped.
media-needed A tray has run out of media
paper-jam The printer has a paper jam.
deBry, Hastings, Herriot, Isaacson, Powell [Page 87]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
paused Someone has paused the Printer.
In this state, a Printer shall
not produce printed output, but
it shall perform other operations
requested by a client. If a
Printer had been printing a job
when the Printer was paused, the
Printer shall resume printing
that job when the Printer is no
longer paused and leave no
evidence in the printed output of
such a pause .
shutdown Someone has removed a Printer
from service, and it may be
powered down or physical removed.
In this state, a Printer shall
not produce printed output, and
unless the Printer is realized by
a print server that is still
active, the Printer shall perform
no other operations requested by
a client, including returning
this value. If a Printer had been
printing a job when it was
shutdown, the Printer need not
resume printing that job when the
Printer is no longer shutdown. If
the Printer resumes printing such
a job, it may leave evidence in
the printed output of such a
shutdown, e.g. the part printed
before the shutdown may be
printed a second time after the
shutdown..
connecting-to- The server has scheduled a job on
printer the Printer and is in the process
of connecting to a shared network
output device (and may not be
able to actually start printing
the job for an arbitrarily long
time depending on the usage of
the output device by other
servers on the network).
deBry, Hastings, Herriot, Isaacson, Powell [Page 88]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
timed-out The server was able to connect to
the output device (or is always
connected), but was unable to get
a response from the output device
in the time specified by the
printer's printer-timeout-period
attribute.
stopping The printer will be stopping in a
while and will change its reason
to printer-stopped. This reason
is a non-critical, even for a
Printer with a single output
device. When an output-device
ceases accepting jobs, the
Printer will have this state
while the output device completes
printing.
5.6.1.3 printer-is-accepting-jobs (boolean)
This attribute determines whether the printer is
currently accepting job. If the value is true, the
printer is accepting jobs. If the value is false, the
printer is currently rejecting any jobs submitted to it.
Note: this value is independent of the printer state and
printer-state-reasons because its value does not affect
the current job; rather it affects future jobs. This
attribute may cause the Printer to reject jobs when the
printer-state is idle or it may cause the Printer to
accepts jobs when the printer-state is stopped.
5.6.1.4 printer-state-as-text (text)
This attributes specifies the printer-state, printer-
state-reasons, printer-is-accepting-jobs in human
readable text and it shall be set by the Printer.
When a Printer returns the value of this attribute to a
client, the Printer shall localize the value of this
attribute to be in the locale of the user, as specified
by the Get Attributes or Get Jobs operation.
ISSUE: Give the syntax of this message in English.
deBry, Hastings, Herriot, Isaacson, Powell [Page 89]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
5.6.1.5 queued-job-count (integer(0:2**31 - 1))
This attribute contains a count of the number of jobs
that are either pending and/or processing and shall be
set by the Printer.
5.6.2 Printer Status Attributes (Set by the Administrator)
5.6.2.1 printer-message-from-the-operator (text)
This attribute provides a message from an operator,
system administrator or "intelligent" process to indicate
to the end user information or status of the printer,
such as why it is unavailable or when it is expected to
be available.
5.7 Printer Behavior (printer-behavior) Attributes
These attribute specify the behavior of a printer.
These attributes form the attribute group called
"printer-behavior".
5.7.1 Printer Behavior Attributes (set by the Administrator)
5.7.1.1 printer-locale (locale)
This attribute specifies the locale that the Printer
operates in.
The standard values are defined in the section on the
document-locale attribute.
ISSUE: reference the locales.
5.7.1.2 fonts-substitutions (setOf setOf font)
This attribute specifies an appropriate substitute for a
font that is advertised as supported in the fonts-
supported attribute, even though the Printer doesn't
actually have the font available.
deBry, Hastings, Herriot, Isaacson, Powell [Page 90]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
This attribute consists of a set of font pairs: a font
name and the font to use instead.
If this attribute is unspecified, the Printer does not
perform any font substitutions.
5.7.1.3 scheduling-algorithm (type3 keyword)
This attribute indicates the current scheduling algorithm
for this Printer.
Standard values are: "none", "smallest-job-first", "time-
received".
5.7.1.4 printer-fonts (setOf font)
This attribute specifies what fonts are available at the
Printer or accessible to the Printer. Documents may use
these fonts without requiring that the fonts be
downloaded with the document data.
The standard values are font names.
ISSUE: Should the IPP model include all information that
is currently contained in printer definition files such
as PostScripts printer definition (ppd) files?
6. IANA Considerations
IPP is explicitly designed to be extensible. Additional
attributes can be proposed to be registered by going
through the type 2 or type 3 keyword process which will
register their specification after approval with IANA.
In addition specific implementation instances may support
not only the basic protocol as defined in this
specification, but may add vendor-specific private
extensions by prefixing attribute-names with their
company name registered with IANA for use in domains.
See attribute syntax section. However, such private
extensions shall not duplicate attribute semantics
already in this specification.
deBry, Hastings, Herriot, Isaacson, Powell [Page 91]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
7. Security Considerations
NOTE: There is another Internet-Draft called "Internet
Printing Protocol/1.0: Security." That document is being
drafted and reviewed in parallel with this document.
Before this document can become a formal RFC, any
relevant issues from that document will be rolled into
this one.
A Printer may choose, for security reasons, not to return
all attributes that a client requests. It may even return
none of the requested attributes. In such cases, the
status returned is the same as if the Printer had
returned all requested attributes. The client cannot tell
by such a response whether the requested attribute was
present or absent on the Printer.
8. References
[1] Smith, R., Wright, F., Hastings, T., Zilles, S., and
Gyllenskog, J., "Printer MIB", RFC 1759, March 1995.
[2] Berners-Lee, T, Fielding, R., and Nielsen, H.,
"Hypertext Transfer Protocol - HTTP/1.0", RFC 1945,
August 1995.
[3] Crocker, D., "Standard for the Format of ARPA
Internet Text Messages", RFC 822, August 1982.
[4] Postel, J., "Instructions to RFC Authors", RFC 1543,
October 1993.
[5] ISO/IEC 10175 Document Printing Application (DPA),
Final, June 1996.
[6] Herriot, R. (editor), X/Open A Printing System
Interoperability Specification (PSIS), August 1995.
[7] Kirk, M. (editor), POSIX System Administration -
Part 4: Printing Interfaces, POSIX 1387.4 D8, 1994.
[8] Borenstein, N., and Freed, N., "MIME (Multi-purpose
Internet Mail Extensions) Part One: Mechanism for
Specifying and Describing the Format of Internet
Message Bodies", RFC 1521, September, 1993.
deBry, Hastings, Herriot, Isaacson, Powell [Page 92]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
[9] Braden, S., "Requirements for Internet Hosts -
Application and Support", RFC 1123, October, 1989,
[10] McLaughlin, L. III, (editor), "Line Printer Daemon
Protocol" RFC 1179, August 1990.
[11] Berners-Lee, T., Masinter, L., McCahill, M. ,
"Uniform Resource Locators (URL)", RFC 1738,
December, 1994.
9. Author's Address
Scott A. Isaacson
Novell, Inc.
122 E 1700 S
Provo, UT 84606
Phone: 801-861-7366
Fax: 801-861-4025
EMail: scott_isaacson@novell.com
Tom Hastings
Xerox Corporation
701 S. Aviation Blvd.
El Segundo, CA 90245
Phone: 310-333-6413
Fax: 310-333-5514
EMail: hastings@cp10.es.xerox.com
Robert Herriot
Sun Microsystems Inc.
2550 Garcia Ave., MPK-17
Mountain View, CA 94043
Phone: 415-786-8995
Fax: 415-786-7077
Email: robert.herriot@eng.sun.com
Roger deBry
HUC/003G
IBM Corporation
P.O. Box 1900
Boulder, CO 80301-9191
Phone: (303) 924-4080
Fax: (303) 924-9889
Email: debry@vnet.ibm.com
deBry, Hastings, Herriot, Isaacson, Powell [Page 93]
draft-ietf-ipp-model-00.txt, expires September 26, 1997
INTERNET-DRAFT IPP/1.0: Model and Semantics March 26, 1997
IPP Mailing List: ipp@pwg.org
IPP Mailing List Subscription: ipp-request@pwg.org
IPP Web Page: http://www.pwg.org/ipp/
Other Participants:
Devon Taylor, Novell, Inc.
Mike MacKay, Novell, Inc.
Peter Zehler, Xerox, Corp.
Keith Carter, IBM Corporation
Carl-Uno Manros, Xerox, Corp.
Don Wright - Lexmark
Steve Gebert - IBM
Ray Lutz - Cognisys
Mabry Dozier - QMS
Lee Farrell - Canon Information Systems
Hiroyuki Sato - Canon
Pat Nogay - IBM
Jim Walker - Dazel
Jay Martin - Underscore
Bill Wagner - DPI
Stan McConnell - Xerox
Bob Setterbo - Adobe
Randy Turner - Sharp
Rob Whittle - Novell
Ron Bergman - Data Products
Lloyd Young - Lexmark
Andy Davidson - Tektronix
Rick Landau - Digital
David Kellerman - Northlake Software
David Roach - Unisys
Mike Timperman - Lexmark
Chris Wellens - Interworking Labs
Pete Loya - HP
Bob Pentecost - HP
Harry Lewis - IBM
William Wagner - Digital Products
Atsushi Yuki - Kyocera
Rob Rhoads - Intel
Jeff Barnett - IBM
Jim Walker - Dazel
Jeff Copeland - QMS
Chuck Adams - Tektronix
deBry, Hastings, Herriot, Isaacson, Powell [Page 94]
draft-ietf-ipp-model-00.txt, expires September 26, 1997