Re: [IPP] Posted 1.1 release candidate tools

Michael Sweet via ipp <> Thu, 21 May 2020 15:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 883CD3A0D14 for <>; Thu, 21 May 2020 08:18:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.899
X-Spam-Status: No, score=-2.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MAILING_LIST_MULTI=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 3HN1Sr1O3yAm for <>; Thu, 21 May 2020 08:18:33 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 6B9BB3A0D08 for <>; Thu, 21 May 2020 08:18:33 -0700 (PDT)
Received: by (Postfix, from userid 1002) id 595189303; Thu, 21 May 2020 15:18:28 +0000 (UTC)
Received: from (localhost [IPv6:::1]) by (Postfix) with ESMTP id 7C1AD2491; Thu, 21 May 2020 15:18:25 +0000 (UTC)
Received: by (Postfix, from userid 1002) id EFAA03A8E; Thu, 21 May 2020 15:18:24 +0000 (UTC)
Received: from ( []) by (Postfix) with ESMTP id 9B66F477; Thu, 21 May 2020 15:18:24 +0000 (UTC)
Received: from imacpro.lan ( []) by (Postfix) with ESMTPSA id 04AF382117; Thu, 21 May 2020 15:18:23 +0000 (UTC)
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.\))
In-Reply-To: <>
Date: Thu, 21 May 2020 11:18:22 -0400
Message-Id: <>
References: <> <> <> <> <>
To: "Kennedy, Smith (Wireless & IPP Standards)" <>
X-Mailer: Apple Mail (2.3608.
Cc: PWG IPP Workgroup <>, PWG IPP Everywhere Self-Certification Reflector <>
Subject: Re: [IPP] Posted 1.1 release candidate tools
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: ISTO-PWG Internet Printing Protocol workgroup discussion forum <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
From: Michael Sweet via ipp <>
Reply-To: Michael Sweet <>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: "ipp" <>


> On May 21, 2020, at 10:46 AM, Kennedy, Smith (Wireless & IPP Standards) <> wrote:
>>> ...
>>> These tests (for requested-attributes='printer-description' and ='job-template') were added because the non-conformance to STD92 was causing problems with getting full IPP Everywhere support working in CUPS.
>>> I'd like to know what the failures were - too many attributes returned, too few? Too many isn't a serious interoperability issue - might lead to some laziness on the Client side but testing will catch that - but too few prevents Clients from working which *is* a serious interoperability issue...
>> I'll look into this - more soon.
> OK, so the "job-template" returns basically nothing other than "attributes-charset" and "attributes-natural-language", which seems too few. 😞 It seems the firmware is equating 'job-template' with 'none' and 'printer-description' with 'all'.

I'm happy with relaxing the tests to allow 'all' behavior for group names (lazy, but not an issue for interoperability and an implementation choice I made early in CUPS history and later updated to Do The Right Thing...), but clearly the printer thinks 'job-template' is an attribute name and is filtering out all attributes except 'job-template'... :/

The current expectation (based on the RFC text that dates back to IPP/1.0) is that 'job-template' will return all of the 'xxx-default', 'xxx-ready', and 'xxx-supported' Printer attributes that correspond to the supported Job Template attributes for the printer.


The current ad-hoc best practice (as implemented by CUPS and cups-filters) is to send "requested-attributes"='all','media-col-database' as an IPP/2.0 request and then (if that fails) send "requested-attributes"='all' as an IPP/1.1 request and deal with the lack of "media-col-database" information...

When monitoring status, CUPS (and others) typically provide a list of (status) attributes they require, and largely that seems to work with most printers.

So at the very least we need to make sure that 'all','media-col-database' works, as well as requests for specific attributes.  I would also like to see that 'printer-description' and 'job-template' work (to the extent that they return at least the corresponding attributes without an error if they return more), although perhaps we could provide automatic exceptions (i.e. not treat them as hard failures) for some period of time (perhaps for products released through the middle of 2021?) since they are not as critical to interoperability with existing Clients?

Michael Sweet

ipp mailing list