Subject: [IPP] Apple has reviewed the IPP Scan Service specification and has comments

From: Michael Sweet <[email-masked]>
Date: Thu, 10 Jul 2014 11:54:17 -0400

General comment: The IPP content is solid, everything is editorial.  The Bonjour content needs to be reworked to just show the additions for a printer that supports scanning, and then say something about standalone scanners.

Detailed comments:

- The document is not using the current PWG template (wrong fonts at least, some strange indentations of headers)
- Global: Fix page headers - date is wrapping to a second line
- Global: "ith" should have the "th" superscripted
- Global: "Client(s)" instead of "client(s)"
- Global: "Document(s)" instead of "document(s)"
- Global: "End User" instead of "end user"
- Global: "Job(s)" instead of "job(s)"
- Global: The references to RFC 2616 need to be updated to RFC 7230
- Global: Enumeration names (idle, processing, stopped, client-error-xxx, etc.) in single quotes (or not; just be consistent)
- Global: One space after a period, not two.
- Global: Tables should use "Medium List 1 - Accent 1" style, alternating rows, header row in bold, cells using Normal style (single line spacing)
- Global: Notes under tables should use the List Paragraph style
- Global: "URL scheme(s) should be "URI scheme(s)
- Section 2.2, line 207: (Job Description definition) "prorvide" should be "provide"
- Section 2.2, lines 210-212: (Job Status definition) "automata" should be "service", "These attributes are not directly modified" should end with "but can be affected indirectly through Client-initiate operations" (or something like that), and there is no formal definition of Job Status in 2911, although the concept of READ-ONLY attributes was introduced in RFC 3380
- Section 2.2, line 224: (Output Image definition) "number-up" instead of "n-up"
- Section 2.2, line 231: (IPP Scan Service definition) Either move up alphabetically or just use "Scan Service" (since we rarely say "IPP Client" or "IPP Printer" unless there is a reason to use "IPP" on the front...)
- Section 3.1, line 251: "Tin order to" should be "In order to"
- Section 3.1, line 252: Missing comma between "industry" and "there"
- Section 3.1, line 253: Missing paragraph break after period. ("The Internet Printing Protocol ..." should start a new paragraph)
- Section 3.1, line 259: Missing "a" between "defines" and "simple" (The PWG Raster Format defines A simple page-based raster format."
- Section 3.2.3, line 281: "Since there is several" should be "Since there ARE several"
- Section 3.2.3, line 285: "determine if ... were ..." should be "determine whether ... have been ..." to match tense and be correct English
- Section 3.2.4: There should be an intervening Section 3.3 Exceptions, with 3.2.4 and 3.2.5 being Exceptions to the use cases
- Section 3.2.4, line 291: "determine if the scanned documents were delivered ..." should be "determine WHETHER the scanned Documents WERE NOT delivered ..."
- Section 3.2.5, line 299: "and check if the ..." should be "and WHETHER the ..."
- Section 3.3, lines 302-307: Wrong indentation of numbered list (should be numbers, not letters)
- Section 3.4, lines 311-324: Wrong indentation of numbered list (should be numbers, not letters, and one level)
- Section 3.4, line 315: "can stream" -> "needs to support streaming of"
- Section 4.1, line 345: Missing comma after "Just as with printing"
- Section 4.1.1, lines 353-354: Missing references for PDF and OpenXPS
- Section 4.1.2, line 364: Missing reference for PWG Raster
- Section 4.1.4, lines 392-393: Should be "job-state-reasons" (in quotes), not "job state reasons"
- Section 4.2, line 418: Drop reference to Send-Document (not a supported operation), just list Create-Job and Get-Next-Document-Images (hyphenated)
- Section 4.2, lines 422-427: Remove extra blank lines
- Section 4.3 and Table 2: Split into separate Printer Description and Printer Status attributes sections. See http://www.pwg.org/ipp/ipp-registrations.xml for a list of Printer Status attributes
- Table 2: "ipp-extensions-supported" should be "ipp-features-supported", "multiple-operation-timeout" should be "multiple-operation-time-out", "multiple-operation-timeout-action" should be "multiple-operation-time-out-action", "Printer-current-time" should be "printer-current-time" (no caps), remove pwg-raster-document-xxx since PWG Raster is not required
- Section 4.3, lines 432-438: Fix spacing
- Table 3: "document-format-version" should not be required.
- Table 5: "job-originating-user-name" is READ-ONLY so it shouldn't be listed here
- Section 4.7, line 461: Missing space between "Table 6" and "lists"
- Table 6: Remove blank row at top, "input-attribute-actual" should be "input-attributes-actual", add "job-originating-user-uri"
- Figure 1: Really fuzzy, can we get a higher-resolution version?
- Section 6.1, lines 478-479: You already said the operation is required, drop the sentence "IPP Scan Services MUST support this operation."
- Section 6.1, line 481: "delivered int the response" should be "delivered IN the response"
- Section 6.1, line 482: "support chunked encoding" should be "support the "chunked" Transfer-Encoding in the response.
- Section 6.1.1: Did we not want to include "compression-accepted"?
- Section 6.1.1, line 507: Missing "(boolean)" for attribute.
- Section 6.1.2: If we include "compression-accepted" in the request, then "compression" needs to be returned in the response.
- Section 6.1.2, line 525: Missing "(integer)" for next-image-get-interval.
- Section 6.1.2, lines 526-533: Too much copy/paste from RFC 3996; events -> document image data
- Section 6.1.2, line 535: Missing "(boolean)" for last-document
- Section 6.1.2, line 544: "accept a chunked response" should be "accept a response using the "chunked" Transfer-Encoding."
- Section 7, line 545: "Amended Operation" -> "Additional Semantics for Existing Operations"
- Section 7.1.1, line 566: Target is incorrect, Create-Job just takes a "printer-uri" (no job-id exists)
- Section 7.1.1, line 567-569: "IPP Attribute Fidelity", should also mention "job-mandatory-attributes (1setOf type2 keyword)"
- Section 7.1.1, do we want to include "compression-accepted"?
- Section 7.1.1, line 571: type goes inside quotes, "document-format-accepted (1setOf mimeMediatype)"
- Section 7.1.1, line 586: Remove extra whitespace
- Section 7.1.2, lines 588-589: Change to "The Create-Job response is the same as defined in section 3.2.4 of [RFC2911]."
- Section 8.1.1, lines 605-606: Remove extra whitespace
- Section 8.1.1.5, line 643: "MUST provide an out-of-band method"? "MUST provide an implementation-defined method"?
- Section 8.1.2, line 645: "document-format-accepted (1setOf mimeMediaType)" (no quotes, no "1 set of")
- Section 8.1.2, line 650: "document-format-default" Printer attribute.
- Section 8.1.2, line 651: Remove extra whitespace
- Section 8.1.3, line 653: "block waiting for the response", reword as "wait for additional document image data"?
- Section 8.1.3, line 655: Remove period between "attribute" and "as", embed the text from RFC 3996 here with proper rewording, as it will probably be confusing to normatively reference an event notifications spec for scan.
- Section 8.1.4, line 657-659: Just "REQUIRED", drop unnecessary second sentence.
- Section 8.1.4, line 663: Remove extra whitespace
- Section 8.1.4, Lines 664-666: Replace with reference to definition of "input-attributes" in IPP FaxOut.
- Section 8.1.4.1: Move to section 9
- Table 7: Fill in color mode for all (W/K for monochrome/bi-level, RGB for color, RGB or W/K for auto, RGBA for rgba_xxx
- Table 7: "Varies" for any unspecified bits-per-pixel/color
- Table 7: Delete duplicate bi-level row
- Section 8.1.5, lines 679-686: More RFC 3996 cut/paste issues; "event" -> "document image data"
- Section 8.1.6, lines 688-689: Is this OPTIONAL or REQUIRED? Say what it is, just once.
- Section 8.1.6, line 690: Remove extra whitespace
- Section 8.1.6.1, lines 694-695: JPEG is always lossy (lossless JPEG is completely different). Also, JPEG quality factor 100 is best/largest, right?
- Section 8.2, lines 705-: I don't think we need to reference the Job Template attributes again (already in section 4)
- Section 8.2.1: Need to say "Scan Services that support Push Scanning MUST support this attribute." as the second sentence. The third sentence can then be "Clients MUST specify this attribute for a Push Scan and MUST NOT specify this attribute for a Pull Scan."
- Section 8.2.1, line 712: Add "Scan Services MUST reject Create-Job requests using the ... URI schemes."
- Section 8.2.1.1, line 714: "The OPTIONAL "destination-attributes" Job Template attribute ..."
- Section 8.2.1.1, lines 717-718: Double quotes around attribute names, fix "job-password-encryption"
- Section 8.3: No need to reference the Job Status attributes again (already in section 4)
- Section 8.4: No need to reference the Printer Description attributes again (already in section 4)
- Section 8.4.2, line 733: Might as well include "dav" here since you called it out previously
- Section 8.4.3.5, lines 757-758: Double quotes around attribute names, fix "job-password-encryption"
- Section 8.4.3.5, line 759: Missing period at end.
- Section 8.4.3.6, line 760: "1setOf type2 keyword"
- Section 8.4.3.6, line 761: "The OPTIONAL "destination-attributes-supported" member attribute"...
- Section 8.4.3.7, line 769: "MUST be supplied in the "destination-accesses" operation attribute in a Job Creation ..."
- Section 8.4.3.7, line 770: Remove extra whitespace
- Section 8.4.5, line 775: "1setOf type2 keyword"
- Section 8.4.5, line 776: Drop "IPP" in front of Printer
- Section 8.4.5, lines 777-778: Add section reference to "output-attributes", "IPP Scan Services that support the "output-attributes" operation attribute MUST support this attribute."
- Section 8.4.5, line 779: Remove extra whitespace
- Section 8.5.1: Since "job-spooling-supported" is a Printer Description attribute, this should also be one
- Section 8.5.1, line 781: Lowercase the "j" in title
- Section 8.5.1, line 785: ""document-format" OPERATION attribute"
- Section 8.5.1, line 787: Leading period on line???
- Section 8.5.1, line 789: Just "[RFC3380]" if you want a reference, no need to be verbose
- Section 8.5.1, line 791-: Use a list paragraph for keyword values: "'keyword'; definition"
- Section 8.6.1, 8.6.2: No need to reference 5100.8 for what a Document Description attribute is.
- Table 8: Remove blank row
- Section 10: This needs to be re-worked. The Bonjour Printing specification makes the Print service the primary. Most of the TXT record key/value pairs describe the Print service, not the Scan service. And there is no consideration for default values (which often allows you to omit many of the key/value pairs). This should just be the additions to the existing print registration - standalone scanners can fill in the TXT key/values normally supplied by the Print service.
- Section 10.1: Also "Scanners that support TLS MUST ALSO register the "_ipps._tcp,_scan" service type, i.e., IPPS type and scan subtype.
- Section 10.1, line 822: Drop "IPP" from specification.
- Section 10.2: Drop
- Table 9: Limit to rs, TMA, ADF, and Scan2, sort alphabetically, include default values ("ipp/scan" for rs)
- Section 10.3.1, 10.3.1.1, 10.3.1.2, 10.3.1.3, 10.3.1.5, 10.3.1.6, 10.3.1.7: Drop, all incorrect and guaranteed to cause problems
- Section 10.3.4: "IPP-SE URL"? Default is "ipp/scan", per requirements on printer-uri previously in this spec, examples should only show "ipp/scan" and "ipp/scan/queue" forms, drop cut/paste text using "rp"
- Section 10.3.x: Examples should use Example style (indented, monospace)
- Section 11, line 911: Trailing "002E"
- Section 11.1: Break into separate client and printer/scan service requirements
- Section 11.1: Drop all sub-items of #2 (that is enough to capture requirements); you can break that up into the Get-Next-Document-Images operation and the Additional semantics of the Create-Job operation if you like
- Section 11.2: All top-level numbered list
- Section 12: Fix list - numbered and indented once
- Section 13: Add reference to security consideration in 5108.02
- Section 13.1, 13.2: Drop as these come from 5108.02
- Section 14.1, line 990: "input-attributes" should be "output-attributes", defined in 5100.SCAN
- Section 14.1, lines 1004, 1009: Extra space after name
- Section 14.1, line 1010: Missing "type2" for "destination-attributes-supported"
- Section 14.1, line 1011: Missing "1setOf type2 keyword" for "destination-mandatory-access-attributes"
- Section 14.1, line 1012: Delete "output-compression-quality-factor-default"
- Section 14.1, line 1016: Delete "noise-removal-default"
- Section 14.1, line 1018: Add "output-attributes-default (collection | no-value)" and "output-attributes-supported (1setOf type2 keyword)"
- Section 14.4: Add "Create-Job (extension)"
- Section 15.1: Fix BONJOUR reference: https://developer.apple.com/bonjour/printing-specification/bonjourprinting-1.2.pdf, July 10, 2013
- Section 15.1: Line 1090: MMDD should be 0214
- Section 15.1: PWG5102.3, RFC1494, RFC1738, RFC2045, RFC2817, RFC3996: Drop (no references)
- Section 15.1: RFC2616 has been replaced by RFC7230-RFC7237 (7230 should be enough)
- Section 15.1, lines 1143-1145: Drop duplicate reference to RFC3380
- Section 15.1, lines 1158-1159: Drop duplicate reference to RFC6749
- Section 15.1: Extra spaces at start of some lines
- Section 15.2, line 1172: Use "http://tools.ietf.org/html/draft-mcdonald-ipps-uri-scheme" as link to current draft, no date
- Section 16: Use address style, list Pete and then Mike (no side-by-side), list contributors using Address style, separate line per person

_________________________________________________________
Michael Sweet, Senior Printing System Engineer, PWG Chair

_______________________________________________
ipp mailing list
[email-masked]
https://www.pwg.org/mailman/listinfo/ipp