Subject: IPP> IBM Midrange (System i - iSeries - AS/400) IPP Driver Attributes

From: "Paul Tykodi" <[email-masked]>
Date: Wed, 16 Apr 2008 15:16:56 -0400

Hi,

The following information about the IPP System Driver program from the IBM
Midrange platform has been contributed by Terry Luebbe of IBM in support of
the ippv2 process.

Terry S. Luebbe
iSeries Printer Attachment & Host Print Transform
Dept GJCA
Rochester, MN

<Start IBM Info>

IPP Operations:
---------------
The iSeries IPP print driver uses the following IPP Operations:

1. Get-Printer-Attributes
2. Validate-Job
3. Print-Job

It is possible, that in the future, we may decide to also use:

4. Get-Job-Attributes

NOTE: The iSeries IPP print driver uses HTTP/1.1 chunking during the
IPP Print-Job operation.

For each iSeries spooled file, the IPP print driver uses the
Get-Printer-Attributes operation to check
the printer status, the Validate-Job operation to make sure the printer will
accept the spooled
file print data, and finally the Print-Job operation to send the spooled
file print data. 

The iSeries print driver opens and closes the socket for each IPP operation.
For each spooled file
three (3) socket connections are opened and closed. We recommend that our
customers use IP port
631, but we would also support IP port 80 as specified in the IPP/1.0
specification. We do not make the
customer use IP port 631 as IPP/1.1 would suggest.

IPP Get-Printer-Attributes:
---------------------------

The iSeries IPP print driver uses the following IPP attributes that can be
sent back from the device.

For each iSeries spooled file, a Get-Printer-Attributes operation is sent to
retrieve the printer attributes.

The iSeries IPP print drivers uses:

1. printer-state
2. printer-state-reasons
3. printer-is-accepting-jobs

to determine if the device is ready to accept spooled files from the
iSeries.

Since printer-state and printer-is-accepting-jobs are both REQUIRED IPP
attributes, the iSeries IPP print driver will end processing
if these attributes are missing from the device's Get-Printer-Attributes
response.

If  printer-state = "stopped" the iSeries IPP print driver will look at the
printer-state-reasons and determine what iSeries
message to send to the operator of the device. The iSeries has messages for
most of the printer-state-reasons, for example,
"media-needed", "media-jam", "toner-low", "toner-empty", "cover-open",
"door-open", "input-tray-missing", and "output-tray-missing"
are all supported. If required, we can add additional messages for new
versions of OS400, the iSeries operating system.

If the device does not implement printer-state-reasons, or only provides a
limited set of values like "none" or "other" it becomes
very difficult for the iSeries IPP print driver to determine what may be
wrong at the device. 

If the printer-state is "idle" or "processing" and the
printer-is-accepting-jobs=TRUE, then the iSeries IPP print driver will 
send the spooled file using the IPP Print-Job operation.

The IPP Print-Job response's, status-message, is used to determine if the
spooled file was accepted by the device. If the status-message is
successful, the iSeries IPP print driver will indicate to the iSeries print
subsystem that the spooled file has successfully completed.

Once the device accepts the Print-Job operation without a status-message
indicating an error, the iSeries assumes the print job
has completed. The iSeries IPP print driver does not use Get-Job-Attributes
to determine if the device has actually completed
the print job.

IPP Job Template attributes:
----------------------------
IPP Job Template attributes describe job processing behavior. Support for
Job Template attributes by a printer is OPTIONAL.

The iSeries IPP print driver currently uses the following IPP Job Template
attributes:

1. "job-priority"
2. "finishings"
3. "sides"
4. "number-up"

Of these four (4) Job Template attributes "finishings" and "number-up" are
most important to implement. Supporting "finishings" and 
"number-up" would add significant customer value to network printers.
Currently only the IPDS network printers support these functions
on the iSeries.

On the iSeries, the "sides" attribute at the job level will be overridden
within the printer data stream.

In the future the iSeries print driver may support the following IPP Job
Template attributes:

1. "job-hold-until"
2. "job-sheets"
3. "orientation-requested"
4. "media"
5. "printer-resolution"
6. "print-quality"

These attributes were not implemented because the iSeries does not have
"printer-resolution" or "media" type attributes and  support for
"job-sheets", "orientation-requested", and "print-quality" are handled
within the printer data streams generated by the iSeries.

Finally, it is not likely that the IPP print driver will ever use the
following IPP Job Template attributes:

1. "multiple-document-handling"
2. "copies"
3. "page-ranges"

The iSeries print subsystem does not support multiple documents contained
within a single spooled file. The IPP print driver itself handles 
the processing of "copies" and "page-ranges".

<End IBM Info>

Separately I will e-mail a summary of the information page from the IBM web
site listing total number of models of laser printers, inkjet printers,
impact printers, and thermal printers, which are known to be compatible,
incompatible, or undetermined compatibility with the IPP Driver outlined
above.

I hope this information will be useful to the ippv2 effort.

Best Regards,

/Paul
--
Paul Tykodi
Principal Consultant
TCS - Tykodi Consulting Services LLC

Tel/Fax: 603-343-1820
Mobile:  603-866-0712
E-mail:  [email-masked]
WWW:     http://www.tykodi.com