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/ |