| rfc8011.txt | rfc8011-sweet.txt | |||
|---|---|---|---|---|
| skipping to change at page 2, line 29 | skipping to change at page 2, line 29 | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 1.1. Simplified Printing Model . . . . . . . . . . . . . . . . 11 | 1.1. Simplified Printing Model . . . . . . . . . . . . . . . . 11 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 13 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 13 | |||
| 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 13 | 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 13 | |||
| 2.2. Printing Terminology . . . . . . . . . . . . . . . . . . 14 | 2.2. Printing Terminology . . . . . . . . . . . . . . . . . . 14 | |||
| 2.3. Model Terminology . . . . . . . . . . . . . . . . . . . . 14 | 2.3. Model Terminology . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.3.1. Administrator . . . . . . . . . . . . . . . . . . . . 14 | 2.3.1. Administrator . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.3.2. Attributes . . . . . . . . . . . . . . . . . . . . . 14 | 2.3.2. Attributes . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 2.3.2.1. Attribute Group Name . . . . . . . . . . . . . . 15 | 2.3.2.1. Attribute Group Name . . . . . . . . . . . . . . 15 | |||
| 2.3.2.2. Attribute Name . . . . . . . . . . . . . . . . . 15 | 2.3.2.2. Attribute Name . . . . . . . . . . . . . . . . . 15 | |||
| 2.3.2.3. Attribute Syntax . . . . . . . . . . . . . . . . 15 | 2.3.2.3. Attribute Syntax . . . . . . . . . . . . . . . . 15 | |||
| 2.3.2.4. Attribute Value . . . . . . . . . . . . . . . . . 15 | 2.3.2.4. Attribute Value . . . . . . . . . . . . . . . . . 15 | |||
| 2.3.3. End User . . . . . . . . . . . . . . . . . . . . . . 15 | 2.3.3. End User . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.4. Impression . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.4. Impression . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.5. Input Page . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.5. Input Page . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.6. Job Creation Operation . . . . . . . . . . . . . . . 16 | 2.3.6. Job Creation Operation . . . . . . . . . . . . . . . 16 | |||
| 2.3.7. Keyword . . . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.7. Keyword . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.8. Media Sheet . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.8. Media Sheet . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.9. Operator . . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.9. Operator . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.10. Set . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 2.3.10. Set . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 2.3.11. Support of Attributes . . . . . . . . . . . . . . . . 17 | 2.3.11. Support of Attributes . . . . . . . . . . . . . . . . 17 | |||
| 2.3.12. Terminating State . . . . . . . . . . . . . . . . . . 19 | 2.3.12. Terminating State . . . . . . . . . . . . . . . . . . 19 | |||
| 2.4. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 19 | 2.4. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 3. IPP Objects . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 3. IPP Objects . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 3.1. Printer Object . . . . . . . . . . . . . . . . . . . . . 21 | 3.1. Printer Object . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 3.2. Job Object . . . . . . . . . . . . . . . . . . . . . . . 23 | 3.2. Job Object . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3.3. Object Relationships . . . . . . . . . . . . . . . . . . 24 | 3.3. Object Relationships . . . . . . . . . . . . . . . . . . 24 | |||
| 3.4. Object Identity . . . . . . . . . . . . . . . . . . . . . 25 | 3.4. Object Identity . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4. IPP Operations . . . . . . . . . . . . . . . . . . . . . . . 27 | 4. IPP Operations . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 4.1. Common Semantics . . . . . . . . . . . . . . . . . . . . 29 | 4.1. Common Semantics . . . . . . . . . . . . . . . . . . . . 29 | |||
| 4.1.1. Required Parameters . . . . . . . . . . . . . . . . . 29 | 4.1.1. Required Parameters . . . . . . . . . . . . . . . . . 29 | |||
| 4.1.2. Operation IDs and Request IDs . . . . . . . . . . . . 29 | 4.1.2. Operation IDs and Request IDs . . . . . . . . . . . . 29 | |||
| 4.1.3. Attributes . . . . . . . . . . . . . . . . . . . . . 30 | 4.1.3. Attributes . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 4.1.4. Character Set and Natural Language Operation | 4.1.4. Character Set and Natural Language Operation | |||
| Attributes . . . . . . . . . . . . . . . . . . . . . 32 | Attributes . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.1.4.1. Request Operation Attributes . . . . . . . . . . 33 | 4.1.4.1. Request Operation Attributes . . . . . . . . . . 33 | |||
| 4.1.4.2. Response Operation Attributes . . . . . . . . . . 37 | 4.1.4.2. Response Operation Attributes . . . . . . . . . . 37 | |||
| 4.1.5. Operation Targets . . . . . . . . . . . . . . . . . . 38 | 4.1.5. Operation Targets . . . . . . . . . . . . . . . . . . 38 | |||
| 4.1.6. Operation Response Status-Codes and Status Messages . 39 | 4.1.6. Operation Response Status-Code Values and Status | |||
| Messages . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 4.1.6.1. "status-code" (type2 enum) . . . . . . . . . . . 40 | 4.1.6.1. "status-code" (type2 enum) . . . . . . . . . . . 40 | |||
| 4.1.6.2. "status-message" (text(255)) . . . . . . . . . . 41 | 4.1.6.2. "status-message" (text(255)) . . . . . . . . . . 41 | |||
| 4.1.6.3. "detailed-status-message" (text(MAX)) . . . . . . 42 | 4.1.6.3. "detailed-status-message" (text(MAX)) . . . . . . 42 | |||
| 4.1.6.4. "document-access-error" (text(MAX)) . . . . . . . 42 | 4.1.6.4. "document-access-error" (text(MAX)) . . . . . . . 42 | |||
| 4.1.7. Unsupported Attributes . . . . . . . . . . . . . . . 42 | 4.1.7. Unsupported Attributes . . . . . . . . . . . . . . . 42 | |||
| 4.1.8. Versions . . . . . . . . . . . . . . . . . . . . . . 44 | 4.1.8. Versions . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 4.1.9. Job Creation Operations . . . . . . . . . . . . . . . 46 | 4.1.9. Job Creation Operations . . . . . . . . . . . . . . . 46 | |||
| 4.2. Printer Operations . . . . . . . . . . . . . . . . . . . 49 | 4.2. Printer Operations . . . . . . . . . . . . . . . . . . . 49 | |||
| 4.2.1. Print-Job Operation . . . . . . . . . . . . . . . . . 49 | 4.2.1. Print-Job Operation . . . . . . . . . . . . . . . . . 49 | |||
| 4.2.1.1. Print-Job Request . . . . . . . . . . . . . . . . 49 | 4.2.1.1. Print-Job Request . . . . . . . . . . . . . . . . 49 | |||
| skipping to change at page 4, line 26 | skipping to change at page 4, line 28 | |||
| 5.1.3.2. 'nameWithLanguage' . . . . . . . . . . . . . . . 93 | 5.1.3.2. 'nameWithLanguage' . . . . . . . . . . . . . . . 93 | |||
| 5.1.3.3. Matching 'name' Attribute Values . . . . . . . . 94 | 5.1.3.3. Matching 'name' Attribute Values . . . . . . . . 94 | |||
| 5.1.4. 'keyword' . . . . . . . . . . . . . . . . . . . . . . 95 | 5.1.4. 'keyword' . . . . . . . . . . . . . . . . . . . . . . 95 | |||
| 5.1.5. 'enum' . . . . . . . . . . . . . . . . . . . . . . . 96 | 5.1.5. 'enum' . . . . . . . . . . . . . . . . . . . . . . . 96 | |||
| 5.1.6. 'uri' . . . . . . . . . . . . . . . . . . . . . . . . 96 | 5.1.6. 'uri' . . . . . . . . . . . . . . . . . . . . . . . . 96 | |||
| 5.1.7. 'uriScheme' . . . . . . . . . . . . . . . . . . . . . 96 | 5.1.7. 'uriScheme' . . . . . . . . . . . . . . . . . . . . . 96 | |||
| 5.1.8. 'charset' . . . . . . . . . . . . . . . . . . . . . . 97 | 5.1.8. 'charset' . . . . . . . . . . . . . . . . . . . . . . 97 | |||
| 5.1.9. 'naturalLanguage' . . . . . . . . . . . . . . . . . . 98 | 5.1.9. 'naturalLanguage' . . . . . . . . . . . . . . . . . . 98 | |||
| 5.1.10. 'mimeMediaType' . . . . . . . . . . . . . . . . . . . 99 | 5.1.10. 'mimeMediaType' . . . . . . . . . . . . . . . . . . . 99 | |||
| 5.1.10.1. 'application/octet-stream' - Auto-Sensing the | 5.1.10.1. 'application/octet-stream' - Auto-Sensing the | |||
| Document Format . . . . . . . . . . . . . . . . 100 | Document Format . . . . . . . . . . . . . . . . 99 | |||
| 5.1.11. 'octetString' . . . . . . . . . . . . . . . . . . . . 101 | 5.1.11. 'octetString' . . . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.12. 'boolean' . . . . . . . . . . . . . . . . . . . . . . 101 | 5.1.12. 'boolean' . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.13. 'integer' . . . . . . . . . . . . . . . . . . . . . . 101 | 5.1.13. 'integer' . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.14. 'rangeOfInteger' . . . . . . . . . . . . . . . . . . 101 | 5.1.14. 'rangeOfInteger' . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.15. 'dateTime' . . . . . . . . . . . . . . . . . . . . . 101 | 5.1.15. 'dateTime' . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.16. 'resolution' . . . . . . . . . . . . . . . . . . . . 102 | 5.1.16. 'resolution' . . . . . . . . . . . . . . . . . . . . 101 | |||
| 5.1.17. 'collection' . . . . . . . . . . . . . . . . . . . . 102 | 5.1.17. 'collection' . . . . . . . . . . . . . . . . . . . . 102 | |||
| 5.1.18. '1setOf X' . . . . . . . . . . . . . . . . . . . . . 102 | 5.1.18. '1setOf X' . . . . . . . . . . . . . . . . . . . . . 102 | |||
| 5.2. Job Template Attributes . . . . . . . . . . . . . . . . . 103 | 5.2. Job Template Attributes . . . . . . . . . . . . . . . . . 103 | |||
| 5.2.1. job-priority (integer(1:100)) . . . . . . . . . . . . 106 | 5.2.1. job-priority (integer(1:100)) . . . . . . . . . . . . 106 | |||
| 5.2.2. job-hold-until (type2 keyword | name(MAX)) . . . . . 107 | 5.2.2. job-hold-until (type2 keyword | name(MAX)) . . . . . 107 | |||
| 5.2.3. job-sheets (type2 keyword | name(MAX)) . . . . . . . 109 | 5.2.3. job-sheets (type2 keyword | name(MAX)) . . . . . . . 108 | |||
| 5.2.4. multiple-document-handling (type2 keyword) . . . . . 109 | 5.2.4. multiple-document-handling (type2 keyword) . . . . . 109 | |||
| 5.2.5. copies (integer(1:MAX)) . . . . . . . . . . . . . . . 111 | 5.2.5. copies (integer(1:MAX)) . . . . . . . . . . . . . . . 110 | |||
| 5.2.6. finishings (1setOf type2 enum) . . . . . . . . . . . 111 | 5.2.6. finishings (1setOf type2 enum) . . . . . . . . . . . 111 | |||
| 5.2.7. page-ranges (1setOf rangeOfInteger(1:MAX)) . . . . . 114 | 5.2.7. page-ranges (1setOf rangeOfInteger(1:MAX)) . . . . . 114 | |||
| 5.2.8. sides (type2 keyword) . . . . . . . . . . . . . . . . 115 | 5.2.8. sides (type2 keyword) . . . . . . . . . . . . . . . . 115 | |||
| 5.2.9. number-up (integer(1:MAX)) . . . . . . . . . . . . . 116 | 5.2.9. number-up (integer(1:MAX)) . . . . . . . . . . . . . 115 | |||
| 5.2.10. orientation-requested (type2 enum) . . . . . . . . . 116 | 5.2.10. orientation-requested (type2 enum) . . . . . . . . . 116 | |||
| 5.2.11. media (type2 keyword | name(MAX)) . . . . . . . . . . 118 | 5.2.11. media (type2 keyword | name(MAX)) . . . . . . . . . . 117 | |||
| 5.2.12. printer-resolution (resolution) . . . . . . . . . . . 119 | 5.2.12. printer-resolution (resolution) . . . . . . . . . . . 118 | |||
| 5.2.13. print-quality (type2 enum) . . . . . . . . . . . . . 119 | 5.2.13. print-quality (type2 enum) . . . . . . . . . . . . . 119 | |||
| 5.3. Job Description and Status Attributes . . . . . . . . . . 119 | 5.3. Job Description and Status Attributes . . . . . . . . . . 119 | |||
| 5.3.1. job-id (integer(1:MAX)) . . . . . . . . . . . . . . . 121 | 5.3.1. job-id (integer(1:MAX)) . . . . . . . . . . . . . . . 121 | |||
| 5.3.2. job-uri (uri) . . . . . . . . . . . . . . . . . . . . 121 | 5.3.2. job-uri (uri) . . . . . . . . . . . . . . . . . . . . 121 | |||
| 5.3.3. job-printer-uri (uri) . . . . . . . . . . . . . . . . 122 | 5.3.3. job-printer-uri (uri) . . . . . . . . . . . . . . . . 122 | |||
| 5.3.4. job-more-info (uri) . . . . . . . . . . . . . . . . . 122 | 5.3.4. job-more-info (uri) . . . . . . . . . . . . . . . . . 122 | |||
| 5.3.5. job-name (name(MAX)) . . . . . . . . . . . . . . . . 122 | 5.3.5. job-name (name(MAX)) . . . . . . . . . . . . . . . . 122 | |||
| 5.3.6. job-originating-user-name (name(MAX)) . . . . . . . . 122 | 5.3.6. job-originating-user-name (name(MAX)) . . . . . . . . 122 | |||
| 5.3.7. job-state (type1 enum) . . . . . . . . . . . . . . . 123 | 5.3.7. job-state (type1 enum) . . . . . . . . . . . . . . . 123 | |||
| 5.3.7.1. Forwarding Servers . . . . . . . . . . . . . . . 126 | 5.3.7.1. Forwarding Servers . . . . . . . . . . . . . . . 125 | |||
| 5.3.7.2. Partitioning of Job States . . . . . . . . . . . 126 | 5.3.7.2. Partitioning of Job States . . . . . . . . . . . 126 | |||
| 5.3.8. job-state-reasons (1setOf type2 keyword) . . . . . . 127 | 5.3.8. job-state-reasons (1setOf type2 keyword) . . . . . . 127 | |||
| 5.3.9. job-state-message (text(MAX)) . . . . . . . . . . . . 132 | 5.3.9. job-state-message (text(MAX)) . . . . . . . . . . . . 131 | |||
| 5.3.10. job-detailed-status-messages (1setOf text(MAX)) . . . 132 | 5.3.10. job-detailed-status-messages (1setOf text(MAX)) . . . 132 | |||
| 5.3.11. job-document-access-errors (1setOf text(MAX)) . . . . 132 | 5.3.11. job-document-access-errors (1setOf text(MAX)) . . . . 132 | |||
| 5.3.12. number-of-documents (integer(0:MAX)) . . . . . . . . 133 | 5.3.12. number-of-documents (integer(0:MAX)) . . . . . . . . 132 | |||
| 5.3.13. output-device-assigned (name(127)) . . . . . . . . . 133 | 5.3.13. output-device-assigned (name(127)) . . . . . . . . . 133 | |||
| 5.3.14. Event Time Job Status Attributes . . . . . . . . . . 133 | 5.3.14. Event Time Job Status Attributes . . . . . . . . . . 133 | |||
| 5.3.14.1. time-at-creation (integer(MIN:MAX)) . . . . . . 134 | 5.3.14.1. time-at-creation (integer(MIN:MAX)) . . . . . . 134 | |||
| 5.3.14.2. time-at-processing (integer(MIN:MAX)) . . . . . 134 | 5.3.14.2. time-at-processing (integer(MIN:MAX)) . . . . . 134 | |||
| 5.3.14.3. time-at-completed (integer(MIN:MAX)) . . . . . . 134 | 5.3.14.3. time-at-completed (integer(MIN:MAX)) . . . . . . 134 | |||
| 5.3.14.4. job-printer-up-time (integer(1:MAX)) . . . . . . 134 | 5.3.14.4. job-printer-up-time (integer(1:MAX)) . . . . . . 134 | |||
| 5.3.14.5. date-time-at-creation (dateTime) . . . . . . . . 135 | 5.3.14.5. date-time-at-creation (dateTime|unknown) . . . . 134 | |||
| 5.3.14.6. date-time-at-processing (dateTime) . . . . . . . 135 | 5.3.14.6. date-time-at-processing (dateTime|unknown|no- | |||
| 5.3.14.7. date-time-at-completed (dateTime) . . . . . . . 135 | value) . . . . . . . . . . . . . . . . . . . . . 135 | |||
| 5.3.14.7. date-time-at-completed (dateTime|unknown|no- | ||||
| value) . . . . . . . . . . . . . . . . . . . . . 135 | ||||
| 5.3.15. number-of-intervening-jobs (integer(0:MAX)) . . . . . 135 | 5.3.15. number-of-intervening-jobs (integer(0:MAX)) . . . . . 135 | |||
| 5.3.16. job-message-from-operator (text(127)) . . . . . . . . 135 | 5.3.16. job-message-from-operator (text(127)) . . . . . . . . 135 | |||
| 5.3.17. Job Size Attributes . . . . . . . . . . . . . . . . . 135 | 5.3.17. Job Size Attributes . . . . . . . . . . . . . . . . . 135 | |||
| 5.3.17.1. job-k-octets (integer(0:MAX)) . . . . . . . . . 136 | 5.3.17.1. job-k-octets (integer(0:MAX)) . . . . . . . . . 135 | |||
| 5.3.17.2. job-impressions (integer(0:MAX)) . . . . . . . . 136 | 5.3.17.2. job-impressions (integer(0:MAX)) . . . . . . . . 136 | |||
| 5.3.17.3. job-media-sheets (integer(0:MAX)) . . . . . . . 137 | 5.3.17.3. job-media-sheets (integer(1:MAX)) . . . . . . . 136 | |||
| 5.3.18. Job Progress Attributes . . . . . . . . . . . . . . . 137 | 5.3.18. Job Progress Attributes . . . . . . . . . . . . . . . 137 | |||
| 5.3.18.1. job-k-octets-processed (integer(0:MAX)) . . . . 137 | 5.3.18.1. job-k-octets-processed (integer(0:MAX)) . . . . 137 | |||
| 5.3.18.2. job-impressions-completed (integer(0:MAX)) . . . 137 | 5.3.18.2. job-impressions-completed (integer(0:MAX)) . . . 137 | |||
| 5.3.18.3. job-media-sheets-completed (integer(0:MAX)) . . 138 | 5.3.18.3. job-media-sheets-completed (integer(0:MAX)) . . 137 | |||
| 5.3.19. attributes-charset (charset) . . . . . . . . . . . . 138 | 5.3.19. attributes-charset (charset) . . . . . . . . . . . . 137 | |||
| 5.3.20. attributes-natural-language (naturalLanguage) . . . . 138 | 5.3.20. attributes-natural-language (naturalLanguage) . . . . 138 | |||
| 5.4. Printer Description and Status Attributes . . . . . . . . 138 | 5.4. Printer Description and Status Attributes . . . . . . . . 138 | |||
| 5.4.1. printer-uri-supported (1setOf uri) . . . . . . . . . 141 | 5.4.1. printer-uri-supported (1setOf uri) . . . . . . . . . 140 | |||
| 5.4.2. uri-authentication-supported (1setOf type2 keyword) . 141 | 5.4.2. uri-authentication-supported (1setOf type2 keyword) . 141 | |||
| 5.4.3. uri-security-supported (1setOf type2 keyword) . . . . 142 | 5.4.3. uri-security-supported (1setOf type2 keyword) . . . . 142 | |||
| 5.4.4. printer-name (name(127)) . . . . . . . . . . . . . . 144 | 5.4.4. printer-name (name(127)) . . . . . . . . . . . . . . 143 | |||
| 5.4.5. printer-location (text(127)) . . . . . . . . . . . . 144 | 5.4.5. printer-location (text(127)) . . . . . . . . . . . . 143 | |||
| 5.4.6. printer-info (text(127)) . . . . . . . . . . . . . . 144 | 5.4.6. printer-info (text(127)) . . . . . . . . . . . . . . 144 | |||
| 5.4.7. printer-more-info (uri) . . . . . . . . . . . . . . . 144 | 5.4.7. printer-more-info (uri) . . . . . . . . . . . . . . . 144 | |||
| 5.4.8. printer-driver-installer (uri) . . . . . . . . . . . 144 | 5.4.8. printer-driver-installer (uri) . . . . . . . . . . . 144 | |||
| 5.4.9. printer-make-and-model (text(127)) . . . . . . . . . 145 | 5.4.9. printer-make-and-model (text(127)) . . . . . . . . . 144 | |||
| 5.4.10. printer-more-info-manufacturer (uri) . . . . . . . . 145 | 5.4.10. printer-more-info-manufacturer (uri) . . . . . . . . 144 | |||
| 5.4.11. printer-state (type1 enum) . . . . . . . . . . . . . 145 | 5.4.11. printer-state (type1 enum) . . . . . . . . . . . . . 145 | |||
| 5.4.12. printer-state-reasons (1setOf type2 keyword) . . . . 146 | 5.4.12. printer-state-reasons (1setOf type2 keyword) . . . . 145 | |||
| 5.4.13. printer-state-message (text(MAX)) . . . . . . . . . . 150 | 5.4.13. printer-state-message (text(MAX)) . . . . . . . . . . 149 | |||
| 5.4.14. ipp-versions-supported (1setOf type2 keyword) . . . . 150 | 5.4.14. ipp-versions-supported (1setOf type2 keyword) . . . . 150 | |||
| 5.4.15. operations-supported (1setOf type2 enum) . . . . . . 151 | 5.4.15. operations-supported (1setOf type2 enum) . . . . . . 150 | |||
| 5.4.16. multiple-document-jobs-supported (boolean) . . . . . 153 | 5.4.16. multiple-document-jobs-supported (boolean) . . . . . 152 | |||
| 5.4.17. charset-configured (charset) . . . . . . . . . . . . 153 | 5.4.17. charset-configured (charset) . . . . . . . . . . . . 152 | |||
| 5.4.18. charset-supported (1setOf charset) . . . . . . . . . 153 | 5.4.18. charset-supported (1setOf charset) . . . . . . . . . 152 | |||
| 5.4.19. natural-language-configured (naturalLanguage) . . . . 153 | 5.4.19. natural-language-configured (naturalLanguage) . . . . 152 | |||
| 5.4.20. generated-natural-language-supported (1setOf | 5.4.20. generated-natural-language-supported (1setOf | |||
| naturalLanguage) . . . . . . . . . . . . . . . . . . 154 | naturalLanguage) . . . . . . . . . . . . . . . . . . 153 | |||
| 5.4.21. document-format-default (mimeMediaType) . . . . . . . 154 | 5.4.21. document-format-default (mimeMediaType) . . . . . . . 153 | |||
| 5.4.22. document-format-supported (1setOf mimeMediaType) . . 154 | 5.4.22. document-format-supported (1setOf mimeMediaType) . . 153 | |||
| 5.4.23. printer-is-accepting-jobs (boolean) . . . . . . . . . 154 | 5.4.23. printer-is-accepting-jobs (boolean) . . . . . . . . . 153 | |||
| 5.4.24. queued-job-count (integer(0:MAX)) . . . . . . . . . . 155 | 5.4.24. queued-job-count (integer(0:MAX)) . . . . . . . . . . 154 | |||
| 5.4.25. printer-message-from-operator (text(127)) . . . . . . 155 | 5.4.25. printer-message-from-operator (text(127)) . . . . . . 154 | |||
| 5.4.26. color-supported (boolean) . . . . . . . . . . . . . . 155 | 5.4.26. color-supported (boolean) . . . . . . . . . . . . . . 154 | |||
| 5.4.27. reference-uri-schemes-supported (1setOf uriScheme) . 155 | 5.4.27. reference-uri-schemes-supported (1setOf uriScheme) . 154 | |||
| 5.4.28. pdl-override-supported (type2 keyword) . . . . . . . 156 | 5.4.28. pdl-override-supported (type2 keyword) . . . . . . . 155 | |||
| 5.4.29. printer-up-time (integer(1:MAX)) . . . . . . . . . . 156 | 5.4.29. printer-up-time (integer(1:MAX)) . . . . . . . . . . 155 | |||
| 5.4.30. printer-current-time (dateTime) . . . . . . . . . . . 157 | 5.4.30. printer-current-time (dateTime|unknown) . . . . . . . 156 | |||
| 5.4.31. multiple-operation-time-out (integer(1:MAX)) . . . . 157 | 5.4.31. multiple-operation-time-out (integer(1:MAX)) . . . . 156 | |||
| 5.4.32. compression-supported (1setOf type2 keyword) . . . . 158 | 5.4.32. compression-supported (1setOf type2 keyword) . . . . 157 | |||
| 5.4.33. job-k-octets-supported (rangeOfInteger(0:MAX)) . . . 158 | 5.4.33. job-k-octets-supported (rangeOfInteger(0:MAX)) . . . 157 | |||
| 5.4.34. job-impressions-supported (rangeOfInteger(0:MAX)) . . 158 | 5.4.34. job-impressions-supported (rangeOfInteger(0:MAX)) . . 157 | |||
| 5.4.35. job-media-sheets-supported (rangeOfInteger(0:MAX)) . 158 | 5.4.35. job-media-sheets-supported (rangeOfInteger(1:MAX)) . 157 | |||
| 5.4.36. pages-per-minute (integer(0:MAX)) . . . . . . . . . . 159 | 5.4.36. pages-per-minute (integer(0:MAX)) . . . . . . . . . . 158 | |||
| 5.4.37. pages-per-minute-color (integer(0:MAX)) . . . . . . . 159 | 5.4.37. pages-per-minute-color (integer(0:MAX)) . . . . . . . 158 | |||
| 6. Conformance . . . . . . . . . . . . . . . . . . . . . . . . . 159 | 6. Conformance . . . . . . . . . . . . . . . . . . . . . . . . . 159 | |||
| 6.1. Client Conformance Requirements . . . . . . . . . . . . . 160 | 6.1. Client Conformance Requirements . . . . . . . . . . . . . 159 | |||
| 6.2. IPP Object Conformance Requirements . . . . . . . . . . . 161 | 6.2. IPP Object Conformance Requirements . . . . . . . . . . . 160 | |||
| 6.2.1. Objects . . . . . . . . . . . . . . . . . . . . . . . 161 | 6.2.1. Objects . . . . . . . . . . . . . . . . . . . . . . . 160 | |||
| 6.2.2. Operations . . . . . . . . . . . . . . . . . . . . . 161 | 6.2.2. Operations . . . . . . . . . . . . . . . . . . . . . 161 | |||
| 6.2.3. IPP Object Attributes . . . . . . . . . . . . . . . . 163 | 6.2.3. IPP Object Attributes . . . . . . . . . . . . . . . . 162 | |||
| 6.2.4. Versions . . . . . . . . . . . . . . . . . . . . . . 163 | 6.2.4. Versions . . . . . . . . . . . . . . . . . . . . . . 163 | |||
| 6.2.5. Extensions . . . . . . . . . . . . . . . . . . . . . 164 | 6.2.5. Extensions . . . . . . . . . . . . . . . . . . . . . 163 | |||
| 6.2.6. Attribute Syntaxes . . . . . . . . . . . . . . . . . 164 | 6.2.6. Attribute Syntaxes . . . . . . . . . . . . . . . . . 163 | |||
| 6.2.7. Security . . . . . . . . . . . . . . . . . . . . . . 164 | 6.2.7. Security . . . . . . . . . . . . . . . . . . . . . . 164 | |||
| 6.3. Charset and Natural Language Requirements . . . . . . . . 165 | 6.3. Charset and Natural Language Requirements . . . . . . . . 164 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 165 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 165 | |||
| 7.1. Object Extensions . . . . . . . . . . . . . . . . . . . . 166 | 7.1. Object Extensions . . . . . . . . . . . . . . . . . . . . 166 | |||
| 7.2. Attribute Extensibility . . . . . . . . . . . . . . . . . 166 | 7.2. Attribute Extensibility . . . . . . . . . . . . . . . . . 166 | |||
| 7.3. Keyword Extensibility . . . . . . . . . . . . . . . . . . 167 | 7.3. Keyword Extensibility . . . . . . . . . . . . . . . . . . 167 | |||
| 7.4. Enum Extensibility . . . . . . . . . . . . . . . . . . . 168 | 7.4. Enum Extensibility . . . . . . . . . . . . . . . . . . . 167 | |||
| 7.5. Attribute Group Extensibility . . . . . . . . . . . . . . 168 | 7.5. Attribute Group Extensibility . . . . . . . . . . . . . . 168 | |||
| 7.6. Out-of-Band Attribute Value Extensibility . . . . . . . . 169 | 7.6. Out-of-Band Attribute Value Extensibility . . . . . . . . 168 | |||
| 7.7. Attribute Syntax Extensibility . . . . . . . . . . . . . 169 | 7.7. Attribute Syntax Extensibility . . . . . . . . . . . . . 168 | |||
| 7.8. Operation Extensibility . . . . . . . . . . . . . . . . . 169 | 7.8. Operation Extensibility . . . . . . . . . . . . . . . . . 169 | |||
| 7.9. Status-Code Extensibility . . . . . . . . . . . . . . . . 170 | 7.9. Status-Code Extensibility . . . . . . . . . . . . . . . . 169 | |||
| 8. Internationalization Considerations . . . . . . . . . . . . . 170 | 8. Internationalization Considerations . . . . . . . . . . . . . 170 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 174 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 174 | |||
| 9.1. Security Scenarios . . . . . . . . . . . . . . . . . . . 175 | 9.1. Security Scenarios . . . . . . . . . . . . . . . . . . . 175 | |||
| 9.1.1. Client and Server in the Same Security Domain . . . . 175 | 9.1.1. Client and Server in the Same Security Domain . . . . 175 | |||
| 9.1.2. Client and Server in Different Security Domains . . . 175 | 9.1.2. Client and Server in Different Security Domains . . . 175 | |||
| 9.1.3. Print by Reference . . . . . . . . . . . . . . . . . 176 | 9.1.3. Print by Reference . . . . . . . . . . . . . . . . . 175 | |||
| 9.2. URIs in Operation, Job, and Printer Attributes . . . . . 176 | 9.2. URIs in Operation, Job, and Printer Attributes . . . . . 176 | |||
| 9.3. URIs for Each Authentication Mechanism . . . . . . . . . 176 | 9.3. URIs for Each Authentication Mechanism . . . . . . . . . 176 | |||
| 9.4. Restricted Queries . . . . . . . . . . . . . . . . . . . 177 | 9.4. Restricted Queries . . . . . . . . . . . . . . . . . . . 177 | |||
| 9.5. Operations Performed by Operators and Administrators . . 178 | 9.5. Operations Performed by Operators and Administrators . . 177 | |||
| 9.6. Queries on Jobs Submitted Using Non-IPP Protocols . . . . 178 | 9.6. Queries on Jobs Submitted Using Non-IPP Protocols . . . . 178 | |||
| 10. Changes since RFC 2911 . . . . . . . . . . . . . . . . . . . 178 | 10. Changes since RFC 2911 . . . . . . . . . . . . . . . . . . . 178 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 180 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 179 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 180 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 179 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 185 | 11.2. Informative References . . . . . . . . . . . . . . . . . 185 | |||
| Appendix A. Formats for IPP Registration Proposals . . . . . . . 188 | Appendix A. Formats for IPP Registration Proposals . . . . . . . 187 | |||
| A.1. Attribute Registration . . . . . . . . . . . . . . . . . 188 | A.1. Attribute Registration . . . . . . . . . . . . . . . . . 188 | |||
| A.2. type2 'keyword' Attribute Value Registration . . . . . . 189 | A.2. type2 'keyword' Attribute Value Registration . . . . . . 188 | |||
| A.3. type2 'enum' Attribute Value Registration . . . . . . . . 190 | A.3. type2 'enum' Attribute Value Registration . . . . . . . . 189 | |||
| A.4. Operation Registration . . . . . . . . . . . . . . . . . 190 | A.4. Operation Registration . . . . . . . . . . . . . . . . . 189 | |||
| A.5. Status-Code Registration . . . . . . . . . . . . . . . . 191 | A.5. Status-Code Registration . . . . . . . . . . . . . . . . 190 | |||
| Appendix B. Status-Codes and Suggested Status-Code Messages . . 191 | Appendix B. Status-Code Values and Suggested Status-Code | |||
| B.1. Status-Codes . . . . . . . . . . . . . . . . . . . . . . 192 | Messages . . . . . . . . . . . . . . . . . . . . . . 190 | |||
| B.1. Status-Code Values . . . . . . . . . . . . . . . . . . . 191 | ||||
| B.1.1. Informational . . . . . . . . . . . . . . . . . . . . 192 | B.1.1. Informational . . . . . . . . . . . . . . . . . . . . 192 | |||
| B.1.2. Successful Status-Codes . . . . . . . . . . . . . . . 193 | B.1.2. Successful Status-Code Values . . . . . . . . . . . . 192 | |||
| B.1.2.1. successful-ok (0x0000) . . . . . . . . . . . . . 193 | B.1.2.1. successful-ok (0x0000) . . . . . . . . . . . . . 192 | |||
| B.1.2.2. successful-ok-ignored-or-substituted-attributes | B.1.2.2. successful-ok-ignored-or-substituted-attributes | |||
| (0x0001) . . . . . . . . . . . . . . . . . . . . 193 | (0x0001) . . . . . . . . . . . . . . . . . . . . 192 | |||
| B.1.2.3. successful-ok-conflicting-attributes (0x0002) . . 193 | B.1.2.3. successful-ok-conflicting-attributes (0x0002) . . 192 | |||
| B.1.3. Redirection Status-Codes . . . . . . . . . . . . . . 193 | B.1.3. Redirection Status-Code Values . . . . . . . . . . . 193 | |||
| B.1.4. Client Error Status-Codes . . . . . . . . . . . . . . 194 | B.1.4. Client Error Status-Code Values . . . . . . . . . . . 193 | |||
| B.1.4.1. client-error-bad-request (0x0400) . . . . . . . . 194 | B.1.4.1. client-error-bad-request (0x0400) . . . . . . . . 193 | |||
| B.1.4.2. client-error-forbidden (0x0401) . . . . . . . . . 194 | B.1.4.2. client-error-forbidden (0x0401) . . . . . . . . . 193 | |||
| B.1.4.3. client-error-not-authenticated (0x0402) . . . . . 194 | B.1.4.3. client-error-not-authenticated (0x0402) . . . . . 193 | |||
| B.1.4.4. client-error-not-authorized (0x0403) . . . . . . 194 | B.1.4.4. client-error-not-authorized (0x0403) . . . . . . 194 | |||
| B.1.4.5. client-error-not-possible (0x0404) . . . . . . . 195 | B.1.4.5. client-error-not-possible (0x0404) . . . . . . . 194 | |||
| B.1.4.6. client-error-timeout (0x0405) . . . . . . . . . . 195 | B.1.4.6. client-error-timeout (0x0405) . . . . . . . . . . 194 | |||
| B.1.4.7. client-error-not-found (0x0406) . . . . . . . . . 195 | B.1.4.7. client-error-not-found (0x0406) . . . . . . . . . 194 | |||
| B.1.4.8. client-error-gone (0x0407) . . . . . . . . . . . 195 | B.1.4.8. client-error-gone (0x0407) . . . . . . . . . . . 195 | |||
| B.1.4.9. client-error-request-entity-too-large (0x0408) . 196 | B.1.4.9. client-error-request-entity-too-large (0x0408) . 195 | |||
| B.1.4.10. client-error-request-value-too-long (0x0409) . . 196 | B.1.4.10. client-error-request-value-too-long (0x0409) . . 195 | |||
| B.1.4.11. client-error-document-format-not-supported | B.1.4.11. client-error-document-format-not-supported | |||
| (0x040a) . . . . . . . . . . . . . . . . . . . . 196 | (0x040a) . . . . . . . . . . . . . . . . . . . . 196 | |||
| B.1.4.12. client-error-attributes-or-values-not-supported | B.1.4.12. client-error-attributes-or-values-not-supported | |||
| (0x040b) . . . . . . . . . . . . . . . . . . . . 197 | (0x040b) . . . . . . . . . . . . . . . . . . . . 196 | |||
| B.1.4.13. client-error-uri-scheme-not-supported (0x040c) . 197 | B.1.4.13. client-error-uri-scheme-not-supported (0x040c) . 196 | |||
| B.1.4.14. client-error-charset-not-supported (0x040d) . . . 197 | B.1.4.14. client-error-charset-not-supported (0x040d) . . . 197 | |||
| B.1.4.15. client-error-conflicting-attributes (0x040e) . . 198 | B.1.4.15. client-error-conflicting-attributes (0x040e) . . 197 | |||
| B.1.4.16. client-error-compression-not-supported (0x040f) . 198 | B.1.4.16. client-error-compression-not-supported (0x040f) . 197 | |||
| B.1.4.17. client-error-compression-error (0x0410) . . . . . 198 | B.1.4.17. client-error-compression-error (0x0410) . . . . . 197 | |||
| B.1.4.18. client-error-document-format-error (0x0411) . . . 198 | B.1.4.18. client-error-document-format-error (0x0411) . . . 197 | |||
| B.1.4.19. client-error-document-access-error (0x0412) . . . 198 | B.1.4.19. client-error-document-access-error (0x0412) . . . 198 | |||
| B.1.5. Server Error Status-Codes . . . . . . . . . . . . . . 199 | B.1.5. Server Error Status-Code Values . . . . . . . . . . . 198 | |||
| B.1.5.1. server-error-internal-error (0x0500) . . . . . . 199 | B.1.5.1. server-error-internal-error (0x0500) . . . . . . 198 | |||
| B.1.5.2. server-error-operation-not-supported (0x0501) . . 199 | B.1.5.2. server-error-operation-not-supported (0x0501) . . 198 | |||
| B.1.5.3. server-error-service-unavailable (0x0502) . . . . 199 | B.1.5.3. server-error-service-unavailable (0x0502) . . . . 198 | |||
| B.1.5.4. server-error-version-not-supported (0x0503) . . . 200 | B.1.5.4. server-error-version-not-supported (0x0503) . . . 199 | |||
| B.1.5.5. server-error-device-error (0x0504) . . . . . . . 200 | B.1.5.5. server-error-device-error (0x0504) . . . . . . . 199 | |||
| B.1.5.6. server-error-temporary-error (0x0505) . . . . . . 200 | B.1.5.6. server-error-temporary-error (0x0505) . . . . . . 200 | |||
| B.1.5.7. server-error-not-accepting-jobs (0x0506) . . . . 201 | B.1.5.7. server-error-not-accepting-jobs (0x0506) . . . . 200 | |||
| B.1.5.8. server-error-busy (0x0507) . . . . . . . . . . . 201 | B.1.5.8. server-error-busy (0x0507) . . . . . . . . . . . 200 | |||
| B.1.5.9. server-error-job-canceled (0x0508) . . . . . . . 201 | B.1.5.9. server-error-job-canceled (0x0508) . . . . . . . 200 | |||
| B.1.5.10. server-error-multiple-document-jobs-not-supported | B.1.5.10. server-error-multiple-document-jobs-not-supported | |||
| (0x0509) . . . . . . . . . . . . . . . . . . . . 201 | (0x0509) . . . . . . . . . . . . . . . . . . . . 200 | |||
| B.2. Status-Codes for IPP Operations . . . . . . . . . . . . . 201 | B.2. Status-Code Values for IPP Operations . . . . . . . . . . 200 | |||
| Appendix C. Processing IPP Attributes . . . . . . . . . . . . . 203 | Appendix C. Processing IPP Attributes . . . . . . . . . . . . . 202 | |||
| C.1. Fidelity . . . . . . . . . . . . . . . . . . . . . . . . 204 | C.1. Fidelity . . . . . . . . . . . . . . . . . . . . . . . . 203 | |||
| C.2. Page Description Language (PDL) Override . . . . . . . . 205 | C.2. Page Description Language (PDL) Override . . . . . . . . 204 | |||
| C.3. Using Job Template Attributes during Document Processing 207 | C.3. Using Job Template Attributes during Document Processing 206 | |||
| Appendix D. Generic Directory Schema . . . . . . . . . . . . . . 209 | Appendix D. Generic Directory Schema . . . . . . . . . . . . . . 208 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 211 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 210 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 211 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 210 | |||
| 1. Introduction | 1. Introduction | |||
| The Internet Printing Protocol (IPP) is an application-level protocol | The Internet Printing Protocol (IPP) is an application-level protocol | |||
| for distributed printing using Internet tools and technologies. IPP | for distributed printing using Internet tools and technologies. IPP | |||
| version 1.1 (IPP/1.1) focuses primarily on End User functionality | version 1.1 (IPP/1.1) focuses primarily on End User functionality | |||
| with a few administrative operations included. IPP versions 2.0, | with a few administrative operations included. IPP versions 2.0, | |||
| 2.1, and 2.2 provide many new operations and are defined separately. | 2.1, and 2.2 provide many new operations and are defined separately. | |||
| This document is just one of a suite of documents that fully define | This document is just one of a suite of documents that fully define | |||
| skipping to change at page 11, line 8 | skipping to change at page 11, line 12 | |||
| o Section 5 defines the core attributes (and their syntaxes) that | o Section 5 defines the core attributes (and their syntaxes) that | |||
| are used in the model; | are used in the model; | |||
| o Sections 6 and 7 summarize the implementation conformance | o Sections 6 and 7 summarize the implementation conformance | |||
| requirements for objects that support the protocol and IANA | requirements for objects that support the protocol and IANA | |||
| considerations, respectively; | considerations, respectively; | |||
| o Sections 8 and 9 cover the internationalization and security | o Sections 8 and 9 cover the internationalization and security | |||
| considerations for IPP; and | considerations for IPP; and | |||
| o The appendices provide a reference for status-codes, "media" | o The appendices provide a reference for status-code values, | |||
| 'keyword' values, processing of IPP attributes, and the generic | processing of IPP attributes, and the generic directory schema. | |||
| directory schema. | ||||
| 1.1. Simplified Printing Model | 1.1. Simplified Printing Model | |||
| In order to achieve its goal of realizing a workable printing | In order to achieve its goal of realizing a workable printing | |||
| protocol for the Internet, the Internet Printing Protocol (IPP) is | protocol for the Internet, the Internet Printing Protocol (IPP) is | |||
| based on a simplified printing model that abstracts the many | based on a simplified printing model that abstracts the many | |||
| components of real-world printing solutions. The Internet is a | components of real-world printing solutions. The Internet is a | |||
| distributed computing environment where requesters of print services | distributed computing environment where requesters of print services | |||
| (Clients, applications, Printer drivers, etc.) cooperate and interact | (Clients, applications, Printer drivers, etc.) cooperate and interact | |||
| with print service providers. This document (sometimes referred to | with print service providers. This document (sometimes referred to | |||
| here as the "Model and Semantics" document) describes a simple, | here as the "Model and Semantics" document) describes a simple, | |||
| abstract model for IPP even though the underlying configurations can | abstract model for IPP even though the underlying configurations can | |||
| be complex "n-tier" client/server systems. An important simplifying | be complex "n-tier" client/server systems. An important simplifying | |||
| step in the IPP model is to expose only the key objects and | step in the IPP Model is to expose only the key objects and | |||
| interfaces required for printing. The model described in this | interfaces required for printing. The model described in this | |||
| document does not include features, interfaces, and relationships | document does not include features, interfaces, and relationships | |||
| that are beyond the scope of IPP/1.1. IPP/1.1 incorporates many of | that are beyond the scope of IPP/1.1. IPP/1.1 incorporates many of | |||
| the relevant ideas and lessons learned from other specification and | the relevant ideas and lessons learned from other specification and | |||
| development efforts [HTPP] [ISO10175] [LDPA] [P1387.4] [PSIS] | development efforts [HTPP] [ISO10175] [LDPA] [P1387.4] [PSIS] | |||
| [RFC1179] [SWP]. IPP is heavily influenced by the printing model | [RFC1179] [SWP]. IPP is heavily influenced by the printing model | |||
| introduced in the Document Printing Application (DPA) [ISO10175] | introduced in the Document Printing Application (DPA) [ISO10175] | |||
| standard. Although DPA specifies both End User and administrative | standard. Although DPA specifies both End User and administrative | |||
| features, IPP/1.1 focuses primarily on End User functionality with a | features, IPP/1.1 focuses primarily on End User functionality with a | |||
| few additional OPTIONAL operations for Administrators and Operators. | few additional OPTIONAL operations for Administrators and Operators. | |||
| The IPP model encapsulates the important components of distributed | The IPP Model encapsulates the important components of distributed | |||
| printing into the following IPP object types: | printing into the following IPP object types: | |||
| o Printer (Section 3.1) | o Printer (Section 3.1) | |||
| o Job (Section 3.2) | o Job (Section 3.2) | |||
| o Document (see [PWG5100.5]) | o Document (see [PWG5100.5]) | |||
| o Subscription (see [RFC3995]) | o Subscription (see [RFC3995]) | |||
| Each object type has an associated set of operations (see Section 4) | Each object type has an associated set of operations (see Section 4) | |||
| and attributes (see Section 5). | and attributes (see Section 5). | |||
| It is important, however, to understand that in real system | It is important, however, to understand that in real system | |||
| implementations (which lie underneath the abstracted IPP model), | implementations (which lie underneath the abstracted IPP Model), | |||
| there are other components of a print service that are not explicitly | there are other components of a print service that are not explicitly | |||
| defined in the IPP model. The following figure illustrates where IPP | defined in the IPP Model. The following figure illustrates where IPP | |||
| fits with respect to these other components. | fits with respect to these other components. | |||
| +----------------+ | +----------------+ | |||
| | Application | | | Application | | |||
| o + . . . . . . . | | o + . . . . . . . | | |||
| \|/ | Spooler | | \|/ | Spooler | | |||
| / \ + . . . . . . . | +---------+ | / \ + . . . . . . . | +---------+ | |||
| End User | Printer Driver |---| File | | End User | Printer Driver |---| File | | |||
| +-----------+ +-----+ +-------+--------+ +----+----+ | +-----------+ +-----+ +-------+--------+ +----+----+ | |||
| | Browser | | GUI | | | | | Browser | | GUI | | | | |||
| skipping to change at page 18, line 43 | skipping to change at page 18, line 47 | |||
| mechanism that is outside the scope of this document. For | mechanism that is outside the scope of this document. For | |||
| administrative policy and control reasons, an Administrator can | administrative policy and control reasons, an Administrator can | |||
| choose to make only a subset of possible values visible to the End | choose to make only a subset of possible values visible to the End | |||
| User. In this case, the real Output Device behind the IPP Printer | User. In this case, the real Output Device behind the IPP Printer | |||
| abstraction can be capable of a certain feature; however, an | abstraction can be capable of a certain feature; however, an | |||
| Administrator is specifying that access to that feature not be | Administrator is specifying that access to that feature not be | |||
| exposed to the End User through IPP. Also, since a Printer can | exposed to the End User through IPP. Also, since a Printer can | |||
| represent a logical print device (not just a Physical Device), the | represent a logical print device (not just a Physical Device), the | |||
| actual process for supporting a value is undefined and left up to the | actual process for supporting a value is undefined and left up to the | |||
| implementation. However, if a Printer supports a value, some manual | implementation. However, if a Printer supports a value, some manual | |||
| human action may be needed to realize the semantic action associated | human action might be needed to realize the semantic action | |||
| with the value, but no End User action is required. | associated with the value, but no End User action is required. | |||
| For example, if one of the values in the "finishings-supported" | For example, if one of the values in the "finishings-supported" | |||
| attribute is 'staple', the actual process might be an automatic | attribute is 'staple', the actual process might be an automatic | |||
| staple action by a Physical Device controlled by some command sent to | staple action by a Physical Device controlled by some command sent to | |||
| the device. Or, the actual process of stapling might be a manual | the device. Or, the actual process of stapling might be a manual | |||
| action by an Operator at an Operator-attended Printer. | action by an Operator at an Operator-attended Printer. | |||
| For another example of how supported attributes function, consider an | For another example of how supported attributes function, consider an | |||
| Administrator who desires to control all Print Jobs so that no Job | Administrator who desires to control all Print Jobs so that no Job | |||
| sheets are printed in order to conserve paper. To force no Job | sheets are printed in order to conserve paper. To force no Job | |||
| skipping to change at page 21, line 9 | skipping to change at page 21, line 12 | |||
| o "OPTIONAL": each object MAY support the attribute. | o "OPTIONAL": each object MAY support the attribute. | |||
| Some definitions of attribute values indicate that an object MUST or | Some definitions of attribute values indicate that an object MUST or | |||
| SHOULD support the value; otherwise, support of the value is | SHOULD support the value; otherwise, support of the value is | |||
| OPTIONAL. However, if an implementation supports an attribute, it | OPTIONAL. However, if an implementation supports an attribute, it | |||
| MUST support at least one of the possible values for that attribute. | MUST support at least one of the possible values for that attribute. | |||
| 3.1. Printer Object | 3.1. Printer Object | |||
| The major component of the IPP model is the Printer object. A | The major component of the IPP Model is the Printer object. A | |||
| Printer object implements the server side of the IPP/1.1 protocol. | Printer object implements the server side of the IPP/1.1 protocol. | |||
| Using the protocol, End Users can query the attributes of the Printer | Using the protocol, End Users can query the attributes of the Printer | |||
| object and submit Print Jobs to the Printer object. The actual | object and submit Print Jobs to the Printer object. The actual | |||
| implementation components behind the Printer abstraction can take on | implementation components behind the Printer abstraction can take on | |||
| different forms and different configurations. However, the model | different forms and different configurations. However, the model | |||
| abstraction allows the details of the configuration of real | abstraction allows the details of the configuration of real | |||
| components to remain opaque to the End User. Section 4 describes | components to remain opaque to the End User. Section 4 describes | |||
| each of the Printer operations in detail. | each of the Printer operations in detail. | |||
| The capabilities and state of a Printer object are described by its | The capabilities and state of a Printer object are described by its | |||
| skipping to change at page 24, line 19 | skipping to change at page 24, line 19 | |||
| Client or End User and include Job processing instructions that | Client or End User and include Job processing instructions that | |||
| are intended to override any Printer defaults and/or instructions | are intended to override any Printer defaults and/or instructions | |||
| embedded within the Document data (see Section 5.2) | embedded within the Document data (see Section 5.2) | |||
| o "job-description" attributes: These attributes describe the Job's | o "job-description" attributes: These attributes describe the Job's | |||
| identification, state, size, etc. The Client supplies some of | identification, state, size, etc. The Client supplies some of | |||
| these attributes, and the Printer generates others (see | these attributes, and the Printer generates others (see | |||
| Section 5.3) | Section 5.3) | |||
| An implementation MUST support at least one Document per Job object. | An implementation MUST support at least one Document per Job object. | |||
| An implementation MAY support multiple Documents per Job objects. A | An implementation MAY support multiple Documents per Job object. A | |||
| Document is either: | Document is either: | |||
| o a stream of Document data in a format supported by the Printer | o a stream of Document data in a format supported by the Printer | |||
| (typically a Page Description Language -- PDL), or | (typically a Page Description Language -- PDL), or | |||
| o a reference to such a stream of Document data. | o a reference to such a stream of Document data. | |||
| All Job processing instructions are modeled as Job object attributes. | All Job processing instructions are modeled as Job object attributes. | |||
| These attributes are called "Job Template attributes", and they apply | These attributes are called "Job Template attributes", and they apply | |||
| equally to all Documents within a Job object. | equally to all Documents within a Job object. | |||
| skipping to change at page 31, line 21 | skipping to change at page 31, line 21 | |||
| -- see Section 4.2.1.1 and Appendix C for a full description of | -- see Section 4.2.1.1 and Appendix C for a full description of | |||
| "ipp-attribute-fidelity" and its relationship to other attributes. | "ipp-attribute-fidelity" and its relationship to other attributes. | |||
| o Job Object Attributes: These attributes are returned in response | o Job Object Attributes: These attributes are returned in response | |||
| to a query operation directed at a Job object. | to a query operation directed at a Job object. | |||
| o Printer Object Attributes: These attributes are returned in | o Printer Object Attributes: These attributes are returned in | |||
| response to a query operation directed at a Printer object. | response to a query operation directed at a Printer object. | |||
| o Unsupported Attributes: In a Job Creation request, the Client | o Unsupported Attributes: In a Job Creation request, the Client | |||
| supplies a set of Operation and Job Template attributes. If any | supplies a set of operation and Job Template attributes. If any | |||
| of these attributes or their values are unsupported by the Printer | of these attributes or their values are unsupported by the Printer | |||
| object, the Printer object SHOULD return the set of unsupported | object, the Printer object SHOULD return the set of unsupported | |||
| attributes in the response. Section 4.1.7, Section 4.2.1.2, and | attributes in the response. Section 4.1.7, Section 4.2.1.2, and | |||
| Appendix C give a full description of how Job Template attributes | Appendix C give a full description of how Job Template attributes | |||
| supplied by the Client in a Job Creation request are processed by | supplied by the Client in a Job Creation request are processed by | |||
| the Printer object and how unsupported attributes are returned to | the Printer object and how unsupported attributes are returned to | |||
| the Client. Because of extensibility, any IPP object might | the Client. Because of extensibility, any IPP object might | |||
| receive a request that contains new or unknown attributes or | receive a request that contains new or unknown attributes or | |||
| values for which it has no support. In such cases, the IPP object | values for which it has no support. In such cases, the IPP object | |||
| processes what it can and returns the unsupported attributes in | processes what it can and returns the unsupported attributes in | |||
| skipping to change at page 33, line 42 | skipping to change at page 33, line 42 | |||
| Printer object MUST reject the request, set the | Printer object MUST reject the request, set the | |||
| "attributes-charset" to 'utf-8' in the response, and return the | "attributes-charset" to 'utf-8' in the response, and return the | |||
| 'client-error-charset-not-supported' status-code and any 'text' or | 'client-error-charset-not-supported' status-code and any 'text' or | |||
| 'name' attributes using the 'utf-8' charset. The Printer MAY | 'name' attributes using the 'utf-8' charset. The Printer MAY | |||
| return any attributes in the Unsupported Attributes group (see | return any attributes in the Unsupported Attributes group (see | |||
| Sections 4.1.7 and 4.2.1.2). The Printer object MUST indicate the | Sections 4.1.7 and 4.2.1.2). The Printer object MUST indicate the | |||
| charset(s) supported as the values of the "charset-supported" | charset(s) supported as the values of the "charset-supported" | |||
| Printer attribute (see Section 5.4.18), so that the Client can | Printer attribute (see Section 5.4.18), so that the Client can | |||
| query to determine which charset(s) is supported. | query to determine which charset(s) is supported. | |||
| Note to Client implementers: Since IPP objects are only required | Note to Client implementors: Since IPP objects are only required | |||
| to support the 'utf-8' charset, in order to maximize | to support the 'utf-8' charset, in order to maximize | |||
| interoperability with multiple IPP object implementations, a | interoperability with multiple IPP object implementations, a | |||
| Client SHOULD supply 'utf-8' in the "attributes-charset" operation | Client SHOULD supply 'utf-8' in the "attributes-charset" operation | |||
| attribute, even though the Client is only passing and able to | attribute, even though the Client is only passing and able to | |||
| present a simpler charset, such as US-ASCII [RFC20] or ISO-8859-1 | present a simpler charset, such as US-ASCII [RFC20] or ISO-8859-1 | |||
| [ISO8859-1]. Then the Client will have to filter out, perform | [ISO8859-1]. Then the Client will have to filter out, perform | |||
| charset conversion on, or replace those characters that are | charset conversion on, or replace those characters that are | |||
| returned in the response that it cannot present to its user. On | returned in the response that it cannot present to its user. On | |||
| the other hand, if both the Client and the IPP objects also | the other hand, if both the Client and the IPP objects also | |||
| support a charset in common besides 'utf-8', the Client can use | support a charset in common besides 'utf-8', the Client can use | |||
| skipping to change at page 39, line 44 | skipping to change at page 39, line 44 | |||
| 3. If the URI scheme does not allow an explicit port number to be | 3. If the URI scheme does not allow an explicit port number to be | |||
| specified within the URI, then the default port number implied by | specified within the URI, then the default port number implied by | |||
| that URI MUST be used by the Client to contact the IPP object. | that URI MUST be used by the Client to contact the IPP object. | |||
| Note: "Internet Printing Protocol/1.1: IPP URL Scheme" [RFC3510] and | Note: "Internet Printing Protocol/1.1: IPP URL Scheme" [RFC3510] and | |||
| "Internet Printing Protocol (IPP) over HTTPS Transport Binding and | "Internet Printing Protocol (IPP) over HTTPS Transport Binding and | |||
| the 'ipps' URI Scheme" [RFC7472] define the mapping of IPP onto HTTP | the 'ipps' URI Scheme" [RFC7472] define the mapping of IPP onto HTTP | |||
| and HTTPS, respectively, and define and register a default port | and HTTPS, respectively, and define and register a default port | |||
| number. | number. | |||
| 4.1.6. Operation Response Status-Codes and Status Messages | 4.1.6. Operation Response Status-Code Values and Status Messages | |||
| Every operation response includes a REQUIRED "status-code" parameter, | Every operation response includes a REQUIRED "status-code" parameter, | |||
| SHOULD include the "status-message" operation attribute, and MAY | SHOULD include the "status-message" operation attribute, and MAY | |||
| include the "detailed-status-message" operation attribute. The | include the "detailed-status-message" operation attribute. The | |||
| Print-URI and Send-URI response MAY also include the | Print-URI and Send-URI response MAY also include the | |||
| "document-access-error" operation attribute. | "document-access-error" operation attribute. | |||
| 4.1.6.1. "status-code" (type2 enum) | 4.1.6.1. "status-code" (type2 enum) | |||
| The REQUIRED "status-code" parameter provides information on the | The REQUIRED "status-code" parameter provides information on the | |||
| processing of a request. | processing of a request. | |||
| The status-code is intended for use by automata. A Client | The status-code is intended for use by automata. A Client | |||
| implementation of IPP SHOULD convert status-code values into any | implementation of IPP SHOULD convert status-code values into any | |||
| localized message that has semantic meaning to the End User. | localized message that has semantic meaning to the End User. | |||
| The "status-code" value is a numeric value that has semantic meaning. | The "status-code" value is a numeric value that has semantic meaning. | |||
| The "status-code" syntax is similar to a "type2 enum" (see | The "status-code" syntax is similar to a "type2 enum" (see | |||
| Section 5.1 ("Attribute Syntaxes")), except that values can range | Section 5.1 ("Attribute Syntaxes")), except that values can range | |||
| only from 0x0000 to 0x7fff. Appendix B describes the status-codes, | only from 0x0000 to 0x7fff. Appendix B describes and assigns the | |||
| assigns the numeric values, and suggests a corresponding status | status-code values, and suggests a corresponding status message for | |||
| message for each status-code for use by the Client when the user's | each status-code for use by the Client when the user's natural | |||
| natural language is English. | language is English. | |||
| If the Printer performs an operation with no errors and it encounters | If the Printer performs an operation with no errors and it encounters | |||
| no problems, it MUST return the status-code 'successful-ok' in the | no problems, it MUST return the status-code 'successful-ok' in the | |||
| response. See Appendix B. | response. See Appendix B. | |||
| If the Client supplies unsupported values for the following | If the Client supplies unsupported values for the following | |||
| parameters or operation attributes, the Printer object MUST reject | parameters or operation attributes, the Printer object MUST reject | |||
| the operation, MAY return the unsupported attribute value in the | the operation, MAY return the unsupported attribute value in the | |||
| Unsupported Attributes group, and MUST return the indicated | Unsupported Attributes group, and MUST return the indicated | |||
| status-code: | status-code: | |||
| skipping to change at page 40, line 49 | skipping to change at page 40, line 49 | |||
| | attributes-charset | client-error-charset-not-supported | | | attributes-charset | client-error-charset-not-supported | | |||
| +---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| | compression | client-error-compression-not-supported | | | compression | client-error-compression-not-supported | | |||
| +---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| | document-format | client-error-document-format-not-supported | | | document-format | client-error-document-format-not-supported | | |||
| +---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| | document-uri | client-error-uri-scheme-not-supported, | | | document-uri | client-error-uri-scheme-not-supported, | | |||
| | | client-error-document-access-error | | | | client-error-document-access-error | | |||
| +---------------------+---------------------------------------------+ | +---------------------+---------------------------------------------+ | |||
| Table 1: Status-Codes for All Requests | Table 1: Status-Code Values for All Requests | |||
| If the Client supplies unsupported values for other attributes, or | If the Client supplies unsupported values for other attributes, or | |||
| unsupported attributes, the Printer returns the status-code defined | unsupported attributes, the Printer returns the status-code defined | |||
| in Section 4.1.7 ("Unsupported Attributes"). | in Section 4.1.7 ("Unsupported Attributes"). | |||
| 4.1.6.2. "status-message" (text(255)) | 4.1.6.2. "status-message" (text(255)) | |||
| The RECOMMENDED "status-message" operation attribute provides a short | The RECOMMENDED "status-message" operation attribute provides a short | |||
| textual description of the status of the operation. The | textual description of the status of the operation. The | |||
| "status-message" attribute's syntax is "text(255)", so the maximum | "status-message" attribute's syntax is "text(255)", so the maximum | |||
| skipping to change at page 41, line 41 | skipping to change at page 41, line 41 | |||
| As described in Section 4.1.4.1, for any returned 'text' attribute, | As described in Section 4.1.4.1, for any returned 'text' attribute, | |||
| if there is a choice for generating this message, the Printer uses | if there is a choice for generating this message, the Printer uses | |||
| the natural language indicated by the value of | the natural language indicated by the value of | |||
| "attributes-natural-language" in the Client request, if supported; | "attributes-natural-language" in the Client request, if supported; | |||
| otherwise, the Printer uses the value in the Printer's own | otherwise, the Printer uses the value in the Printer's own | |||
| "natural-language-configured" attribute. | "natural-language-configured" attribute. | |||
| If the Printer supports the "status-message" operation attribute, it | If the Printer supports the "status-message" operation attribute, it | |||
| SHOULD use the REQUIRED 'utf-8' charset to return a status message | SHOULD use the REQUIRED 'utf-8' charset to return a status message | |||
| for the following error status-codes (see Appendix B): | for the following error status-code values (see Appendix B): | |||
| 'client-error-bad-request', 'client-error-charset-not-supported', | 'client-error-bad-request', 'client-error-charset-not-supported', | |||
| 'server-error-internal-error', | 'server-error-internal-error', | |||
| 'server-error-operation-not-supported', and | 'server-error-operation-not-supported', and | |||
| 'server-error-version-not-supported'. In this case, it MUST set the | 'server-error-version-not-supported'. In this case, it MUST set the | |||
| value of the "attributes-charset" operation attribute to 'utf-8' in | value of the "attributes-charset" operation attribute to 'utf-8' in | |||
| the error response. | the error response. | |||
| 4.1.6.3. "detailed-status-message" (text(MAX)) | 4.1.6.3. "detailed-status-message" (text(MAX)) | |||
| The OPTIONAL "detailed-status-message" operation attribute provides | The OPTIONAL "detailed-status-message" operation attribute provides | |||
| skipping to change at page 53, line 45 | skipping to change at page 53, line 45 | |||
| "job-impressions" (integer(0:MAX)): | "job-impressions" (integer(0:MAX)): | |||
| The Client MAY supply and the Printer SHOULD support this | The Client MAY supply and the Printer SHOULD support this | |||
| attribute. The Client-supplied "job-impressions" operation | attribute. The Client-supplied "job-impressions" operation | |||
| attribute identifies the total size in number of Impressions of | attribute identifies the total size in number of Impressions of | |||
| the Document(s) being submitted (see Section 5.3.17.2 for the | the Document(s) being submitted (see Section 5.3.17.2 for the | |||
| complete semantics). | complete semantics). | |||
| See the last paragraph under "job-k-octets". | See the last paragraph under "job-k-octets". | |||
| "job-media-sheets" (integer(0:MAX)): | "job-media-sheets" (integer(1:MAX)): | |||
| The Client MAY supply and the Printer SHOULD support this | The Client MAY supply and the Printer SHOULD support this | |||
| attribute. The Client-supplied "job-media-sheets" operation | attribute. The Client-supplied "job-media-sheets" operation | |||
| attribute identifies the total number of Media Sheets to be | attribute identifies the total number of Media Sheets to be | |||
| produced for this Job (see Section 5.3.17.3 for the complete | produced for this Job (see Section 5.3.17.3 for the complete | |||
| semantics). | semantics). | |||
| See the last paragraph under "job-k-octets". | See the last paragraph under "job-k-octets". | |||
| Group 2: Job Template Attributes | Group 2: Job Template Attributes | |||
| skipping to change at page 55, line 23 | skipping to change at page 55, line 23 | |||
| Group 2: Unsupported Attributes | Group 2: Unsupported Attributes | |||
| See Section 4.1.7 for details on returning unsupported attributes. | See Section 4.1.7 for details on returning unsupported attributes. | |||
| The value of "ipp-attribute-fidelity" supplied by the Client does | The value of "ipp-attribute-fidelity" supplied by the Client does | |||
| not affect what attributes the Printer returns in this group. The | not affect what attributes the Printer returns in this group. The | |||
| value of "ipp-attribute-fidelity" only affects whether the | value of "ipp-attribute-fidelity" only affects whether the | |||
| Print-Job operation is accepted or rejected. If the Job is | Print-Job operation is accepted or rejected. If the Job is | |||
| accepted, the Client can query the Job using the | accepted, the Client can query the Job using the | |||
| Get-Job-Attributes operation, requesting the unsupported | Get-Job-Attributes operation, requesting the unsupported | |||
| attributes that were returned in the Create-Job response to see | attributes that were returned in the Print-Job response to see | |||
| which attributes were ignored (not stored in the Job) and which | which attributes were ignored (not stored in the Job) and which | |||
| attributes were stored with other (substituted) values. | attributes were stored with other (substituted) values. | |||
| Group 3: Job Attributes | Group 3: Job Attributes | |||
| "job-id" (integer(1:MAX)): | "job-id" (integer(1:MAX)): | |||
| The Printer MUST return the Job's ID in the REQUIRED "job-id" | The Printer MUST return the Job's ID in the REQUIRED "job-id" | |||
| Job attribute. The Client uses this "job-id" attribute in | Job attribute. The Client uses this "job-id" attribute in | |||
| conjunction with the "printer-uri" attribute used in the | conjunction with the "printer-uri" attribute used in the | |||
| skipping to change at page 57, line 10 | skipping to change at page 57, line 10 | |||
| The Printer MAY validate the accessibility of the Document as part of | The Printer MAY validate the accessibility of the Document as part of | |||
| the operation, or subsequently. If the Printer discovers an | the operation, or subsequently. If the Printer discovers an | |||
| accessibility problem before returning an operation response, it MUST | accessibility problem before returning an operation response, it MUST | |||
| reject the request and return the | reject the request and return the | |||
| 'client-error-document-access-error' status-code. The Printer MAY | 'client-error-document-access-error' status-code. The Printer MAY | |||
| also return a specific Document access error code using the | also return a specific Document access error code using the | |||
| "document-access-error" operation attribute (see Section 4.1.6.4). | "document-access-error" operation attribute (see Section 4.1.6.4). | |||
| If the Printer discovers this Document accessibility problem after | If the Printer discovers this Document accessibility problem after | |||
| accepting the request and returning an operation response with one of | accepting the request and returning an operation response with one of | |||
| the successful status-codes, the Printer MUST add the | the successful status-code values, the Printer MUST add the | |||
| "document-access-error" value to the Job's "job-state-reasons" | "document-access-error" value to the Job's "job-state-reasons" | |||
| attribute and MAY populate the Job's "job-document-access-errors" Job | attribute and MAY populate the Job's "job-document-access-errors" Job | |||
| Status attribute (see Section 5.3.11). See the Implementor's Guides | Status attribute (see Section 5.3.11). See the Implementor's Guides | |||
| [RFC3196] [PWG5100.19] for guidance on processing Job Creation | [RFC3196] [PWG5100.19] for guidance on processing Job Creation | |||
| requests. | requests. | |||
| If the Printer supports this operation, it MUST support the | If the Printer supports this operation, it MUST support the | |||
| "reference-uri-schemes-supported" Printer attribute (see | "reference-uri-schemes-supported" Printer attribute (see | |||
| Section 5.4.27). | Section 5.4.27). | |||
| skipping to change at page 57, line 45 | skipping to change at page 57, line 45 | |||
| and Create-Job operations (see Section 9) so that a Client can check | and Create-Job operations (see Section 9) so that a Client can check | |||
| that the Client and Printer security requirements can be met before | that the Client and Printer security requirements can be met before | |||
| performing a Job Creation request. | performing a Job Creation request. | |||
| The Validate-Job operation does not accept a "document-uri" attribute | The Validate-Job operation does not accept a "document-uri" attribute | |||
| in order to allow a Client to check that the same Print-URI operation | in order to allow a Client to check that the same Print-URI operation | |||
| will be accepted, since the Client doesn't send the data with the | will be accepted, since the Client doesn't send the data with the | |||
| Print-URI operation. The Client SHOULD just issue the Print-URI | Print-URI operation. The Client SHOULD just issue the Print-URI | |||
| request. | request. | |||
| The Printer returns the same status-codes, Operation Attributes | The Printer returns the same status-code values, Operation Attributes | |||
| (Group 1), and Unsupported Attributes (Group 2) as the Print-Job | (Group 1), and Unsupported Attributes (Group 2) as the Print-Job | |||
| operation. However, no Job Attributes (Group 3) are returned, since | operation. However, no Job Attributes (Group 3) are returned, since | |||
| no Job is created. | no Job is created. | |||
| 4.2.4. Create-Job Operation | 4.2.4. Create-Job Operation | |||
| This RECOMMENDED operation is similar to the Print-Job operation | This RECOMMENDED operation is similar to the Print-Job operation | |||
| (Section 4.2.1), except that in the Create-Job request, a Client does | (Section 4.2.1), except that in the Create-Job request, a Client does | |||
| not supply Document data or any reference to Document data. Also, | not supply Document data or any reference to Document data. Also, | |||
| the Client does not supply any of the "document-name", | the Client does not supply any of the "document-name", | |||
| skipping to change at page 60, line 27 | skipping to change at page 60, line 27 | |||
| Printer MUST support this attribute. If the Client omits this | Printer MUST support this attribute. If the Client omits this | |||
| attribute, the Printer MUST respond as if this attribute had | attribute, the Printer MUST respond as if this attribute had | |||
| been supplied with a value of 'all'. | been supplied with a value of 'all'. | |||
| "document-format" (mimeMediaType): | "document-format" (mimeMediaType): | |||
| The Client MAY supply and the Printer MUST support this | The Client MAY supply and the Printer MUST support this | |||
| attribute. It is useful for a Client to determine the set of | attribute. It is useful for a Client to determine the set of | |||
| supported attribute values that relate to the requested | supported attribute values that relate to the requested | |||
| Document format. The Printer MUST return the attributes and | Document format. The Printer MUST return the attributes and | |||
| values that it uses to validate a Job on a Create-Job or | values that it uses to validate a Job in a Job Creation or | |||
| Validate-Job operation in which this Document format is | Validate-Job operation in which this Document format is | |||
| supplied. The Printer SHOULD return only (1) those attributes | supplied. The Printer SHOULD return only (1) those attributes | |||
| that are supported for the specified format and (2) the | that are supported for the specified format and (2) the | |||
| attribute values that are supported for the specified Document | attribute values that are supported for the specified Document | |||
| format. By specifying the Document format, the Client can get | format. By specifying the Document format, the Client can get | |||
| the Printer to eliminate the attributes and values that are not | the Printer to eliminate the attributes and values that are not | |||
| supported for a specific Document format. For example, a | supported for a specific Document format. For example, a | |||
| Printer might have multiple interpreters to support both | Printer might have multiple interpreters to support both | |||
| 'application/postscript' (for PostScript) and 'text/plain' (for | 'application/postscript' (for PostScript) and 'text/plain' (for | |||
| text) Documents. However, only one of those interpreters might | text) Documents. However, only one of those interpreters might | |||
| support the "number-up" Job Template attribute with values of | support the "number-up" Job Template attribute with values of | |||
| '1', '2', and '4'. The other interpreter might only be able to | '1', '2', and '4'. The other interpreter might only be able to | |||
| support the "number-up" Job Template attribute with a value of | support the "number-up" Job Template attribute with a value of | |||
| '1'. Thus, a Client can use the Get-Printer-Attributes | '1'. Thus, a Client can use the Get-Printer-Attributes | |||
| operation to obtain the attributes and values that will be used | operation to obtain the attributes and values that will be used | |||
| to accept/reject a Job Creation request. | to accept/reject a Job Creation request. | |||
| If the Printer does not distinguish between different sets of | If the Printer does not distinguish between different sets of | |||
| supported values for each different Document format when | supported values for each different Document format when | |||
| validating Jobs in the Create-Job and Validate-Job operations, | validating Jobs in the Create-Job, Print-Job, Print-URI, and | |||
| it MUST NOT distinguish between different Document formats in | Validate-Job operations, it MUST NOT distinguish between | |||
| the Get-Printer-Attributes operation. If the Printer does | different Document formats in the Get-Printer-Attributes | |||
| distinguish between different sets of supported values for each | operation. If the Printer does distinguish between different | |||
| different Document format specified by the Client, this | sets of supported values for each different Document format | |||
| specialization applies only to the following Printer | specified by the Client, this specialization applies only to | |||
| attributes: | the following Printer attributes: | |||
| + Printer attributes that are Job Template attributes | + Printer attributes that are Job Template attributes | |||
| ("xxx-default", "xxx-supported", and "xxx-ready") | ("xxx-default", "xxx-supported", and "xxx-ready") | |||
| (see Table 8 in Section 5.2), | (see Table 8 in Section 5.2), | |||
| + "pdl-override-supported", | + "pdl-override-supported", | |||
| + "compression-supported", | + "compression-supported", | |||
| + "job-k-octets-supported", | + "job-k-octets-supported", | |||
| skipping to change at page 89, line 8 | skipping to change at page 89, line 8 | |||
| candidate for processing immediately (see Section 5.2.2). | candidate for processing immediately (see Section 5.2.2). | |||
| 4.3.7.2. Restart-Job Response | 4.3.7.2. Restart-Job Response | |||
| The groups and attributes are the same as those defined for a | The groups and attributes are the same as those defined for a | |||
| Cancel-Job response (see Section 4.3.3.2). | Cancel-Job response (see Section 4.3.3.2). | |||
| 5. Object Attributes | 5. Object Attributes | |||
| This section describes the attributes with their corresponding | This section describes the attributes with their corresponding | |||
| attribute syntaxes and values that are part of the IPP model. The | attribute syntaxes and values that are part of the IPP Model. The | |||
| sections below show the objects and their associated attributes that | sections below show the objects and their associated attributes that | |||
| are included within the scope of this protocol. Many of these | are included within the scope of this protocol. Many of these | |||
| attributes are derived from other relevant documents: | attributes are derived from other relevant documents: | |||
| o Document Printing Application (DPA) [ISO10175] | o Document Printing Application (DPA) [ISO10175] | |||
| o Printer MIB v2 [RFC3805] | o Printer MIB v2 [RFC3805] | |||
| Each attribute is uniquely identified in this document using a | Each attribute is uniquely identified in this document using a | |||
| "keyword" (see Section 2.3.7) that is the name of the attribute. The | "keyword" (see Section 2.3.7) that is the name of the attribute. The | |||
| skipping to change at page 98, line 15 | skipping to change at page 98, line 15 | |||
| The maximum length of 'charset' values used to represent IPP | The maximum length of 'charset' values used to represent IPP | |||
| attribute values is 63 octets. | attribute values is 63 octets. | |||
| Some examples are: | Some examples are: | |||
| o 'utf-8': ISO 10646 Universal Multiple-Octet Coded Character Set | o 'utf-8': ISO 10646 Universal Multiple-Octet Coded Character Set | |||
| (UCS) [ISO10646] represented as the UTF-8 [RFC3629] transfer | (UCS) [ISO10646] represented as the UTF-8 [RFC3629] transfer | |||
| encoding scheme in which US-ASCII [RFC20] is a subset charset. | encoding scheme in which US-ASCII [RFC20] is a subset charset. | |||
| o 'us-ascii': 7-bit American Standard Code for Information | o 'us-ascii': 7-bit American Standard Code for Information | |||
| Interchange (ASCII) [RFC20]. [RFC20] defines US-ASCII, but | Interchange (ASCII) [RFC20]. | |||
| [RFC2045] eliminates most of the control characters from | ||||
| conformant usage in MIME and IPP. | ||||
| o 'iso-8859-1': 8-bit One-Byte Coded Character Set, Latin Alphabet | o 'iso-8859-1': 8-bit One-Byte Coded Character Set, Latin Alphabet | |||
| No. 1 [ISO8859-1]. That standard defines a coded character set | No. 1 [ISO8859-1]. That standard defines a coded character set | |||
| that is used by Latin languages in the Western Hemisphere and | that is used by Latin languages in the Western Hemisphere and | |||
| Western Europe. US-ASCII is a subset charset. | Western Europe. US-ASCII is a subset charset. | |||
| Some attribute descriptions MAY place additional requirements on | Some attribute descriptions MAY place additional requirements on | |||
| charset values that can be used, such as REQUIRED values that MUST be | charset values that can be used, such as REQUIRED values that MUST be | |||
| supported or additional restrictions, such as requiring that the | supported or additional restrictions, such as requiring that the | |||
| charset have US-ASCII as a subset charset. | charset have US-ASCII as a subset charset. | |||
| skipping to change at page 120, line 12 | skipping to change at page 119, line 46 | |||
| indicated as REQUIRED, then it is OPTIONAL. The maximum size in | indicated as REQUIRED, then it is OPTIONAL. The maximum size in | |||
| octets for 'text' and 'name' attributes is indicated in parentheses. | octets for 'text' and 'name' attributes is indicated in parentheses. | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| | Attribute | Syntax | REQUIRED? | | | Attribute | Syntax | REQUIRED? | | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| | job-impressions | integer(0:MAX) | | | | job-impressions | integer(0:MAX) | | | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| | job-k-octets | integer(0:MAX) | | | | job-k-octets | integer(0:MAX) | | | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| | job-media-sheets | integer(0:MAX) | | | | job-media-sheets | integer(1:MAX) | | | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| | job-name | name(MAX) | REQUIRED | | | job-name | name(MAX) | REQUIRED | | |||
| +------------------+----------------+-----------+ | +------------------+----------------+-----------+ | |||
| Table 13: Job Description Attributes (READ-WRITE) | Table 13: Job Description Attributes (READ-WRITE) | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | Attribute | Syntax | REQUIRED? | | | Attribute | Syntax | REQUIRED? | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | attributes-charset | charset | REQUIRED | | | attributes-charset | charset | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | attributes-natural-language | naturalLanguage | REQUIRED | | | attributes-natural- | naturalLanguage | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | | language | | | | |||
| | date-time-at-completed | dateTime | | | +----------------------------+--------------------------+-----------+ | |||
| +------------------------------+----------------------+-----------+ | | date-time-at-completed | dateTime|unknown|no- | | | |||
| | date-time-at-creation | dateTime | | | | | value | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | date-time-at-processing | dateTime | | | | date-time-at-creation | dateTime|unknown | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-detailed-status-messages | 1setOf text(MAX) | | | | date-time-at-processing | dateTime|unknown|no- | | | |||
| +------------------------------+----------------------+-----------+ | | | value | | | |||
| | job-document-access-errors | 1setOf text(MAX) | | | +----------------------------+--------------------------+-----------+ | |||
| +------------------------------+----------------------+-----------+ | | job-detailed-status- | 1setOf text(MAX) | | | |||
| | job-id | integer(1:MAX) | REQUIRED | | | messages | | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-impressions-completed | integer(0:MAX) | | | | job-document-access-errors | 1setOf text(MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-k-octets-processed | integer(0:MAX) | | | | job-id | integer(1:MAX) | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-media-sheets-completed | integer(0:MAX) | | | | job-impressions-completed | integer(0:MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-message-from-operator | text(127) | | | | job-k-octets-processed | integer(0:MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-more-info | uri | | | | job-media-sheets-completed | integer(0:MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-originating-user-name | name(MAX) | REQUIRED | | | job-message-from-operator | text(127) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-printer-up-time | integer(1:MAX) | REQUIRED | | | job-more-info | uri | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-printer-uri | uri | REQUIRED | | | job-originating-user-name | name(MAX) | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-state | type1 enum | REQUIRED | | | job-printer-up-time | integer(1:MAX) | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-state-message | text(MAX) | | | | job-printer-uri | uri | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-state-reasons | 1setOf type2 keyword | REQUIRED | | | job-state | type1 enum | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | job-uri | uri | REQUIRED | | | job-state-message | text(MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | number-of-documents | integer(0:MAX) | | | | job-state-reasons | 1setOf type2 keyword | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | number-of-intervening-jobs | integer(0:MAX) | | | | job-uri | uri | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | output-device-assigned | name(127) | | | | number-of-documents | integer(0:MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | time-at-completed | integer(MIN:MAX) | REQUIRED | | | number-of-intervening-jobs | integer(0:MAX) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | time-at-creation | integer(MIN:MAX) | REQUIRED | | | output-device-assigned | name(127) | | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | time-at-processing | integer(MIN:MAX) | REQUIRED | | | time-at-completed | integer(MIN:MAX) | REQUIRED | | |||
| +------------------------------+----------------------+-----------+ | +----------------------------+--------------------------+-----------+ | |||
| | time-at-creation | integer(MIN:MAX) | REQUIRED | | ||||
| +----------------------------+--------------------------+-----------+ | ||||
| | time-at-processing | integer(MIN:MAX) | REQUIRED | | ||||
| +----------------------------+--------------------------+-----------+ | ||||
| Table 14: Job Status Attributes (READ-ONLY) | Table 14: Job Status Attributes (READ-ONLY) | |||
| 5.3.1. job-id (integer(1:MAX)) | 5.3.1. job-id (integer(1:MAX)) | |||
| This REQUIRED attribute contains the ID of the Job. The Printer, on | This REQUIRED attribute contains the ID of the Job. The Printer, on | |||
| receipt of a new Job, generates an ID that identifies the new Job on | receipt of a new Job, generates an ID that identifies the new Job on | |||
| that Printer. The Printer returns the value of the "job-id" | that Printer. The Printer returns the value of the "job-id" | |||
| attribute as part of the response to a Job Creation request. | attribute as part of the response to a Job Creation request. | |||
| skipping to change at page 135, line 8 | skipping to change at page 134, line 45 | |||
| A Client MAY request this attribute in a Get-Job-Attributes or | A Client MAY request this attribute in a Get-Job-Attributes or | |||
| Get-Jobs request and use the value returned in combination with other | Get-Jobs request and use the value returned in combination with other | |||
| requested Event Time Job Status attributes in order to display time | requested Event Time Job Status attributes in order to display time | |||
| attributes to a user. The difference between this attribute and the | attributes to a user. The difference between this attribute and the | |||
| 'integer' value of a "time-at-xxx" attribute is the number of seconds | 'integer' value of a "time-at-xxx" attribute is the number of seconds | |||
| ago that the "time-at-xxx" event occurred. A Client can compute the | ago that the "time-at-xxx" event occurred. A Client can compute the | |||
| wall-clock time at which the "time-at-xxx" event occurred by | wall-clock time at which the "time-at-xxx" event occurred by | |||
| subtracting this difference from the Client's wall-clock time. | subtracting this difference from the Client's wall-clock time. | |||
| 5.3.14.5. date-time-at-creation (dateTime) | 5.3.14.5. date-time-at-creation (dateTime|unknown) | |||
| This RECOMMENDED attribute indicates the date and time at which the | This RECOMMENDED attribute indicates the date and time at which the | |||
| Job was created. | Job was created. | |||
| 5.3.14.6. date-time-at-processing (dateTime) | 5.3.14.6. date-time-at-processing (dateTime|unknown|no-value) | |||
| This RECOMMENDED attribute indicates the date and time at which the | This RECOMMENDED attribute indicates the date and time at which the | |||
| Job first began processing after the Job Creation request or the most | Job first began processing after the Job Creation request or the most | |||
| recent Restart-Job operation. | recent Restart-Job operation. | |||
| 5.3.14.7. date-time-at-completed (dateTime) | 5.3.14.7. date-time-at-completed (dateTime|unknown|no-value) | |||
| This RECOMMENDED attribute indicates the date and time at which the | This RECOMMENDED attribute indicates the date and time at which the | |||
| Job entered a Terminating State ('completed', 'canceled', or | Job entered a Terminating State ('completed', 'canceled', or | |||
| 'aborted'). | 'aborted'). | |||
| 5.3.15. number-of-intervening-jobs (integer(0:MAX)) | 5.3.15. number-of-intervening-jobs (integer(0:MAX)) | |||
| This attribute indicates the number of Jobs that are "ahead" of this | This attribute indicates the number of Jobs that are "ahead" of this | |||
| Job in the relative chronological order of expected time to complete | Job in the relative chronological order of expected time to complete | |||
| (i.e., the current scheduled order). For efficiency, it is only | (i.e., the current scheduled order). For efficiency, it is only | |||
| skipping to change at page 137, line 5 | skipping to change at page 136, line 43 | |||
| independent of the number of copies. | independent of the number of copies. | |||
| As with "job-k-octets", this value also MUST NOT include the | As with "job-k-octets", this value also MUST NOT include the | |||
| multiplicative factor due to a copies instruction embedded in the | multiplicative factor due to a copies instruction embedded in the | |||
| Document data. If the Document data actually includes replications | Document data. If the Document data actually includes replications | |||
| of the Document data, this value will include such replication. In | of the Document data, this value will include such replication. In | |||
| other words, this value is always the number of Impressions in the | other words, this value is always the number of Impressions in the | |||
| source Document data, rather than a measure of the number of | source Document data, rather than a measure of the number of | |||
| Impressions to be produced by the Job. | Impressions to be produced by the Job. | |||
| 5.3.17.3. job-media-sheets (integer(0:MAX)) | 5.3.17.3. job-media-sheets (integer(1:MAX)) | |||
| This RECOMMENDED attribute specifies the total number of Media Sheets | This RECOMMENDED attribute specifies the total number of Media Sheets | |||
| to be produced for this Job. | to be produced for this Job. | |||
| Unlike the "job-k-octets" and the "job-impressions" attributes, this | Unlike the "job-k-octets" and the "job-impressions" attributes, this | |||
| value MUST include the multiplicative factors contributed by the | value MUST include the multiplicative factors contributed by the | |||
| number of copies specified by the "copies" attribute and a 'number of | number of copies specified by the "copies" attribute and a 'number of | |||
| copies' instruction embedded in the Document data, if any. This | copies' instruction embedded in the Document data, if any. This | |||
| difference allows the Administrator to control the lower and upper | difference allows the Administrator to control the lower and upper | |||
| bounds of both (1) the size of the Document(s) with | bounds of both (1) the size of the Document(s) with | |||
| skipping to change at page 139, line 5 | skipping to change at page 138, line 40 | |||
| These attributes form the attribute group called | These attributes form the attribute group called | |||
| "printer-description". Tables 16 and 17 summarize these attributes, | "printer-description". Tables 16 and 17 summarize these attributes, | |||
| their syntax, and whether they are REQUIRED for a Printer to support. | their syntax, and whether they are REQUIRED for a Printer to support. | |||
| If they are not indicated as REQUIRED, they are OPTIONAL. The | If they are not indicated as REQUIRED, they are OPTIONAL. The | |||
| maximum size in octets for 'text' and 'name' attributes is indicated | maximum size in octets for 'text' and 'name' attributes is indicated | |||
| in parentheses. | in parentheses. | |||
| Note: How these attributes are set by an Administrator is outside the | Note: How these attributes are set by an Administrator is outside the | |||
| scope of this document. | scope of this document. | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | Attribute | Syntax | REQUIRED? | | | Attribute | Syntax | REQUIRED? | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | charset-configured | charset | REQUIRED | | | charset-configured | charset | REQUIRED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | charset-supported | 1setOf charset | REQUIRED | | | charset-supported | 1setOf charset | REQUIRED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | color-supported | boolean | RECOMMENDED | | | color-supported | boolean | RECOMMENDED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | compression-supported | 1setOf type2 | REQUIRED | | | compression-supported | 1setOf type2 keyword | REQUIRED | | |||
| | | keyword | | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | document-format-default | mimeMediaType | REQUIRED | | |||
| | document-format-default | mimeMediaType | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | document-format-supported | 1setOf mimeMediaType | REQUIRED | | |||
| | document-format-supported | 1setOf | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| | | mimeMediaType | | | | generated-natural-language- | 1setOf | REQUIRED | | |||
| +-----------------------------------+-----------------+-------------+ | | supported | naturalLanguage | | | |||
| | generated-natural-language- | 1setOf | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| | supported | naturalLanguage | | | | ipp-versions-supported | 1setOf type2 keyword | REQUIRED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | ipp-versions-supported | 1setOf type2 | REQUIRED | | | job-impressions-supported | rangeOfInteger(0:MAX) | RECOMMENDED | | |||
| | | keyword | | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | job-k-octets-supported | rangeOfInteger(0:MAX) | | | |||
| | job-impressions-supported | rangeOfInteger | RECOMMENDED | | +-----------------------------+-----------------------+-------------+ | |||
| | | (0:MAX) | | | | job-media-sheets-supported | rangeOfInteger(1:MAX) | | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | job-k-octets-supported | rangeOfInteger | | | | multiple-document-jobs- | boolean | RECOMMENDED | | |||
| | | (0:MAX) | | | | supported | | | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | job-media-sheets-supported | rangeOfInteger | | | | multiple-operation-time-out | integer(1:MAX) | RECOMMENDED | | |||
| | | (0:MAX) | | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | natural-language-configured | naturalLanguage | REQUIRED | | |||
| | multiple-document-jobs-supported | boolean | RECOMMENDED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | operations-supported | 1setOf type2 enum | REQUIRED | | |||
| | multiple-operation-time-out | integer(1:MAX) | RECOMMENDED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | pdl-override-supported | type2 keyword | REQUIRED | | |||
| | natural-language-configured | naturalLanguage | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | printer-driver-installer | uri | | | |||
| | operations-supported | 1setOf type2 | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| | | enum | | | | printer-info | text(127) | RECOMMENDED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | pdl-override-supported | type2 keyword | REQUIRED | | | printer-location | text(127) | RECOMMENDED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | printer-driver-installer | uri | | | | printer-make-and-model | text(127) | RECOMMENDED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | printer-info | text(127) | RECOMMENDED | | | printer-message-from- | text(127) | | | |||
| +-----------------------------------+-----------------+-------------+ | | operator | | | | |||
| | printer-location | text(127) | RECOMMENDED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | | printer-more-info- | uri | | | |||
| | printer-make-and-model | text(127) | RECOMMENDED | | | manufacturer | | | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | printer-message-from-operator | text(127) | | | | printer-name | name(127) | REQUIRED | | |||
| +-----------------------------------+-----------------+-------------+ | +-----------------------------+-----------------------+-------------+ | |||
| | printer-more-info-manufacturer | uri | | | | reference-uri-schemes- | 1setOf uriScheme | | | |||
| +-----------------------------------+-----------------+-------------+ | | supported | | | | |||
| | printer-name | name(127) | REQUIRED | | +-----------------------------+-----------------------+-------------+ | |||
| +-----------------------------------+-----------------+-------------+ | ||||
| | reference-uri-schemes-supported | 1setOf | | | ||||
| | | uriScheme | | | ||||
| +-----------------------------------+-----------------+-------------+ | ||||
| Table 16: Printer Description Attributes (READ-WRITE) | Table 16: Printer Description Attributes (READ-WRITE) | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | Attribute | Syntax | REQUIRED? | | | Attribute | Syntax | REQUIRED? | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | pages-per-minute-color | integer(0:MAX) | RECOMMENDED | | | pages-per-minute-color | integer(0:MAX) | RECOMMENDED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | pages-per-minute | integer(0:MAX) | RECOMMENDED | | | pages-per-minute | integer(0:MAX) | RECOMMENDED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-current-time | dateTime | RECOMMENDED | | | printer-current-time | dateTime|unknown | RECOMMENDED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-is-accepting-jobs | boolean | REQUIRED | | | printer-is-accepting-jobs | boolean | REQUIRED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-more-info | uri | RECOMMENDED | | | printer-more-info | uri | RECOMMENDED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-state | type1 enum | REQUIRED | | | printer-state | type1 enum | REQUIRED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-state-message | text(MAX) | RECOMMENDED | | | printer-state-message | text(MAX) | RECOMMENDED | | |||
| +------------------------------+----------------------+-------------+ | +------------------------------+----------------------+-------------+ | |||
| | printer-state-reasons | 1setOf type2 keyword | REQUIRED | | | printer-state-reasons | 1setOf type2 keyword | REQUIRED | | |||
| skipping to change at page 144, line 23 | skipping to change at page 144, line 8 | |||
| 5.4.5. printer-location (text(127)) | 5.4.5. printer-location (text(127)) | |||
| This RECOMMENDED Printer attribute identifies the location of the | This RECOMMENDED Printer attribute identifies the location of the | |||
| device. This could include things like 'in Room 123A, second floor | device. This could include things like 'in Room 123A, second floor | |||
| of building XYZ'. | of building XYZ'. | |||
| 5.4.6. printer-info (text(127)) | 5.4.6. printer-info (text(127)) | |||
| This RECOMMENDED Printer attribute provides descriptive information | This RECOMMENDED Printer attribute provides descriptive information | |||
| about this Printer. This could include things like 'This Printer can | about this Printer. This could include things like 'This printer can | |||
| be used for printing color transparencies for HR presentations', or | be used for printing color transparencies for HR presentations', or | |||
| 'Out of courtesy for others, please print only small (1-5 page) Jobs | 'Out of courtesy for others, please print only small (1-5 page) jobs | |||
| at this Printer', or even 'This Printer is going away on July 1; | at this printer', or even 'This printer is going away on July 1; | |||
| please find a new Printer'. | please find a new printer'. | |||
| 5.4.7. printer-more-info (uri) | 5.4.7. printer-more-info (uri) | |||
| This RECOMMENDED Printer attribute contains a URI used to obtain more | This RECOMMENDED Printer attribute contains a URI used to obtain more | |||
| information about this specific Printer. For example, this could be | information about this specific Printer. For example, this could be | |||
| an HTTP URI referencing an HTML page accessible to a web browser. | an HTTP URI referencing an HTML page accessible to a web browser. | |||
| The information obtained from this URI is intended for End User | The information obtained from this URI is intended for End User | |||
| consumption. Features outside the scope of IPP can be accessed from | consumption. Features outside the scope of IPP can be accessed from | |||
| this URI. The information is intended to be specific to this Printer | this URI. The information is intended to be specific to this Printer | |||
| instance and site-specific services, e.g., Job pricing, services | instance and site-specific services, e.g., Job pricing, services | |||
| skipping to change at page 150, line 49 | skipping to change at page 150, line 31 | |||
| Semantics document (this document) or the IPP Encoding and | Semantics document (this document) or the IPP Encoding and | |||
| Transport document [RFC8010] following the rules, if any, when the | Transport document [RFC8010] following the rules, if any, when the | |||
| "version-number" parameter is '1.0'. | "version-number" parameter is '1.0'. | |||
| o '1.1': Meets the conformance requirements of IPP version 1.1 as | o '1.1': Meets the conformance requirements of IPP version 1.1 as | |||
| specified in this document and [RFC8010], including any extensions | specified in this document and [RFC8010], including any extensions | |||
| registered according to Section 7 and any extension defined in any | registered according to Section 7 and any extension defined in any | |||
| future versions of this document or [RFC8010] following the rules, | future versions of this document or [RFC8010] following the rules, | |||
| if any, when the "version-number" parameter is '1.1'. | if any, when the "version-number" parameter is '1.1'. | |||
| Additional values are defined in IPP 2.0, 2.1, and 2.2 [PWG5100.12]. | Additional values are defined in "IPP Version 2.0, 2.1, and 2.2" | |||
| [PWG5100.12]. | ||||
| 5.4.15. operations-supported (1setOf type2 enum) | 5.4.15. operations-supported (1setOf type2 enum) | |||
| This REQUIRED Printer attribute specifies the set of supported | This REQUIRED Printer attribute specifies the set of supported | |||
| operations for this Printer and contained Jobs. | operations for this Printer and contained Jobs. | |||
| This attribute is encoded as any other enum attribute syntax | This attribute is encoded as any other enum attribute syntax | |||
| according to [RFC8010] as 32 bits. However, all 32-bit enum values | according to [RFC8010] as 32 bits. However, all 32-bit enum values | |||
| for this attribute MUST NOT exceed 0x00007fff, since these same | for this attribute MUST NOT exceed 0x00007fff, since these same | |||
| values are also passed in two octets in the "operation-id" parameter | values are also passed in two octets in the "operation-id" field (see | |||
| (see Section 4.1.1) in each Protocol request with the two high-order | Section 4.1.1) in each Protocol request with the two high-order | |||
| octets omitted in order to indicate the operation being performed | octets omitted in order to indicate the operation being performed | |||
| [RFC8010]. | [RFC8010]. | |||
| Table 19 lists the "operations-supported" and "operation-id" (see | Table 19 lists the "operations-supported" attribute and "operation- | |||
| Section 4.1.2) enum values that are defined in this document. | id" parameter (see Section 4.1.2) enum values that are defined in | |||
| this document. | ||||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | Value | Operation Name | | | Value | Operation Name | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0000 | reserved, not used | | | 0x0000 | reserved, not used | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0001 | reserved, not used | | | 0x0001 | reserved, not used | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0002 | Print-Job | | | 0x0002 | Print-Job | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| skipping to change at page 152, line 46 | skipping to change at page 151, line 46 | |||
| | 0x000e | Restart-Job | | | 0x000e | Restart-Job | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x000f | reserved for a future operation | | | 0x000f | reserved for a future operation | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0010 | Pause-Printer | | | 0x0010 | Pause-Printer | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0011 | Resume-Printer | | | 0x0011 | Resume-Printer | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0012 | Purge-Jobs | | | 0x0012 | Purge-Jobs | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x0013-0x3fff | reserved for future Standards Track operations | | | 0x0013-0x3fff | additional registered operations (see the IANA | | |||
| | | (see Section 7.8) | | | | IPP registry and Section 7.8) | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| | 0x4000-0x7fff | reserved for vendor extensions (see Section 7.8) | | | 0x4000-0x7fff | reserved for vendor extensions (see Section 7.8) | | |||
| +---------------+---------------------------------------------------+ | +---------------+---------------------------------------------------+ | |||
| Table 19: "operations-supported" and "operation-id" Enum Values | Table 19: "operations-supported" Enum Values | |||
| 5.4.16. multiple-document-jobs-supported (boolean) | 5.4.16. multiple-document-jobs-supported (boolean) | |||
| This RECOMMENDED Printer attribute indicates whether the Printer | This RECOMMENDED Printer attribute indicates whether the Printer | |||
| supports more than one Document per Job, i.e., more than one | supports more than one Document per Job, i.e., more than one | |||
| Send-Document operation with Document data and/or Send-URI | Send-Document operation with Document data and/or Send-URI | |||
| operations. If the Printer supports the Create-Job and Send-Document | operations. If the Printer supports the Create-Job and Send-Document | |||
| operations (see Sections 4.2.4 and 4.3.1), it MUST support this | operations (see Sections 4.2.4 and 4.3.1), it MUST support this | |||
| attribute. | attribute. | |||
| skipping to change at page 157, line 5 | skipping to change at page 156, line 5 | |||
| representing are restarted or power-cycled, the Printer MAY continue | representing are restarted or power-cycled, the Printer MAY continue | |||
| counting this value or MAY reset this value to 1, depending on | counting this value or MAY reset this value to 1, depending on | |||
| implementation. However, if the Printer software ceases running and | implementation. However, if the Printer software ceases running and | |||
| restarts without knowing the last value for "printer-up-time", the | restarts without knowing the last value for "printer-up-time", the | |||
| implementation MUST reset this value to 1. If this value is reset | implementation MUST reset this value to 1. If this value is reset | |||
| and the Printer has persistent Jobs, the Printer MUST reset the | and the Printer has persistent Jobs, the Printer MUST reset the | |||
| "time-at-xxx (integer)" Event Time Job Status attributes according to | "time-at-xxx (integer)" Event Time Job Status attributes according to | |||
| Section 5.3.14. An implementation MAY use both implementation | Section 5.3.14. An implementation MAY use both implementation | |||
| alternatives, depending on warm versus cold start, respectively. | alternatives, depending on warm versus cold start, respectively. | |||
| 5.4.30. printer-current-time (dateTime) | 5.4.30. printer-current-time (dateTime|unknown) | |||
| This RECOMMENDED Printer attribute indicates the current date and | This RECOMMENDED Printer attribute indicates the current date and | |||
| time. This value is used to populate the Event Time Job Status | time. This value is used to populate the Event Time Job Status | |||
| attributes "date-time-at-creation", "date-time-at-processing", and | attributes "date-time-at-creation", "date-time-at-processing", and | |||
| "date-time-at-completed" (see Section 5.3.14). | "date-time-at-completed" (see Section 5.3.14). | |||
| This value is obtained on a "best effort" basis and in practice does | This value is obtained on a "best effort" basis and in practice does | |||
| not have to be precise in order to be useful. A Printer | not have to be precise in order to be useful. A Printer | |||
| implementation sets the value of this attribute by obtaining the date | implementation sets the value of this attribute by obtaining the date | |||
| and time via some implementation-dependent means, such as getting the | and time via some implementation-dependent means, such as getting the | |||
| value from a network time server, initialization at time of | value from a network time server, initialization at time of | |||
| manufacture, or setting by an Administrator. See [RFC3196] and | manufacture, or setting by an Administrator. See [RFC3196] and | |||
| [PWG5100.19] for examples. If an implementation supports this | [PWG5100.19] for examples. If an implementation supports this | |||
| attribute and the implementation knows that it has not yet been set, | attribute and the implementation knows that it has not yet been set, | |||
| then the implementation MUST return the value of this attribute using | then the implementation MUST return the value of this attribute using | |||
| the out-of-band 'no-value', meaning not configured. See the | the out-of-band 'unknown', meaning the value is not yet known. See | |||
| beginning of Section 5.1. | the beginning of Section 5.1. | |||
| The time zone of this attribute might not be the time zone used by | The time zone of this attribute might not be the time zone used by | |||
| people located near the Printer or device. The Client MUST NOT | people located near the Printer or device. The Client MUST NOT | |||
| expect the time zone of any received 'dateTime' value to be in the | expect the time zone of any received 'dateTime' value to be in the | |||
| time zone of the Client or in the time zone of the people located | time zone of the Client or in the time zone of the people located | |||
| near the Printer. | near the Printer. | |||
| The Client SHOULD display any dateTime attributes to the user in the | The Client SHOULD display any dateTime attributes to the user in the | |||
| Client's local time by converting the 'dateTime' value returned by | Client's local time by converting the 'dateTime' value returned by | |||
| the server to the time zone of the Client, rather than using the time | the server to the time zone of the Client, rather than using the time | |||
| zone returned by the Printer in attributes that use the 'dateTime' | zone returned by the Printer in attributes that use the 'dateTime' | |||
| attribute syntax. | attribute syntax. | |||
| Note: Prior versions of this document incorrectly specified the use | ||||
| of the 'no-value' out-of-band value when the current date and time | ||||
| had not been set. The correct out-of-band value is 'unknown' since | ||||
| there is always an intrinsic current date and time. | ||||
| 5.4.31. multiple-operation-time-out (integer(1:MAX)) | 5.4.31. multiple-operation-time-out (integer(1:MAX)) | |||
| This RECOMMENDED Printer attribute identifies the minimum time (in | This RECOMMENDED Printer attribute identifies the minimum time (in | |||
| seconds) that the Printer waits for additional Send-Document or | seconds) that the Printer waits for additional Send-Document or | |||
| Send-URI operations to follow a still-open Job before taking any | Send-URI operations to follow a still-open Job before taking any | |||
| recovery actions, such as the ones indicated in Section 4.3.1. If | recovery actions, such as the ones indicated in Section 4.3.1. If | |||
| the Printer supports the Create-Job and Send-Document operations (see | the Printer supports the Create-Job and Send-Document operations (see | |||
| Sections 4.2.4 and 4.3.1), it MUST support this attribute. | Sections 4.2.4 and 4.3.1), it MUST support this attribute. | |||
| Printers SHOULD use a value between '60' and '240' (seconds). An | Printers SHOULD use a value between '60' and '240' (seconds). An | |||
| skipping to change at page 158, line 45 | skipping to change at page 157, line 47 | |||
| 5.4.34. job-impressions-supported (rangeOfInteger(0:MAX)) | 5.4.34. job-impressions-supported (rangeOfInteger(0:MAX)) | |||
| This RECOMMENDED Printer attribute specifies the upper and lower | This RECOMMENDED Printer attribute specifies the upper and lower | |||
| bounds for the number of Impressions per Job. The supported values | bounds for the number of Impressions per Job. The supported values | |||
| are used to validate the Client-supplied "job-impressions" operation | are used to validate the Client-supplied "job-impressions" operation | |||
| attribute in Job Creation requests. The corresponding Job | attribute in Job Creation requests. The corresponding Job | |||
| Description attribute "job-impressions" is defined in | Description attribute "job-impressions" is defined in | |||
| Section 5.3.17.2. | Section 5.3.17.2. | |||
| 5.4.35. job-media-sheets-supported (rangeOfInteger(0:MAX)) | 5.4.35. job-media-sheets-supported (rangeOfInteger(1:MAX)) | |||
| This Printer attribute specifies the upper and lower bounds for the | This Printer attribute specifies the upper and lower bounds for the | |||
| number of Media Sheets per Job. The supported values are used to | number of Media Sheets per Job. The supported values are used to | |||
| validate the Client-supplied "job-media-sheets" operation attribute | validate the Client-supplied "job-media-sheets" operation attribute | |||
| in Job Creation requests. The corresponding Job attribute | in Job Creation requests. The corresponding Job attribute | |||
| "job-media-sheets" is defined in Section 5.3.17.3. | "job-media-sheets" is defined in Section 5.3.17.3. | |||
| 5.4.36. pages-per-minute (integer(0:MAX)) | 5.4.36. pages-per-minute (integer(0:MAX)) | |||
| This RECOMMENDED Printer attribute specifies the nominal number of | This RECOMMENDED Printer attribute specifies the nominal number of | |||
| skipping to change at page 160, line 45 | skipping to change at page 159, line 51 | |||
| MUST accept and process both the 'textWithoutLanguage' and | MUST accept and process both the 'textWithoutLanguage' and | |||
| 'textWithLanguage' forms. Similarly, for each attribute that the | 'textWithLanguage' forms. Similarly, for each attribute that the | |||
| Client supports whose attribute syntax is 'name', the Client MUST | Client supports whose attribute syntax is 'name', the Client MUST | |||
| accept and process both the 'nameWithoutLanguage' and | accept and process both the 'nameWithoutLanguage' and | |||
| 'nameWithLanguage' forms. For presentation purposes, truncation of | 'nameWithLanguage' forms. For presentation purposes, truncation of | |||
| long attribute values is not recommended. A recommended approach | long attribute values is not recommended. A recommended approach | |||
| would be for the Client implementation to allow the user to scroll | would be for the Client implementation to allow the user to scroll | |||
| through long attribute values. | through long attribute values. | |||
| A response MAY contain attribute groups, attributes, attribute | A response MAY contain attribute groups, attributes, attribute | |||
| syntaxes, values, and status-codes that the Client does not expect. | syntaxes, values, and status-code values that the Client does not | |||
| Therefore, a Client implementation MUST gracefully handle such | expect. Therefore, a Client implementation MUST gracefully handle | |||
| responses and not refuse to interoperate with a conforming Printer | such responses and not refuse to interoperate with a conforming | |||
| that is returning Standards Track extensions or vendor extensions, | Printer that is returning Standards Track extensions or vendor | |||
| including attribute groups, attributes, attribute syntaxes, attribute | extensions, including attribute groups, attributes, attribute | |||
| values, status-codes, and out-of-band attribute values that conform | syntaxes, attribute values, status-code values, and out-of-band | |||
| to Section 7. Clients can choose to ignore any parameters, attribute | attribute values that conform to Section 7. Clients can choose to | |||
| groups, attributes, attribute syntaxes, or values that they do not | ignore any parameters, attribute groups, attributes, attribute | |||
| understand. | syntaxes, or values that they do not understand. | |||
| While a Client is sending data to a Printer, it SHOULD do its best to | While a Client is sending data to a Printer, it SHOULD do its best to | |||
| prevent a channel from being closed by a lower layer when the channel | prevent a channel from being closed by a lower layer when the channel | |||
| is blocked (i.e., flow-controlled off) for whatever reason, e.g., | is blocked (i.e., flow-controlled off) for whatever reason, e.g., | |||
| 'out of paper' or 'Job ahead hasn't freed up enough memory'. | 'out of paper' or 'Job ahead hasn't freed up enough memory'. | |||
| However, the layer that launched the print submission (e.g., an End | However, the layer that launched the print submission (e.g., an End | |||
| User) MAY close the channel in order to cancel the Job. When a | User) MAY close the channel in order to cancel the Job. When a | |||
| Client closes a channel, a Printer MAY print all or part of the | Client closes a channel, a Printer MAY print all or part of the | |||
| received portion of the Document. See the Encoding and Transport | received portion of the Document. See the Encoding and Transport | |||
| document [RFC8010] for more details. | document [RFC8010] for more details. | |||
| skipping to change at page 163, line 9 | skipping to change at page 162, line 33 | |||
| Conforming IPP objects MUST support all REQUIRED operation attributes | Conforming IPP objects MUST support all REQUIRED operation attributes | |||
| and all values of such attributes if so indicated in the description. | and all values of such attributes if so indicated in the description. | |||
| Conforming IPP objects MUST ignore all unsupported or unknown | Conforming IPP objects MUST ignore all unsupported or unknown | |||
| operation attributes or operation attribute groups received in a | operation attributes or operation attribute groups received in a | |||
| request but MUST reject a request that contains a supported operation | request but MUST reject a request that contains a supported operation | |||
| attribute that contains an unsupported value. | attribute that contains an unsupported value. | |||
| Conforming IPP objects MAY return operation responses that contain | Conforming IPP objects MAY return operation responses that contain | |||
| attribute groups, attribute names, attribute syntaxes, attribute | attribute groups, attribute names, attribute syntaxes, attribute | |||
| values, and status-codes that are extensions to this specification. | values, and status-code values that are extensions to this | |||
| The additional attribute groups MAY occur in any order. | specification. The additional attribute groups MAY occur in any | |||
| order. | ||||
| The following section on object attributes specifies the support | The following section on object attributes specifies the support | |||
| required for object attributes. | required for object attributes. | |||
| 6.2.3. IPP Object Attributes | 6.2.3. IPP Object Attributes | |||
| Conforming IPP objects MUST support all of the REQUIRED object | Conforming IPP objects MUST support all of the REQUIRED object | |||
| attributes, as defined in this document in the indicated sections. | attributes, as defined in this document in the indicated sections. | |||
| If an object supports an attribute, it MUST support only those values | If an object supports an attribute, it MUST support only those values | |||
| skipping to change at page 165, line 44 | skipping to change at page 165, line 27 | |||
| 4. Enum Attribute Values | 4. Enum Attribute Values | |||
| 5. Attribute Group Tags | 5. Attribute Group Tags | |||
| 6. Out-of-Band Attribute Value Tags | 6. Out-of-Band Attribute Value Tags | |||
| 7. Attribute Syntaxes | 7. Attribute Syntaxes | |||
| 8. Operations | 8. Operations | |||
| 9. Status-Codes | 9. Status-Code Values | |||
| Extensions registered for use with IPP are OPTIONAL for Client and | Extensions registered for use with IPP are OPTIONAL for Client and | |||
| IPP object conformance to the IPP/1.1 Model and Semantics document | IPP object conformance to the IPP/1.1 Model and Semantics document | |||
| (this document). | (this document). | |||
| These extension procedures are aligned with the guidelines as set | These extension procedures are aligned with the guidelines as set | |||
| forth in "Guidelines for Writing an IANA Considerations Section in | forth in "Guidelines for Writing an IANA Considerations Section in | |||
| RFCs" [RFC5226]. Appendix A describes how to propose new | RFCs" [RFC5226]. Appendix A describes how to propose new | |||
| registrations for consideration. IANA will reject registration | registrations for consideration. IANA will reject registration | |||
| proposals that leave out required information or do not follow the | proposals that leave out required information or do not follow the | |||
| skipping to change at page 166, line 36 | skipping to change at page 166, line 20 | |||
| The IANA policy (using terms defined in [RFC5226]) for object | The IANA policy (using terms defined in [RFC5226]) for object | |||
| extensions was formerly Expert Review; this document changes the | extensions was formerly Expert Review; this document changes the | |||
| policy to Specification Required. | policy to Specification Required. | |||
| 7.2. Attribute Extensibility | 7.2. Attribute Extensibility | |||
| Since attribute names are type2 keywords (see Section 5.1.4), the | Since attribute names are type2 keywords (see Section 5.1.4), the | |||
| IANA policy (using terms defined in [RFC5226]) for attribute | IANA policy (using terms defined in [RFC5226]) for attribute | |||
| extensions is Expert Review. | extensions is Expert Review. | |||
| For vendor attribute extensions, implementers SHOULD use keywords | For vendor attribute extensions, implementors SHOULD use keywords | |||
| with a suitable distinguishing prefix such as 'smiNNN-' where NNN is | with a suitable distinguishing prefix such as 'smiNNN-' where NNN is | |||
| an SMI Private Enterprise Number (PEN) [IANA-PEN]. For example, if | an SMI Private Enterprise Number (PEN) [IANA-PEN]. For example, if | |||
| the company Example Corp. had obtained the SMI PEN 32473, then a | the company Example Corp. had obtained the SMI PEN 32473, then a | |||
| vendor attribute 'foo' would be 'smi32473-foo'. | vendor attribute 'foo' would be 'smi32473-foo'. | |||
| Note: Prior versions of this document recommended using a fully | Note: Prior versions of this document recommended using a fully | |||
| qualified domain name [RFC1035] as the prefix (e.g., | qualified domain name [RFC1035] as the prefix (e.g., | |||
| 'example.com-foo'), and many IPP implementations have also used | 'example.com-foo'), and many IPP implementations have also used | |||
| reversed domain names (e.g., 'com.example-foo'). Domain names | reversed domain names (e.g., 'com.example-foo'). Domain names | |||
| have proven problematic due to the length of some domain names, | have proven problematic due to the length of some domain names, | |||
| skipping to change at page 167, line 41 | skipping to change at page 167, line 24 | |||
| Note: The type1 or type2 prefix on the basic attribute syntax is | Note: The type1 or type2 prefix on the basic attribute syntax is | |||
| provided only to communicate the IANA policy required for | provided only to communicate the IANA policy required for | |||
| registration and is not represented in IPP messages. Both type1 | registration and is not represented in IPP messages. Both type1 | |||
| and type2 'keyword' values are represented using the same | and type2 'keyword' values are represented using the same | |||
| 'keyword' value tag. | 'keyword' value tag. | |||
| For type1 and type2 keywords, the proposer includes the name of the | For type1 and type2 keywords, the proposer includes the name of the | |||
| keyword in the registration proposal, and the name is part of the | keyword in the registration proposal, and the name is part of the | |||
| technical review. | technical review. | |||
| For vendor keyword extensions, implementers SHOULD either: | For vendor keyword extensions, implementors SHOULD either: | |||
| a. follow attribute-specific guidance such as the guidance defined | a. follow attribute-specific guidance such as the guidance defined | |||
| in [PWG5101.1], or | in [PWG5101.1], or | |||
| b. use keywords with a suitable distinguishing prefix, such as | b. use keywords with a suitable distinguishing prefix, such as | |||
| 'smiNNN-' where NNN is an SMI Private Enterprise Number (PEN) | 'smiNNN-' where NNN is an SMI Private Enterprise Number (PEN) | |||
| [IANA-PEN]. | [IANA-PEN]. | |||
| For example, if the company Example Corp. had obtained the | For example, if the company Example Corp. had obtained the | |||
| SMI PEN 32473, then a vendor keyword 'foo' would be 'smi32473-foo'. | SMI PEN 32473, then a vendor keyword 'foo' would be 'smi32473-foo'. | |||
| skipping to change at page 168, line 32 | skipping to change at page 168, line 14 | |||
| extensions is First Come First Served. Only attributes using the | extensions is First Come First Served. Only attributes using the | |||
| type1 and type2 enum syntax can be registered in the IANA IPP | type1 and type2 enum syntax can be registered in the IANA IPP | |||
| registry. | registry. | |||
| Note: The type1 or type2 prefix on the basic attribute syntax is | Note: The type1 or type2 prefix on the basic attribute syntax is | |||
| provided only to communicate the IANA policy required for | provided only to communicate the IANA policy required for | |||
| registration and is not represented in IPP messages. Both type1 | registration and is not represented in IPP messages. Both type1 | |||
| and type2 enum values are represented using the same enum | and type2 enum values are represented using the same enum | |||
| value tag. | value tag. | |||
| For vendor enum extensions, implementers MUST use values in the | For vendor enum extensions, implementors MUST use values in the | |||
| reserved integer range, which is 0x4000000 to 0x7fffffff. | reserved integer range, which is 0x40000000 to 0x7fffffff. | |||
| Implementors SHOULD consult with the IPP Designated Expert(s) to | Implementors SHOULD consult with the IPP Designated Expert(s) to | |||
| reserve vendor extension value(s) for their usage. | reserve vendor extension value(s) for their usage. | |||
| When a type1 or type2 enum extension is approved, the IPP Designated | When a type1 or type2 enum extension is approved, the IPP Designated | |||
| Expert(s), in consultation with IANA, assigns the next available enum | Expert(s), in consultation with IANA, assigns the next available enum | |||
| number for each enum value. | number for each enum value. | |||
| When a type2 enum extension is approved, the IPP Designated Expert(s) | When a type2 enum extension is approved, the IPP Designated Expert(s) | |||
| becomes the point of contact for any future maintenance that might be | becomes the point of contact for any future maintenance that might be | |||
| required for that registration. | required for that registration. | |||
| skipping to change at page 169, line 28 | skipping to change at page 169, line 8 | |||
| 7.7. Attribute Syntax Extensibility | 7.7. Attribute Syntax Extensibility | |||
| The IANA policy (using terms defined in [RFC5226]) for attribute | The IANA policy (using terms defined in [RFC5226]) for attribute | |||
| syntax extensions was formerly Expert Review; this document changes | syntax extensions was formerly Expert Review; this document changes | |||
| the policy to Specification Required. The IANA policy for vendor | the policy to Specification Required. The IANA policy for vendor | |||
| attribute syntax extensions (tags 0x40000000 to 0x7fffffff) is First | attribute syntax extensions (tags 0x40000000 to 0x7fffffff) is First | |||
| Come First Served. Only attribute syntaxes in the range of | Come First Served. Only attribute syntaxes in the range of | |||
| 0x00000000 to 0x3fffffff can be registered in the IANA IPP registry. | 0x00000000 to 0x3fffffff can be registered in the IANA IPP registry. | |||
| For vendor attribute syntax extensions, implementers MUST use values | For vendor attribute syntax extensions, implementors MUST use values | |||
| in the reserved integer range, which is 0x4000000 to 0x7fffffff. | in the reserved integer range, which is 0x4000000 to 0x7fffffff. | |||
| Implementors SHOULD consult with the IPP Designated Expert(s) to | Implementors SHOULD consult with the IPP Designated Expert(s) to | |||
| reserve vendor extension value(s) for their usage. | reserve vendor extension value(s) for their usage. | |||
| For registered attribute syntaxes, the IPP Designated Expert(s), in | For registered attribute syntaxes, the IPP Designated Expert(s), in | |||
| consultation with IANA, assigns the next attribute syntax tag in the | consultation with IANA, assigns the next attribute syntax tag in the | |||
| appropriate range as specified in [RFC8010]. | appropriate range as specified in [RFC8010]. | |||
| 7.8. Operation Extensibility | 7.8. Operation Extensibility | |||
| The IANA policy (using terms defined in [RFC5226]) for operation | The IANA policy (using terms defined in [RFC5226]) for operation | |||
| extensions is Expert Review. The IANA policy for vendor operation | extensions is Expert Review. The IANA policy for vendor operation | |||
| extensions (values 0x40000000 to 0x7fffffff) is First Come First | extensions (values 0x4000 to 0x7fff) is First Come First Served. | |||
| Served. Only operation codes in the range of 0x00000000 to | Only operation codes in the range of 0x0000 to 0x3fff can be | |||
| 0x3fffffff can be registered in the IANA IPP registry. | registered in the IANA IPP registry. | |||
| For vendor operation extensions, implementers MUST use values in the | For vendor operation extensions, implementors MUST use values in the | |||
| reserved integer range, which is 0x4000000 to 0x7fffffff. | reserved integer range, which is 0x4000 to 0x7fff. Implementors | |||
| Implementors SHOULD consult with the IPP Designated Expert(s) to | SHOULD consult with the IPP Designated Expert(s) to reserve vendor | |||
| reserve vendor extension value(s) for their usage. | extension value(s) for their usage. | |||
| For registered operation extensions, the IPP Designated Expert(s), in | For registered operation extensions, the IPP Designated Expert(s), in | |||
| consultation with IANA, assigns the next "operation-id" code as | consultation with IANA, assigns the next "operation-id" code as | |||
| specified in Section 5.4.15. | specified in Section 5.4.15. | |||
| 7.9. Status-Code Extensibility | 7.9. Status-Code Extensibility | |||
| The IANA policy (using terms defined in [RFC5226]) for status-code | The IANA policy (using terms defined in [RFC5226]) for status-code | |||
| extensions is Expert Review. The IANA policy for vendor status-code | extensions is Expert Review. The IANA policy for vendor status-code | |||
| extensions (codes 0x0n80 to 0x0nff, for n = 0 to 5) is First Come | extensions (codes 0x0n80 to 0x0nff, for n = 0 to 5) is First Come | |||
| First Served. Only status-codes in the range of 0x0n00 to 0x0nff can | First Served. Only status-code values in the range of 0x0n00 to | |||
| be registered in the IANA IPP registry. | 0x0n7f can be registered in the IANA IPP registry. [M.Sweet] This | |||
| text is correct, the IANA registry should be updated. | ||||
| The values for status-codes are allocated in ranges as specified in | The status-code values are allocated in ranges as specified in | |||
| Appendix B for each status-code class: | Appendix B for each status-code class: | |||
| "informational" - Request received, continuing process | "informational" - Request received, continuing process | |||
| "successful" - The action was successfully received, understood, and | "successful" - The action was successfully received, understood, and | |||
| accepted | accepted | |||
| "redirection" - Further action is taken in order to complete the | "redirection" - Further action is taken in order to complete the | |||
| request | request | |||
| "client-error" - The request contains bad syntax or cannot be | "client-error" - The request contains bad syntax or cannot be | |||
| fulfilled | fulfilled | |||
| "server-error" - The IPP object failed to fulfill an apparently valid | "server-error" - The IPP object failed to fulfill an apparently valid | |||
| request | request | |||
| For vendor operation status-code extensions, implementers MUST use | For vendor operation status-code extensions, implementors MUST use | |||
| the top of each range (0x0n80 to 0x0nff) as specified in Appendix B. | the top of each range (0x0n80 to 0x0nff) as specified in Appendix B. | |||
| Implementors SHOULD consult with the IPP Designated Expert(s) to | Implementors SHOULD consult with the IPP Designated Expert(s) to | |||
| reserve vendor extension value(s) for their usage. | reserve vendor extension value(s) for their usage. | |||
| For registered operation status-codes, the IPP Designated Expert(s), | For registered operation status-code values, the IPP Designated | |||
| in consultation with IANA, assigns the next status-code in the | Expert(s), in consultation with IANA, assigns the next status-code in | |||
| appropriate class range as specified in Appendix B. | the appropriate class range as specified in Appendix B. | |||
| 8. Internationalization Considerations | 8. Internationalization Considerations | |||
| Some of the attributes have values that are text strings and names | Some of the attributes have values that are text strings and names | |||
| that are intended for human understanding rather than machine | that are intended for human understanding rather than machine | |||
| understanding (see the 'text' and 'name' attribute syntaxes in | understanding (see the 'text' and 'name' attribute syntaxes in | |||
| Sections 5.1.2 and 5.1.3). | Sections 5.1.2 and 5.1.3). | |||
| In each operation request, the Client | In each operation request, the Client | |||
| skipping to change at page 171, line 24 | skipping to change at page 171, line 6 | |||
| All IPP objects MUST support the UTF-8 [RFC3629] charset in all | All IPP objects MUST support the UTF-8 [RFC3629] charset in all | |||
| 'text' and 'name' attributes supported. If an IPP object supports | 'text' and 'name' attributes supported. If an IPP object supports | |||
| more than the UTF-8 charset, the object MUST convert between them in | more than the UTF-8 charset, the object MUST convert between them in | |||
| order to return the requested charset to the Client according to | order to return the requested charset to the Client according to | |||
| Section 4.1.4.2. If an IPP object supports more than one natural | Section 4.1.4.2. If an IPP object supports more than one natural | |||
| language, the object SHOULD return 'text' and 'name' values in the | language, the object SHOULD return 'text' and 'name' values in the | |||
| natural language requested where those values are generated by the | natural language requested where those values are generated by the | |||
| Printer (see Section 4.1.4.1). | Printer (see Section 4.1.4.1). | |||
| For Printers that support multiple charsets and/or multiple natural | For Printers that support multiple charsets and/or multiple natural | |||
| languages in 'text' and 'name' attributes, different Jobs may have | languages in 'text' and 'name' attributes, different Jobs might have | |||
| been submitted in differing charsets and/or natural languages. All | been submitted in differing charsets and/or natural languages. All | |||
| responses MUST be returned in the charset requested by the Client. | responses MUST be returned in the charset requested by the Client. | |||
| However, the Get-Jobs operation uses the 'textWithLanguage' and | However, the Get-Jobs operation uses the 'textWithLanguage' and | |||
| 'nameWithLanguage' mechanisms to identify the differing natural | 'nameWithLanguage' mechanisms to identify the differing natural | |||
| languages with each Job attribute returned. | languages with each Job attribute returned. | |||
| The Printer also has configured charset and natural language | The Printer also has configured charset and natural language | |||
| attributes. The Client can query the Printer to determine the list | attributes. The Client can query the Printer to determine the list | |||
| of charsets and natural languages supported by the Printer and what | of charsets and natural languages supported by the Printer and what | |||
| the Printer's configured values are. See the "charset-configured", | the Printer's configured values are. See the "charset-configured", | |||
| skipping to change at page 175, line 9 | skipping to change at page 174, line 39 | |||
| resources are not well understood, and there are no published | resources are not well understood, and there are no published | |||
| precedents regarding this scenario. | precedents regarding this scenario. | |||
| Once the authenticated identity of the requester has been supplied to | Once the authenticated identity of the requester has been supplied to | |||
| the IPP object, the object uses that identity to enforce any | the IPP object, the object uses that identity to enforce any | |||
| authorization policy that might be in place. For example, one site's | authorization policy that might be in place. For example, one site's | |||
| policy might be that only the Job owner is allowed to cancel a Job. | policy might be that only the Job owner is allowed to cancel a Job. | |||
| The details and mechanisms to set up a particular access control | The details and mechanisms to set up a particular access control | |||
| policy are not part of this document and are typically established | policy are not part of this document and are typically established | |||
| via some other type of administrative or access control framework. | via some other type of administrative or access control framework. | |||
| However, there are operation status-codes that allow an IPP server to | However, there are operation status-code values that allow an IPP | |||
| return information back to a Client about any potential access | server to return information back to a Client about any potential | |||
| control violations for an IPP object. | access control violations for an IPP object. | |||
| During a Job Creation request, the Client's identity is recorded in | During a Job Creation request, the Client's identity is recorded in | |||
| the Job object in an implementation-defined attribute. This | the Job object in an implementation-defined attribute. This | |||
| information can be used to verify a Client's identity for subsequent | information can be used to verify a Client's identity for subsequent | |||
| operations on that Job object in order to enforce any access control | operations on that Job object in order to enforce any access control | |||
| policy that might be in effect. See Section 9.3 below for more | policy that might be in effect. See Section 9.3 below for more | |||
| details. This and other information stored in the Job object can | details. This and other information stored in the Job object can | |||
| also be considered personal or sensitive in nature and can be | also be considered personal or sensitive in nature and can be | |||
| filtered out as part of a configured privacy policy (Section 9.4). | filtered out as part of a configured privacy policy (Section 9.4). | |||
| skipping to change at page 178, line 46 | skipping to change at page 178, line 33 | |||
| 'anonymous' -- then only authenticated Operators or Administrators of | 'anonymous' -- then only authenticated Operators or Administrators of | |||
| the IPP Printer could query the foreign Jobs with an IPP request. | the IPP Printer could query the foreign Jobs with an IPP request. | |||
| Alternatively, if the security policy is to allow users to query | Alternatively, if the security policy is to allow users to query | |||
| other users' Jobs, then the foreign Jobs would also be visible to an | other users' Jobs, then the foreign Jobs would also be visible to an | |||
| End User IPP Client using Get-Jobs and Get-Job-Attributes. | End User IPP Client using Get-Jobs and Get-Job-Attributes. | |||
| 10. Changes since RFC 2911 | 10. Changes since RFC 2911 | |||
| The following changes have been made since RFC 2911: | The following changes have been made since RFC 2911: | |||
| o Errata ID 364: Fixed range of "redirection" status-codes (to | o Errata ID 364: Fixed range of "redirection" status-code values (to | |||
| 0x03xx). | 0x03xx). | |||
| o Errata ID 694: Fixed range of vendor status-codes (0x0n80 to | o Errata ID 694: Fixed range of vendor status-code values (0x0n80 to | |||
| 0x0nff). | 0x0nff). | |||
| o Errata ID 3072: Reworded multiple-document-handling definition, | o Errata ID 3072: Reworded multiple-document-handling definition, | |||
| since it also applies to Jobs with a single Document and is the | since it also applies to Jobs with a single Document and is the | |||
| only interoperable way to request uncollated copies. | only interoperable way to request uncollated copies. | |||
| o Errata ID 3365: Fixed bad 'nameWithLanguage' maximum length by | o Errata ID 3365: Fixed bad 'nameWithLanguage' maximum length by | |||
| referencing the 'nameWithoutLanguage' section (i.e., | referencing the 'nameWithoutLanguage' section (i.e., | |||
| Section 5.1.3.1). | Section 5.1.3.1). | |||
| skipping to change at page 183, line 13 | skipping to change at page 182, line 37 | |||
| <http://www.rfc-editor.org/info/rfc1952>. | <http://www.rfc-editor.org/info/rfc1952>. | |||
| [RFC1977] Schryver, V., "PPP BSD Compression Protocol", RFC 1977, | [RFC1977] Schryver, V., "PPP BSD Compression Protocol", RFC 1977, | |||
| DOI 10.17487/RFC1977, August 1996, | DOI 10.17487/RFC1977, August 1996, | |||
| <http://www.rfc-editor.org/info/rfc1977>. | <http://www.rfc-editor.org/info/rfc1977>. | |||
| [RFC20] Cerf, V., "ASCII format for network interchange", STD 80, | [RFC20] Cerf, V., "ASCII format for network interchange", STD 80, | |||
| RFC 20, DOI 10.17487/RFC0020, October 1969, | RFC 20, DOI 10.17487/RFC0020, October 1969, | |||
| <http://www.rfc-editor.org/info/rfc20>. | <http://www.rfc-editor.org/info/rfc20>. | |||
| [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part One: Format of Internet Message | ||||
| Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | ||||
| <http://www.rfc-editor.org/info/rfc2045>. | ||||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
| DOI 10.17487/RFC2046, November 1996, | DOI 10.17487/RFC2046, November 1996, | |||
| <http://www.rfc-editor.org/info/rfc2046>. | <http://www.rfc-editor.org/info/rfc2046>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 188, line 36 | skipping to change at page 187, line 50 | |||
| to IPP as provided in Section 7 for: | to IPP as provided in Section 7 for: | |||
| 1. attributes | 1. attributes | |||
| 2. type2 'keyword' attribute values | 2. type2 'keyword' attribute values | |||
| 3. type2 'enum' attribute values | 3. type2 'enum' attribute values | |||
| 4. operations | 4. operations | |||
| 5. status-codes | 5. status-code values | |||
| A.1. Attribute Registration | A.1. Attribute Registration | |||
| Type of registration: attribute | Type of registration: attribute | |||
| Proposed keyword name of this attribute: | Proposed keyword name of this attribute: | |||
| Types of attributes (Document Description, Document Status, Document | Types of attributes (Document Description, Document Status, Document | |||
| Template, Event Notifications, Job Description, Job Status, Job | Template, Event Notifications, Job Description, Job Status, Job | |||
| Template, Operation, Printer Description, Printer Status, | Template, Operation, Printer Description, Printer Status, | |||
| skipping to change at page 191, line 22 | skipping to change at page 190, line 27 | |||
| consultation with IANA): | consultation with IANA): | |||
| Operations that this status-code can be used with: | Operations that this status-code can be used with: | |||
| Specification of this status-code (follow the style of Appendix B): | Specification of this status-code (follow the style of Appendix B): | |||
| Name of proposer: | Name of proposer: | |||
| Email address of proposer: | Email address of proposer: | |||
| Note: For status-codes, the Designated Expert will be the point of | Note: For status-code values, the Designated Expert will be the point | |||
| contact and change controller for the approved registration | of contact and change controller for the approved registration | |||
| specification, if any maintenance of the registration specification | specification, if any maintenance of the registration specification | |||
| is needed. | is needed. | |||
| Appendix B. Status-Codes and Suggested Status-Code Messages | Appendix B. Status-Code Values and Suggested Status-Code Messages | |||
| This section defines status-code enum keywords and values that are | This section defines status-code enum keywords and values that are | |||
| used to provide semantic information on the results of an operation | used to provide semantic information on the results of an operation | |||
| request. Each operation response MUST include a status-code. The | request. Each operation response MUST include a status-code. The | |||
| response MAY also contain a status message that provides a short | response MAY also contain a status message that provides a short | |||
| textual description of the status. The status-code is intended for | textual description of the status. The status-code is intended for | |||
| use by automata, and the status message is intended for the human End | use by automata, and the status message is intended for the human End | |||
| User. | User. | |||
| The prefix of the status keyword defines the class of response as | The prefix of the status keyword defines the class of response as | |||
| skipping to change at page 191, line 47 | skipping to change at page 191, line 4 | |||
| The prefix of the status keyword defines the class of response as | The prefix of the status keyword defines the class of response as | |||
| follows: | follows: | |||
| "informational" - Request received, continuing process | "informational" - Request received, continuing process | |||
| "successful" - The action was successfully received, understood, and | "successful" - The action was successfully received, understood, and | |||
| accepted | accepted | |||
| "redirection" - Further action is taken in order to complete the | "redirection" - Further action is taken in order to complete the | |||
| request | request | |||
| "client-error" - The request contains bad syntax or cannot be | "client-error" - The request contains bad syntax or cannot be | |||
| fulfilled | fulfilled | |||
| "server-error" - The IPP object failed to fulfill an apparently valid | "server-error" - The IPP object failed to fulfill an apparently valid | |||
| request | request | |||
| As with type2 enums, IPP status-codes are extensible. Regardless of | ||||
| whether all status-codes are recognized, IPP Clients MUST understand | As with type2 enums, IPP status-code values are extensible. | |||
| the class of any status-code, as indicated by the prefix, and treat | Regardless of whether all status-code values are recognized, IPP | |||
| any unrecognized response as being equivalent to the first | Clients MUST understand the class of any status-code, as indicated by | |||
| status-code of that class, with the exception that an unrecognized | the prefix, and treat any unrecognized response as being equivalent | |||
| response MUST NOT be cached. For example, if an unrecognized | to the first status-code of that class, with the exception that an | |||
| status-code of 'client-error-xxx-yyy' is received by the Client, it | unrecognized response MUST NOT be cached. For example, if an | |||
| can safely assume that there was something wrong with its request and | unrecognized status-code of 'client-error-xxx-yyy' is received by the | |||
| treat the response as if it had received a 'client-error-bad-request' | Client, it can safely assume that there was something wrong with its | |||
| status-code. The name of the enum is the suggested status message | request and treat the response as if it had received a | |||
| for US English. | 'client-error-bad-request' status-code. The name of the enum is the | |||
| suggested status message for US English. | ||||
| See [PWG5100.19] for guidelines on presenting status messages to End | See [PWG5100.19] for guidelines on presenting status messages to End | |||
| Users. | Users. | |||
| The status-code values range from 0x0000 to 0x7fff. The value ranges | The status-code values range from 0x0000 to 0x7fff. The value ranges | |||
| for each status-code class are as follows: | for each status-code class are as follows: | |||
| "successful" - 0x0000 to 0x00ff | "successful" - 0x0000 to 0x00ff | |||
| "informational" - 0x0100 to 0x01ff | "informational" - 0x0100 to 0x01ff | |||
| skipping to change at page 192, line 37 | skipping to change at page 191, line 43 | |||
| "client-error" - 0x0400 to 0x04ff | "client-error" - 0x0400 to 0x04ff | |||
| "server-error" - 0x0500 to 0x05ff | "server-error" - 0x0500 to 0x05ff | |||
| The top half (128 values) of each range (0x0n80 to 0x0nff, for n = 0 | The top half (128 values) of each range (0x0n80 to 0x0nff, for n = 0 | |||
| to 5) is reserved for vendor use within each status-code class. | to 5) is reserved for vendor use within each status-code class. | |||
| Values 0x0600 to 0x7fff are reserved for future assignment by | Values 0x0600 to 0x7fff are reserved for future assignment by | |||
| Standards Track documents and MUST NOT be used. | Standards Track documents and MUST NOT be used. | |||
| B.1. Status-Codes | B.1. Status-Code Values | |||
| Each status-code is described below. Appendix B.2 contains a table | Each status-code is described below. Appendix B.2 contains a table | |||
| that indicates which status-codes apply to which operations. The | that indicates which status-code values apply to which operations. | |||
| Implementor's Guides [RFC3196] [PWG5100.19] provide guidance for | The Implementor's Guides [RFC3196] [PWG5100.19] provide guidance for | |||
| processing IPP attributes for all operations, including returning | processing IPP attributes for all operations, including status-code | |||
| status-codes. | values. | |||
| B.1.1. Informational | B.1.1. Informational | |||
| This class of status-codes indicates a provisional response and is to | This class of status-code values indicates a provisional response and | |||
| be used for informational purposes only. | is to be used for informational purposes only. | |||
| There are no status-codes defined in this document for this class of | There are no values defined in this document for this class of | |||
| status-codes. | status-code values. | |||
| B.1.2. Successful Status-Codes | B.1.2. Successful Status-Code Values | |||
| This class of status-codes indicates that the Client's request was | This class of status-code values indicates that the Client's request | |||
| successfully received, understood, and accepted. | was successfully received, understood, and accepted. | |||
| B.1.2.1. successful-ok (0x0000) | B.1.2.1. successful-ok (0x0000) | |||
| The request has succeeded, and no request attributes were substituted | The request has succeeded, and no request attributes were substituted | |||
| or ignored. In the case of a response to a Job Creation request, the | or ignored. In the case of a response to a Job Creation request, the | |||
| 'successful-ok' status-code indicates that the request was | 'successful-ok' status-code indicates that the request was | |||
| successfully received and validated, and that the Job object has been | successfully received and validated, and that the Job object has been | |||
| created; it does not indicate that the Job has been processed. The | created; it does not indicate that the Job has been processed. The | |||
| transition of the Job object into the 'completed' state is the only | transition of the Job object into the 'completed' state is the only | |||
| indicator that the Job has been printed. | indicator that the Job has been printed. | |||
| skipping to change at page 193, line 47 | skipping to change at page 193, line 7 | |||
| The request has succeeded, but some supplied attribute values | The request has succeeded, but some supplied attribute values | |||
| conflicted with the values of other supplied attributes. Either | conflicted with the values of other supplied attributes. Either | |||
| (1) these conflicting values were substituted with (supported) values | (1) these conflicting values were substituted with (supported) values | |||
| or (2) the attributes were removed in order to process the Job | or (2) the attributes were removed in order to process the Job | |||
| without rejecting it. Attributes or values that conflict with other | without rejecting it. Attributes or values that conflict with other | |||
| attributes and have been substituted or ignored MUST be returned in | attributes and have been substituted or ignored MUST be returned in | |||
| the Unsupported Attributes group of the response for all operations | the Unsupported Attributes group of the response for all operations | |||
| as supplied by the Client. See Sections 4.1.7 and 4.2.1.2. | as supplied by the Client. See Sections 4.1.7 and 4.2.1.2. | |||
| B.1.3. Redirection Status-Codes | B.1.3. Redirection Status-Code Values | |||
| This class of status-codes indicates that further action needs to be | This class of status-code values indicates that further action needs | |||
| taken to fulfill the request. | to be taken to fulfill the request. | |||
| There are no status-codes defined in this document for this class of | There are no values defined in this document for this class of | |||
| status-codes. | status-code values. | |||
| B.1.4. Client Error Status-Codes | B.1.4. Client Error Status-Code Values | |||
| This class of status-codes is intended for cases in which the Client | This class of status-code values is intended for cases in which the | |||
| seems to have erred. The IPP object SHOULD return a message | Client seems to have erred. The IPP object SHOULD return a message | |||
| containing an explanation of the error situation and whether it is a | containing an explanation of the error situation and whether it is a | |||
| temporary or permanent condition. | temporary or permanent condition. | |||
| B.1.4.1. client-error-bad-request (0x0400) | B.1.4.1. client-error-bad-request (0x0400) | |||
| The request could not be understood by the IPP object due to | The request could not be understood by the IPP object due to | |||
| malformed syntax (such as the value of a fixed-length attribute whose | malformed syntax (such as the value of a fixed-length attribute whose | |||
| length does not match the prescribed length for that attribute -- see | length does not match the prescribed length for that attribute -- see | |||
| the Implementor's Guides [RFC3196] [PWG5100.19]). The IPP | the Implementor's Guides [RFC3196] [PWG5100.19]). The IPP | |||
| application SHOULD NOT repeat the request without modifications. | application SHOULD NOT repeat the request without modifications. | |||
| skipping to change at page 196, line 44 | skipping to change at page 196, line 5 | |||
| more details, see the Implementor's Guides [RFC3196] [PWG5100.19]. | more details, see the Implementor's Guides [RFC3196] [PWG5100.19]. | |||
| Note: For attribute values that are URIs, this rare condition is only | Note: For attribute values that are URIs, this rare condition is only | |||
| likely to occur when a Client has improperly submitted a request with | likely to occur when a Client has improperly submitted a request with | |||
| long query information (e.g., an IPP application allows an End User | long query information (e.g., an IPP application allows an End User | |||
| to enter an invalid URI), when the Client has descended into a URI | to enter an invalid URI), when the Client has descended into a URI | |||
| "black hole" of redirection (e.g., a redirected URI prefix that | "black hole" of redirection (e.g., a redirected URI prefix that | |||
| points to a suffix of itself), or when the IPP object is under attack | points to a suffix of itself), or when the IPP object is under attack | |||
| by a Client attempting to exploit security holes present in some IPP | by a Client attempting to exploit security holes present in some IPP | |||
| objects using fixed-length buffers for reading or manipulating the | objects using fixed-length buffers for reading or manipulating the | |||
| Request-URI. | request URI. | |||
| B.1.4.11. client-error-document-format-not-supported (0x040a) | B.1.4.11. client-error-document-format-not-supported (0x040a) | |||
| The IPP object is refusing to service the request because the | The IPP object is refusing to service the request because the | |||
| Document data is in a format, as specified in the "document-format" | Document data is in a format, as specified in the "document-format" | |||
| operation attribute, that is not supported by the Printer. This | operation attribute, that is not supported by the Printer. This | |||
| error is returned independent of the Client-supplied | error is returned independent of the Client-supplied | |||
| "ipp-attribute-fidelity" attribute. The Printer MUST return this | "ipp-attribute-fidelity" attribute. The Printer MUST return this | |||
| status-code, even if there are other Job Template attributes that are | status-code, even if there are other Job Template attributes that are | |||
| not supported as well, since this error is a bigger problem than with | not supported as well, since this error is a bigger problem than with | |||
| skipping to change at page 199, line 10 | skipping to change at page 198, line 19 | |||
| attempting to validate the accessibility of, or access to, the | attempting to validate the accessibility of, or access to, the | |||
| Document data specified in the "document-uri" operation attribute. | Document data specified in the "document-uri" operation attribute. | |||
| The Printer MAY also return a specific Document access error code | The Printer MAY also return a specific Document access error code | |||
| using the "document-access-error" operation attribute (see | using the "document-access-error" operation attribute (see | |||
| Section 4.1.6.4). This error is returned independent of the | Section 4.1.6.4). This error is returned independent of the | |||
| Client-supplied "ipp-attribute-fidelity" attribute. The Printer MUST | Client-supplied "ipp-attribute-fidelity" attribute. The Printer MUST | |||
| return this status-code, even if there are Job Template attributes | return this status-code, even if there are Job Template attributes | |||
| that are not supported as well, since this error is a bigger problem | that are not supported as well, since this error is a bigger problem | |||
| than with Job Template attributes. See Sections 4.1.6.1 and 4.1.7. | than with Job Template attributes. See Sections 4.1.6.1 and 4.1.7. | |||
| B.1.5. Server Error Status-Codes | B.1.5. Server Error Status-Code Values | |||
| This class of status-codes indicates cases in which the IPP object is | This class of status-code values indicates cases in which the IPP | |||
| aware that it has erred or is incapable of performing the request. | object is aware that it has erred or is incapable of performing the | |||
| The IPP object SHOULD include a message containing an explanation of | request. The IPP object SHOULD include a message containing an | |||
| the error situation, and whether it is a temporary or permanent | explanation of the error situation, and whether it is a temporary or | |||
| condition. | permanent condition. | |||
| B.1.5.1. server-error-internal-error (0x0500) | B.1.5.1. server-error-internal-error (0x0500) | |||
| The IPP object encountered an unexpected condition that prevented it | The IPP object encountered an unexpected condition that prevented it | |||
| from fulfilling the request. This error status-code differs from | from fulfilling the request. This error status-code differs from | |||
| 'server-error-temporary-error' in that it implies a more permanent | 'server-error-temporary-error' in that it implies a more permanent | |||
| type of internal error. It also differs from | type of internal error. It also differs from | |||
| 'server-error-device-error' in that it implies an unexpected | 'server-error-device-error' in that it implies an unexpected | |||
| condition (unlike a paper-jam or out-of-toner problem, which is | condition (unlike a paper-jam or out-of-toner problem, which is | |||
| undesirable but expected). This error status-code indicates that | undesirable but expected). This error status-code indicates that | |||
| skipping to change at page 201, line 38 | skipping to change at page 200, line 45 | |||
| had been created, then they are returned in the Print-Job, | had been created, then they are returned in the Print-Job, | |||
| Send-Document, or Send-URI response as usual; otherwise, no "job-id" | Send-Document, or Send-URI response as usual; otherwise, no "job-id" | |||
| and "job-uri" attributes are returned in the response. | and "job-uri" attributes are returned in the response. | |||
| B.1.5.10. server-error-multiple-document-jobs-not-supported (0x0509) | B.1.5.10. server-error-multiple-document-jobs-not-supported (0x0509) | |||
| The IPP object does not support multiple Documents per Job, and a | The IPP object does not support multiple Documents per Job, and a | |||
| Client attempted to supply Document data with a second Send-Document | Client attempted to supply Document data with a second Send-Document | |||
| or Send-URI operation. | or Send-URI operation. | |||
| B.2. Status-Codes for IPP Operations | B.2. Status-Code Values for IPP Operations | |||
| PJ = Print-Job, PU = Print-URI, CJ = Create-Job, SD = Send-Document, | PJ = Print-Job, PU = Print-URI, CJ = Create-Job, SD = Send-Document, | |||
| SU = Send-URI, V = Validate-Job, GA = Get-Job-Attributes and | SU = Send-URI, V = Validate-Job, GA = Get-Job-Attributes and | |||
| Get-Printer-Attributes, GJ = Get-Jobs, C = Cancel-Job | Get-Printer-Attributes, GJ = Get-Jobs, C = Cancel-Job | |||
| IPP Operations | IPP Operations | |||
| IPP Status Keyword PJ PU CJ SD SU V GA GJ C | IPP Status Keyword PJ PU CJ SD SU V GA GJ C | |||
| ------------------ -- -- -- -- -- - -- -- - | ------------------ -- -- -- -- -- - -- -- - | |||
| successful-ok x x x x x x x x x | successful-ok x x x x x x x x x | |||
| successful-ok-ignored-or-substituted- x x x x x x x x x | successful-ok-ignored-or-substituted- x x x x x x x x x | |||
| skipping to change at page 203, line 34 | skipping to change at page 202, line 41 | |||
| server-error-device-error | server-error-device-error | |||
| server-error-temporary-error x x x x x x | server-error-temporary-error x x x x x x | |||
| server-error-not-accepting-jobs | server-error-not-accepting-jobs | |||
| server-error-busy x x x x x x | server-error-busy x x x x x x | |||
| server-error-job-canceled | server-error-job-canceled | |||
| server-error-multiple-document-jobs- | server-error-multiple-document-jobs- | |||
| not-supported | not-supported | |||
| Appendix C. Processing IPP Attributes | Appendix C. Processing IPP Attributes | |||
| When submitting a Print Job to a Printer, the IPP model allows a | When submitting a Print Job to a Printer, the IPP Model allows a | |||
| Client to supply operation and Job Template attributes along with the | Client to supply operation and Job Template attributes along with the | |||
| Document data. These Job Template attributes in the Job Creation | Document data. These Job Template attributes in the Job Creation | |||
| request affect the rendering, production, and finishing of the | request affect the rendering, production, and finishing of the | |||
| Documents in the Job. Similar types of instructions can also be | Documents in the Job. Similar types of instructions can also be | |||
| contained in the Document data itself. In addition, the Printer has | contained in the Document data itself. In addition, the Printer has | |||
| a set of attributes that describe what rendering and finishing | a set of attributes that describe what rendering and finishing | |||
| processes are supported by that Printer. This model, which allows | processes are supported by that Printer. This model, which allows | |||
| for flexibility and power, also introduces the potential that | for flexibility and power, also introduces the potential that | |||
| Client-supplied attributes can conflict with either: | Client-supplied attributes can conflict with either: | |||
| o what the implementation is capable of realizing (i.e., what the | o what the implementation is capable of realizing (i.e., what the | |||
| Printer supports), or | Printer supports), or | |||
| o the instructions embedded within the Document data itself. | o the instructions embedded within the Document data itself. | |||
| The following sections describe how these two types of conflicts are | The following sections describe how these two types of conflicts are | |||
| handled in the IPP model. | handled in the IPP Model. | |||
| C.1. Fidelity | C.1. Fidelity | |||
| If there is a conflict between what the Client requests and what a | If there is a conflict between what the Client requests and what a | |||
| Printer supports, the Client can request one of two possible | Printer supports, the Client can request one of two possible | |||
| conflict-handling mechanisms: | conflict-handling mechanisms: | |||
| 1) either reject the Job, since the Job cannot be processed exactly | 1) either reject the Job, since the Job cannot be processed exactly | |||
| as specified, or | as specified, or | |||
| skipping to change at page 204, line 26 | skipping to change at page 203, line 34 | |||
| In the first case, the Client is indicating the following to the | In the first case, the Client is indicating the following to the | |||
| Printer: "Print the Job exactly as specified with no exceptions, and | Printer: "Print the Job exactly as specified with no exceptions, and | |||
| if that can't be done, don't even bother printing the Job at all." | if that can't be done, don't even bother printing the Job at all." | |||
| In the second case, the Client is indicating the following to the | In the second case, the Client is indicating the following to the | |||
| Printer: "It is more important to make sure the Job is printed rather | Printer: "It is more important to make sure the Job is printed rather | |||
| than be processed exactly as specified; just make sure the Job is | than be processed exactly as specified; just make sure the Job is | |||
| printed even if some Client-supplied attributes need to be changed or | printed even if some Client-supplied attributes need to be changed or | |||
| ignored." | ignored." | |||
| The IPP model accounts for this situation by introducing an | The IPP Model accounts for this situation by introducing an | |||
| "ipp-attribute-fidelity" attribute. | "ipp-attribute-fidelity" attribute. | |||
| In a Job Creation request, "ipp-attribute-fidelity" is a boolean | In a Job Creation request, "ipp-attribute-fidelity" is a boolean | |||
| operation attribute that MAY be supplied by the Client. The value | operation attribute that MAY be supplied by the Client. The value | |||
| 'true' indicates that total fidelity to Client-supplied Job Template | 'true' indicates that total fidelity to Client-supplied Job Template | |||
| attributes and values is required. The Client is requesting that the | attributes and values is required. The Client is requesting that the | |||
| Job be printed exactly as specified, and if that is not possible, | Job be printed exactly as specified, and if that is not possible, | |||
| then the Job MUST be rejected rather than processed incorrectly. The | then the Job MUST be rejected rather than processed incorrectly. The | |||
| value 'false' indicates that a reasonable attempt to print the Job is | value 'false' indicates that a reasonable attempt to print the Job is | |||
| acceptable. If a Printer does not support some of the | acceptable. If a Printer does not support some of the | |||
| skipping to change at page 205, line 48 | skipping to change at page 205, line 7 | |||
| an End User that only has access to a Printer with 'na-letter' media | an End User that only has access to a Printer with 'na-letter' media | |||
| loaded. That End User most likely wants to submit that Document to | loaded. That End User most likely wants to submit that Document to | |||
| an IPP Printer with the "media" Job Template attribute set to | an IPP Printer with the "media" Job Template attribute set to | |||
| 'na-letter'. Attributes supplied at Job submission time should take | 'na-letter'. Attributes supplied at Job submission time should take | |||
| precedence over the embedded PDL instructions. However, until | precedence over the embedded PDL instructions. However, until | |||
| companies that supply Document data interpreters allow a way for | companies that supply Document data interpreters allow a way for | |||
| external IPP attributes to take precedence over embedded Job | external IPP attributes to take precedence over embedded Job | |||
| production instructions, a Printer might not be able to support the | production instructions, a Printer might not be able to support the | |||
| semantics that IPP attributes override the embedded instructions. | semantics that IPP attributes override the embedded instructions. | |||
| The IPP model accounts for this situation by introducing a | The IPP Model accounts for this situation by introducing a | |||
| "pdl-override-supported" attribute that describes the Printer's | "pdl-override-supported" attribute that describes the Printer's | |||
| capabilities to override instructions embedded in the PDL data | capabilities to override instructions embedded in the PDL data | |||
| stream. The value of the "pdl-override-supported" attribute is | stream. The value of the "pdl-override-supported" attribute is | |||
| configured by means outside the scope of this IPP/1.1 document. | configured by means outside the scope of this IPP/1.1 document. | |||
| This REQUIRED Printer attribute takes on the following values: | This REQUIRED Printer attribute takes on the following values: | |||
| o 'attempted': This value indicates that the Printer attempts to | o 'attempted': This value indicates that the Printer attempts to | |||
| make the IPP attribute values take precedence over embedded | make the IPP attribute values take precedence over embedded | |||
| instructions in the Document data; however, there is no guarantee. | instructions in the Document data; however, there is no guarantee. | |||
| End of changes. 128 change blocks. | ||||
| 375 lines changed or deleted | 380 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||