Subject: IPP> MOD/PRO - ISSUE Do we need to represent "unknown" value or not?

From: Tom Hastings <[email-masked]>
Date: Mon, 27 Oct 1997 17:51:16 PST

Currently the Model document has copied some integer attributes from the Job 
Montoring MIB where a -2 value indicates that the Printer object does not
(yet) know what the correct value is, i.e., the value is "unknown".

The current Model document describes the -2 values as unknown, but the
allowed range is constrained to 0:MAX:

Alternatives:

1. Specify that the Printer object SHALL not return an attribute when
the value is "unknown".

2. Add "unknown" as an out of band value in the Protocol.

3. Clarify that the current out of band value "no-value" may be used
for when the Printer doesn't know the value.

4. Increase the range, so that -2 is a legal value, as in the Job Monitoring
MIB.

The attribute so effected are:

4.2.16	job-k-octets (integer(0:2**31 - 1))

This attribute specifies the total size of the document data in K octets,
i.e., in units of 1024 octets requested to be  processed in the job.  The
value SHALL be rounded up, so that a job between 1 and 1024 octets SHALL be
indicated as being 1, 1025 to 2048 SHALL be 2, etc. 

This value SHALL not include the multiplicative factors contributed by the
number of copies specified by the "copies" attribute, independent of
whether the device can process multiple copies without making multiple
passes over the document data and independent of whether the output is
collated or not.  Thus the value is independent of the implementation.

Note:  This attribute and the following two attributes ("job-impressions"
and "job-media-sheets") are not intended to be counters; they are intended
to be useful routing and scheduling information if known. For these three
attributes,  the Printer may try to compute the value if it is not supplied
in the create request.  Even if the client does supply a value for this
attribute in the create request, the Printer may choose to change the value
if the Printer is able to compute a value which is more accurate than the
client supplied value.  The Printer may be able to determine the correct
value for this attribute either right at job submission time or at any
later point in time.  If the value of this attribute is unknown, the
Printer may choose to respond with a value of '-2' (which signifies
"unknown") rather than choose to not support the attribute at all. 

4.2.17	job-impressions (integer(0:2**31 - 1))

This attribute specifies the total number of impressions of the document(s)
being requested by this job to produce. 

This value SHALL not include the multiplicative factors contributed by the
number of copies specified by the "copies" attribute, independent of
whether the device can process multiple copies without making multiple
passes over the document data and independent of whether the output is
collated or not.  Thus the value is independent of the implementation.

4.2.18	job-media-sheets (integer(0:2**31 - 1))

This attribute specifies the total number of media sheets to be processed
for this job. 

Unlike the "job-k-octets" and the "job-impressions" attributes, this value
SHALL include the multiplicative factors contributes by the number of
copies specified by the "copies" attribute

4.3.16	job-k-octets-processed (integer(0:2**31 - 1))

This attribute specifies the number of octets processed 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 1, 1025 to 2048 SHALL
be 2, etc. 
For implementations where multiple copies are produced by the interpreter
with only a single pass over the data, the final value SHALL be equal to
the value of the "job-k-octets" attribute.  For implementations where
multiple copies are produced by the interpreter by processing the data for
each copy, the final value SHALL be a multiple of the value of the
"job-k-octets" attribute.

Note: This attribute and the following two attributes
("job-impressions-completed" and "job-sheets-completed") are intended to be
counters. That is, if the "job-state" is 'processing' or
'processing-stopped', this value is intended to contain the amount of the
job that has been processed to the time at which the attributes are
requested.  For any of these three attributes, the Printer may choose to
return the value '-2' (which represents "unknown") rather than choose to
not support the attribute at all.

4.3.17	job-impressions-completed  (integer(0:2**31 - 1))

This job attribute specifies the number of impressions completed for the
job so far.  For printing devices, the impressions completed includes
interpreting, marking, and stacking the output. This attribute is intended
to be a counter as in the Job Monitoring MIB.

For implementations where multiple copies are produced by the interpreter
with only a single pass over the data, the final value SHALL be equal to
the value of the "job-impressions" attribute.  For implementations where
multiple copies are produced by the interpreter by processing the data for
each copy, the final value SHALL be a multiple of the value of the
"job-impressions" attribute.

4.3.18	job-media-sheets-completed (integer(0:2**31 - 1))

This job attribute specifies the media-sheets completed marking and
stacking for the entire job so far whether those sheets have been processed
on one side or on both. This attribute is intended to be a counter as in
the Job Monitoring MIB.

---

From: [email-masked] (Robert Herriot)
Date: Tue, 28 Oct 1997 13:54:39 -0800

Though the issue you raise for unknown values could arise for any type,
not just integers.

> From [email-masked] Mon Oct 27 18:00:42 1997
>