> On May 21, 2020, at 10:46 AM, Kennedy, Smith (Wireless & IPP Standards) <smith.kennedy at hp.com> 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?