Subject: IPP> MOD - Proposed Minimums and Maximums for IPP attribute syntaxes

From: Tom Hastings <[email-masked]>
Date: Fri, 21 Nov 1997 19:45:26 PST

Subj:  Proposed Minimums and Maximums for IPP attribute
syntaxes.
From:  Tom Hastings
Date:  10/20/97
File:  ipp-min-max.doc

I was given an action item to propose:

1.   maximums for those IPP attribute syntaxes that don't
  have maximum octet lengths
2.   revisit the maximum length of the 'text' attribute
syntax which is 4095 octets
3.   minimums for those attributes that are read-only in
IPP/1.0.

>From the minutes of the 11/19/97 telecon:

1.   Discussion about length boundaries for text strings
(from recent DL discussion)

Everybody seemed to agree that we want to have maximum
lengths for all attribute syntaxes (see section 4.1 in the
Model document), including the 'uri' attribute syntax, even
if HTTP has not set such limits (pointed out by Larry
Masinter).  We have to make it explicit what the lengths
mean and whether they apply to server, client or both.  We
reaffirmed that IPP is intended to be implemented by low-end
printers that don't spool, as well as devices and servers
that do spool.  Therefore, these length conformance
requirements need to be carefully reviewed as part of the WG
last call.

We reaffirmed that the maximums for read-write attributes
required a conforming IPP object to support the full maximum
length without truncation.  There was concern that the
current maximum for the 'text' attribute syntax of 4095
octets was too large.  A maximum of 1023 was suggested, but
no consensus was reached.  The only read-write 'text'
attribute is the 'message' Operation attribute in the Cancel-
Job operation.  However, since this Operation attribute is
OPTIONAL for an IPP object to support, a conforming IPP
object SHALL ignore the attribute if it is not supported.
But the IPP object SHALL accept the maximum length without
truncation if the "message" attribute is supported.

There was also agreement that the maximum length for read-
only attributes NEED NOT be supported by conforming IPP
objects.  Read-only attributes are ones set by the
implementation and/or the system administrator when
configuring the system.  The entire list is: "status-
message" OPTIONALLY returned in a response, "job-state-
message", "job-message-from-operator", "printer-location",
"printer-info", "printer-make-and-model", and "printer-state-
message".  Support for all of these read-only attributes is
OPTIONAL for as IPP object.  However, when they are
supported, we agreed that the Model document needs to agree
on minimums that MUST be supported for these read-only
attributes.  It was suggested that the minimums should agree
with the Job Monitoring MIB.

ACTION ITEM:  Tom to draft a proposal for the maximums for
those attribute syntaxes that don't have a maximum and for
minimums for all attribute syntaxes discussion on the DL as
part of the last call comments.

2.   Strategy

Lets make the minimums for read-only be the same as the Job
Monitoring MIB minimum/maximum, which is 63 octets for the
jmAttributesAsOctets object.  Then there is no loss when
using the Job Monitoring MIB for an implementation that
supports the minimum for IPP for read-only attributes.
There will still be loss for read-write objects when using
the Job Monitoring MIB, but the only read-write 'text'
attribute is the OPTIONAL "message" Operation attribute in
the Cancel-Job operation and that attributes isn't stored on
the job object, so an application can't read it with the Job
Monitoring MIB anyway.

The Job Monitoring MIB (incorrectly) specifies that the
jobURI(20) attribute is 255 octets long.  But its contained
in a jmAttributeAsOctets object which is only 63 octets
long.  So lets make the JMP jobURI(20) a MULTI VALUEE
attribute in which each piece is the next 63 octets of the
URI up to 1023 octets which is the minimum for read-only
that I propose below for IPP.

3.   Proposed Maximum octet lengths

The following table show the current maximum, and the
proposed maximum.  For read-write attributes the maximum is
also the minimum.  For read-only attributes the proposed
minimum is also shown.
Name              Current         Proposed  Proposed
                  min/max octets  min/max   min for
                  for read-write  for read- read-
                  and read-only   write     only
'text'            4095            1023      63
'name'            255             255       63
'keyword'         255             255       63
'enum'            4 (protocol     4         4
                  doc)
'uri'             -               1023      1023
'uriScheme'       -               63        63
'charset'         -               63        63
'naturalLanguage  -               63        63
'
'mimeMediaType'   -               63        63
'octetString'     4095            1023      63
'boolean'         1 (protocol     1         1
                  doc)
'integer'         4 (protocol     4         4
                  doc)
'rangeOfInteger'  8 (protocol     8         8
                  doc)
'dateTime'        11              11        11
'resolution'      9               9         9
'1setOf  X'       …