IPP Mail Archive: Re: IPP> Proposed Resolution to BO Issue 4

Re: IPP> Proposed Resolution to BO Issue 4: requesting unsupported attribu tes in query operations

From: Harry Lewis/Boulder/IBM (harryl@us.ibm.com)
Date: Thu Nov 02 2000 - 16:25:28 EST

  • Next message: Christopher.Pott@i-data.com: "Re: IPP> Proposed Resolution to BO Issue 4: requesting unsupported attribu tes in query operations"

    I do not support the proposal.

    The Model document specifies

    D) successful-ok-attribute-or-value-ignored (0x0001)/ unsupported

    We made the exception following BO-1 to also allow

    C) successful-ok-attribute-or-value-ignored (0x0001)/ no attributes

    I don't think we should loosen the specification further. I do think the
    Implementer's guide should warn Clients of the current BO findings.

    ----------------------------------------------
    Harry Lewis
    IBM Printing Systems
    ----------------------------------------------

    "Hastings, Tom N" <hastings@cp10.es.xerox.com>
    Sent by: owner-ipp@pwg.org
    11/01/2000 08:16 PM

     
            To: ipp@pwg.org
            cc:
            Subject: IPP> Proposed Resolution to BO Issue 4: requesting unsupported attribu tes
    in query operations

    Please indicate on the mailing list whether or not you support this
    proposed
    resolution to Issue 4 by Tuesday November 7. Then I will update the
    Implementer's Guide and replace it in the IESG queue according to the IESG
    procedures.

    At the telecon today we discussed Bake Off Issue 4:

    ISSUE BO3-4: Which status code does the Printer return for the
    Get-Printer-Attributes, Get-Job-Attributes, and Get-Jobs operations, when
    a
    client submits an unsupported "requested-attributes" value? Also does the
    Printer return the "requested-attributes" attribute with (just) the
    unsupported values in the Unsupported Attributes Group like it MUST for
    all
    other attributes in this and all other operations?

    There are four combinations of status code and Unsupported Attributes
    Group:

      A) successful-ok (0x0000)/no attributes
      B) successful-ok (0x0000)/unsupported requested-attributes returned
      C) successful-ok-attribute-or-value-ignored (0x0001)/ no attributes
      D) successful-ok-attribute-or-value-ignored (0x0001)/ unsupported
    "requested-attributes" returned

    The standard requires (C) or (D) for the Get-Xxx operations if all
    sections
    of the standard are read. The standard requires (D) for all other
    attributes for the Get-Xxxx operation and for all attributes for all other
    operations.

    All four combinations were present at the Bake Off for the Get-Xxxx
    operations, with a majority of implementations doing (A), one doing (B),
    and
    some doing (C) or (D).

    Discussion:
    We agreed that the purpose of a Bake Off isn't to change the standard to
    agree with implementations. We also agreed that having alternatives for
    Printers usually makes it harder for clients. We also agreed that we did
    not want to invalidate currently conforming Printer implementations, i.e.,
    ones that did (C) or (D).

    However, for this issue and because these are query operations, rather
    than
    operations that change the state of the Printer, we felt that allowing all
    four alternatives does not make it harder for clients and does not impact
    interoperability, because we think that most clients will:

    1. treat the two success status codes the same for query (Get-xxx)
    operations
    2. will probably ignore the Unsupported Attribute Group for query
    operations
    3. will only look at the Printer or Job Attributes Group returned which
    will
    only contain requested attributes that are supported for query operations

    We could not even agree on which alternative to recommend for future
    implementations and hence could not even agree on deprecating any.
    Alternative (A) is simple, but some implementations want to handle ALL
    attributes and operations consistently and not make an exception for the
    Get
    operations with the "requested-attributes" operation attribute, i.e., such
    implementations want to do (D). At Bake Off 1, several implementations
    found alternative (D) difficult, since they didn't have a list of
    supported
    attributes from which to compare the values of the "requested-attributes"
    operation.

    Therefore, we propose to explain in the Implementer's Guide (which is in
    the
    IESG queue, but is not yet approved by them), that a client should handle
    all four alternatives (which is easy as described above) and that Printers
    may do any one of the four alternatives.

    In the future, when an updated Model and Semantics document is produced,
    these same alternatives will be explained. However, at present there is
    no
    opportunity to change the current RFCs.

    Please indicate on the mailing list whether or not you support this
    proposal
    by Tuesday November 7, before I update the Implementer's Guide and replace
    it in the IESG queue according to the IESG procedures.

    Thanks,
    Tom

    P.S. the entire mail thread is attached.

    -----Original Message-----
    From: Harry Lewis/Boulder/IBM [mailto:harryl@us.ibm.com]
    Sent: Monday, October 30, 2000 09:47
    To: Carl Kugler/Boulder/IBM
    Cc: hastings@cp10.es.xerox.com; ipp@pwg.org
    Subject: RE: IPP> IPP Bake-Off 3 issue 4

    I agree with Carl. I don't think the goal (or result) of interop testing
    should be to loosen the spec because of diverse findings. This does not
    yield interoperability! Diverse interpretations are a sign of an area (of
    the spec) that may have been unclear, unnecessarily complex or simply not
    needed.

    This is a case of mismatched redundant information. I think either ....
    a. Forcing the information to match
    b. Removing the redundancy
    ... would be helpful... but not just throwing our hands up and allowing
    any combination to be considered valid.

    ----------------------------------------------
    Harry Lewis
    IBM Printing Systems
    ----------------------------------------------

    Carl Kugler/Boulder/IBM@IBMUS
    Sent by: owner-ipp@pwg.org
    10/30/2000 09:44 AM

            To: "Hastings, Tom N" <hastings@cp10.es.xerox.com>
            cc: ipp@pwg.org
            Subject: RE: IPP> IPP Bake-Off 3 issue 4

    To be really anal ytical, the spec still only allows D:

    <<<<<<<<<<<<<
    3.1.7 Unsupported Attributes
    ...
    A Printer object MUST include an Unsupported Attributes group in a
    response
    if the status code is one of the following:
    'successful-ok-ignored-or-substituted-attributes',
    'successful-ok-conflicting-attributes',
    'client-error-attributes-or-values-not-supported' or
    'client-error-conflicting-attributes'.
    >>>>>>>>>>>>

    My opinion is that specifying four or more ways to accomplish the same
    thing just complicates matters and makes implementation more confusing.
    Back at bakeoff 1, the spec only allowed D. I admit that I was one of
    those who implemented it wrong for bakeoff 1. But when the spec was
    loosened up, I still got it wrong and ended up in camp A. IBM is
    currently
    shipping three different implementations of "requested-attributes". I
    don't consider this a good thing.

         -Carl

    "Hastings, Tom N" <hastings@cp10.es.xerox.com> on 10/27/2000 06:36:07 PM

    To: Carl Kugler/Boulder/IBM@IBMUS, ipp@pwg.org
    cc:
    Subject: RE: IPP> IPP Bake-Off 3 issue 4

    I agree with Carl that the current standard only allows C and D. But
    since
    so many implementations did A and since the client gets back the supported
    attributes anyway, whether or not the unsupported requested attributes are
    returned or not seems less important to the client.

    However, I disagree with Carl that we should tighten up the standard to
    allow only D. That is the way the standard was written for the first Bake
    Off and we agreed to allow C.

    So the current standards allows C and D. Since requesting unsupported
    attributes isn't really going to cause the client to get unexpected
    results
    (since the client will be looking at the supported returned attributes
    anyway), I favor adding A as allowed. And we may as well allow B as well.
    No matter which of the 4 ways the Printer is written, the client doesn't
    have any extra work to work with all 4 ways:

    Until we add OPTIONAL operation attributes or OPTIONAL operation attribute
    values to the Get-Printer-Attributes operation, there is not much need for
    the client to look at the Unsupported Attribute group returned by the
    Printer at all. (Currently the only other attribute that a Printer could
    return in the Unsupported Attributes Group is "document-format" with an
    unsupported document format that the client requested).

    So the client merely treats success (0) and
    Successful-attribute-or-value-ignored (1) status codes the same and then
    looks at the Printer Attributes Group returned.

    Lets here from others...

    Tom

    -----Original Message-----
    From: Carl Kugler/Boulder/IBM [mailto:kugler@us.ibm.com]
    Sent: Friday, October 27, 2000 13:44
    To: ipp@pwg.org
    Subject: Re: IPP> IPP Bake-Off 3 issue 4

    "Zehler, Peter" <Peter.Zehler@u...> wrote:
    > All,
    >
    > BO3-4: For get-printer-attributes operation submitted with an
    unsupported
    > "requested-attributes" value what is the return code and should an
    > unsupported attributes group be returned containing the
    requested-attributes
    > attribute and the unsupported value. There are four possibilities of
    status
    > code and unsupported attribute:
    > A) successful-ok/no attributes
    > B) successful-ok/unsupported requested-attributes returned
    > C) Successful-attribute-or-value-ignored/ no attributes
    > D) Successful-attribute-or-value-ignored/ unsupported
    > requested-attributes returned
    > The standard currently allows A, C, D. Should the standard
    > be relaxed to include C.
    >
    I'm not sure I follow you here!

    Looks to me like the spec currently allows only C or D:
    <<<<<
    13.1.4.12 client-error-attributes-or-values-not-supported (0x040B)
    ...
    For any operation where a client requests attributes (such as a Get-Jobs,
    Get-Printer-Attributes, or Get-Job-Attributes operation), if the IPP
    object
    does not support one or more of the requested attributes, the IPP object
    simply ignores the unsupported requested attributes and processes the
    request as if they had not been supplied, rather than returning this
    status
    code. In this case, the IPP object MUST return the
    'successful-ok-ignored-or-substituted-attributes' status code and MAY
    return the unsupported attributes as values of the "requested-attributes"
    in the Unsupported Attributes Group (see section 13.1.2.2).
    >>>>>
    Choice D would simplify the spec, since there wouldn't need to be any
    special exception for "requested-attributes"; it would be treated the
    same
    as any other attribute. However, "requested-attributes" seems to be
    confusing to implement, since I have seen implementations all over the map
    on this. I have even seen some imaginative responses that don't fall into
    any of the above possibilities (but not at the bakeoff). Maybe we should
    settle on D, the simplest one to specify, then put a big chapter in the
    Implementer's Guide explaining the details.

         -Carl

    > The implementations at the Bake-Off supported were
    > A-11, B-1, C-3, D-0
    > Proposed Resolution: Allow all combinations
    >
    >



    This archive was generated by hypermail 2b29 : Thu Nov 02 2000 - 16:35:44 EST