Tech-invite3GPPspaceIETFspace
96959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 8010

Internet Printing Protocol/1.1: Encoding and Transport

Pages: 51
Internet Standard: 92
Obsoletes:  29103382
Part 3 of 3 – Pages 36 to 51
First   Prev   None

Top   ToC   RFC8010 - Page 36   prevText

11. References

11.1. Normative References

[PWG5100.12] Sweet, M. and I. McDonald, "IPP Version 2.0, 2.1, and 2.2", October 2015, <http://ftp.pwg.org/pub/pwg/standards/ std-ipp20-20151030-5100.12.pdf>. [RFC20] Cerf, V., "ASCII format for network interchange", STD 80, RFC 20, DOI 10.17487/RFC0020, October 1969, <http://www.rfc-editor.org/info/rfc20>. [RFC793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, DOI 10.17487/RFC0793, September 1981, <http://www.rfc-editor.org/info/rfc793>. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>. [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, DOI 10.17487/RFC2579, April 1999, <http://www.rfc-editor.org/info/rfc2579>. [RFC2817] Khare, R. and S. Lawrence, "Upgrading to TLS Within HTTP/1.1", RFC 2817, DOI 10.17487/RFC2817, May 2000, <http://www.rfc-editor.org/info/rfc2817>. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, DOI 10.17487/RFC2818, May 2000, <http://www.rfc-editor.org/info/rfc2818>. [RFC2978] Freed, N. and J. Postel, "IANA Charset Registration Procedures", BCP 19, RFC 2978, DOI 10.17487/RFC2978, October 2000, <http://www.rfc-editor.org/info/rfc2978>. [RFC3510] Herriot, R. and I. McDonald, "Internet Printing Protocol/1.1: IPP URL Scheme", RFC 3510, DOI 10.17487/RFC3510, April 2003, <http://www.rfc-editor.org/info/rfc3510>. [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November 2003, <http://www.rfc-editor.org/info/rfc3629>.
Top   ToC   RFC8010 - Page 37
   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <http://www.rfc-editor.org/info/rfc3986>.

   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234,
              DOI 10.17487/RFC5234, January 2008,
              <http://www.rfc-editor.org/info/rfc5234>.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246,
              DOI 10.17487/RFC5246, August 2008,
              <http://www.rfc-editor.org/info/rfc5246>.

   [RFC7230]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Message Syntax and Routing",
              RFC 7230, DOI 10.17487/RFC7230, June 2014,
              <http://www.rfc-editor.org/info/rfc7230>.

   [RFC7231]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Semantics and Content", RFC 7231,
              DOI 10.17487/RFC7231, June 2014,
              <http://www.rfc-editor.org/info/rfc7231>.

   [RFC7232]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Conditional Requests", RFC 7232,
              DOI 10.17487/RFC7232, June 2014,
              <http://www.rfc-editor.org/info/rfc7232>.

   [RFC7234]  Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
              Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",
              RFC 7234, DOI 10.17487/RFC7234, June 2014,
              <http://www.rfc-editor.org/info/rfc7234>.

   [RFC7235]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Authentication", RFC 7235,
              DOI 10.17487/RFC7235, June 2014,
              <http://www.rfc-editor.org/info/rfc7235>.

   [RFC7472]  McDonald, I. and M. Sweet, "Internet Printing Protocol
              (IPP) over HTTPS Transport Binding and the 'ipps' URI
              Scheme", RFC 7472, DOI 10.17487/RFC7472, March 2015,
              <http://www.rfc-editor.org/info/rfc7472>.
Top   ToC   RFC8010 - Page 38
   [RFC7540]  Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext
              Transfer Protocol Version 2 (HTTP/2)", RFC 7540,
              DOI 10.17487/RFC7540, May 2015,
              <http://www.rfc-editor.org/info/rfc7540>.

   [RFC7541]  Peon, R. and H. Ruellan, "HPACK: Header Compression for
              HTTP/2", RFC 7541, DOI 10.17487/RFC7541, May 2015,
              <http://www.rfc-editor.org/info/rfc7541>.

   [RFC7616]  Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer, "HTTP
              Digest Access Authentication", RFC 7616,
              DOI 10.17487/RFC7616, September 2015,
              <http://www.rfc-editor.org/info/rfc7616>.

   [RFC7617]  Reschke, J., "The 'Basic' HTTP Authentication Scheme",
              RFC 7617, DOI 10.17487/RFC7617, September 2015,
              <http://www.rfc-editor.org/info/rfc7617>.

   [RFC8011]  Sweet, M. and I. McDonald, "Internet Printing
              Protocol/1.1: Model and Semantics", RFC 8011,
              DOI 10.17487/RFC8011, January 2017,
              <http://www.rfc-editor.org/info/rfc8011>.

11.2. Informative References

[IANA-IPP] IANA, "Internet Printing Protocol (IPP) Registry", <http://www.iana.org/assignments/ipp-registrations/>. [PWG5100.3] Ocke, K. and T. Hastings, "Internet Printing Protocol (IPP): Production Printing Attributes - Set1", Candidate Standard 5100.3-2001, February 2001, <http://ftp.pwg.org/pub/pwg/candidates/ cs-ippprodprint10-20010212-5100.3.pdf>. [RFC1179] McLaughlin, L., "Line printer daemon protocol", RFC 1179, DOI 10.17487/RFC1179, August 1990, <http://www.rfc-editor.org/info/rfc1179>. [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May 2014, <http://www.rfc-editor.org/info/rfc7258>. [RFC7435] Dukhovni, V., "Opportunistic Security: Some Protection Most of the Time", RFC 7435, DOI 10.17487/RFC7435, December 2014, <http://www.rfc-editor.org/info/rfc7435>.
Top   ToC   RFC8010 - Page 39
   [RFC7525]  Sheffer, Y., Holz, R., and P. Saint-Andre,
              "Recommendations for Secure Use of Transport Layer
              Security (TLS) and Datagram Transport Layer Security
              (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
              2015, <http://www.rfc-editor.org/info/rfc7525>.
Top   ToC   RFC8010 - Page 40

Appendix A. Protocol Examples

A.1. Print-Job Request

The following is an example of a Print-Job request with "job-name", "copies", and "sides" specified. The "ipp-attribute-fidelity" attribute is set to 'true' so that the print request will fail if the "copies" or the "sides" attribute is not supported or their values are not supported. Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0002 Print-Job operation-id 0x00000001 1 request-id 0x01 start operation- operation- attributes attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language value-tag type 0x001b name-length attributes-natural-language attributes-natural- name language 0x0005 value-length en-us en-US value 0x45 uri type value-tag 0x000b name-length printer-uri printer-uri name 0x002c value-length ipp://printer.example.com/ipp/ printer pinetree value print/pinetree 0x42 nameWithoutLanguage value-tag type 0x0008 name-length job-name job-name name 0x0006 value-length foobar foobar value 0x22 boolean type value-tag 0x0016 name-length ipp-attribute-fidelity ipp-attribute- name fidelity 0x0001 value-length 0x01 true value 0x02 start job-attributes job-attributes-
Top   ToC   RFC8010 - Page 41
                                                        tag
    0x21                           integer type         value-tag
    0x0006                                              name-length
    copies                         copies               name
    0x0004                                              value-length
    0x00000014                     20                   value
    0x44                           keyword type         value-tag
    0x0005                                              name-length
    sides                          sides                name
    0x0013                                              value-length
    two-sided-long-edge            two-sided-long-edge  value
    0x03                           end-of-attributes    end-of-
                                                        attributes-tag
    %!PDF...                       <PDF Document>       data

A.2. Print-Job Response (Successful)

Here is an example of a successful Print-Job response to the previous Print-Job request. The Printer supported the "copies" and "sides" attributes and their supplied values. The status-code returned is 'successful-ok'. Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0000 successful-ok status-code 0x00000001 1 request-id 0x01 start operation- operation- attributes attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language value-tag type 0x001b name-length attributes-natural-language attributes- name natural-language 0x0005 value-length en-us en-US value 0x41 textWithoutLanguag value-tag e type 0x000e name-length status-message status-message name 0x000d value-length successful-ok successful-ok value 0x02 start job- job-attributes-
Top   ToC   RFC8010 - Page 42
                                     attributes         tag
    0x21                             integer            value-tag
    0x0006                                              name-length
    job-id                           job-id             name
    0x0004                                              value-length
    147                              147                value
    0x45                             uri type           value-tag
    0x0007                                              name-length
    job-uri                          job-uri            name
    0x0030                                              value-length
    ipp://printer.example.com/ipp/pr job 147 on         value
    int/pinetree/147                 pinetree
    0x23                             enum type          value-tag
    0x0009                                              name-length
    job-state                        job-state          name
    0x0004                                              value-length
    0x0003                           pending            value
    0x03                             end-of-attributes  end-of-
                                                        attributes-tag

A.3. Print-Job Response (Failure)

Here is an example of an unsuccessful Print-Job response to the previous Print-Job request. It fails because, in this case, the Printer does not support the "sides" attribute and because the value '20' for the "copies" attribute is not supported. Therefore, no Job is created, and neither a "job-id" nor a "job-uri" operation attribute is returned. The error code returned is 'client-error- attributes-or-values-not-supported' (0x040b). Octets Symbolic Value Protocol field 0x0101 1.1 version- number 0x040b client-error-attributes-or- status-code values-not-supported 0x00000001 1 request-id 0x01 start operation-attributes operation- attributes tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language type value-tag 0x001b name-length
Top   ToC   RFC8010 - Page 43
   attributes-natural-language attributes-natural-language name
   0x0005                                                  value-length
   en-us                       en-US                       value
   0x41                        textWithoutLanguage type    value-tag
   0x000e                                                  name-length
   status-message              status-message              name
   0x002f                                                  value-length
   client-error-attributes-or- client-error-attributes-or- value
   values-not-supported        values-not-supported
   0x05                        start unsupported-          unsupported-
                               attributes                  attributes
                                                           tag
   0x21                        integer type                value-tag
   0x0006                                                  name-length
   copies                      copies                      name
   0x0004                                                  value-length
   0x00000014                  20                          value
   0x10                        unsupported (type)          value-tag
   0x0005                                                  name-length
   sides                       sides                       name
   0x0000                                                  value-length
   0x03                        end-of-attributes           end-of-
                                                           attributes-
                                                           tag

A.4. Print-Job Response (Success with Attributes Ignored)

Here is an example of a successful Print-Job response to a Print-Job request like the previous Print-Job request, except that the value of "ipp-attribute-fidelity" is 'false'. The print request succeeds, even though, in this case, the Printer supports neither the "sides" attribute nor the value '20' for the "copies" attribute. Therefore, a Job is created and both a "job-id" and a "job-uri" operation attribute are returned. The unsupported attributes are also returned in an Unsupported Attributes group. The error code returned is 'successful-ok-ignored-or-substituted-attributes' (0x0001). Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0001 successful-ok-ignored-or- status-code substituted-attributes 0x00000001 1 request-id 0x01 start operation-attributes operation- attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name
Top   ToC   RFC8010 - Page 44
   0x0005                                                 value-length
   utf-8                      UTF-8                       value
   0x48                       natural-language type       value-tag
   0x001b                                                 name-length
   attributes-natural-        attributes-natural-language name
   language
   0x0005                                                 value-length
   en-us                      en-US                       value
   0x41                       textWithoutLanguage type    value-tag
   0x000e                                                 name-length
   status-message             status-message              name
   0x002f                                                 value-length
   successful-ok-ignored-or-  successful-ok-ignored-or-   value
   substituted-attributes     substituted-attributes
   0x05                       start unsupported-          unsupported-
                              attributes                  attributes tag
   0x21                       integer type                value-tag
   0x0006                                                 name-length
   copies                     copies                      name
   0x0004                                                 value-length
   0x00000014                 20                          value
   0x10                       unsupported  (type)         value-tag
   0x0005                                                 name-length
   sides                      sides                       name
   0x0000                                                 value-length
   0x02                       start job-attributes        job-
                                                          attributes-tag
   0x21                       integer                     value-tag
   0x0006                                                 name-length
   job-id                     job-id                      name
   0x0004                                                 value-length
   147                        147                         value
   0x45                       uri type                    value-tag
   0x0007                                                 name-length
   job-uri                    job-uri                     name
   0x0030                                                 value-length
   ipp://printer.example.com/ job 147 on pinetree         value
   ipp/print/pinetree/147
   0x23                       enum  type                  value-tag
   0x0009                                                 name-length
   job-state                  job-state                   name
   0x0004                                                 value-length
   0x0003                     pending                     value
   0x03                       end-of-attributes           end-of-
                                                          attributes-tag
Top   ToC   RFC8010 - Page 45

A.5. Print-URI Request

The following is an example of Print-URI request with "copies" and "job-name" parameters: Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0003 Print-URI operation-id 0x00000001 1 request-id 0x01 start operation- operation- attributes attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language value-tag type 0x001b name-length attributes-natural-language attributes-natural- name language 0x0005 value-length en-us en-US value 0x45 uri type value-tag 0x000b name-length printer-uri printer-uri name 0x002c value-length ipp://printer.example.com/ipp/ printer pinetree value print/pinetree 0x45 uri type value-tag 0x000c name-length document-uri document-uri name 0x0019 value-length ftp://foo.example.com/foo ftp://foo.example.co value m/foo 0x42 nameWithoutLanguage value-tag type 0x0008 name-length job-name job-name name 0x0006 value-length foobar foobar value 0x02 start job-attributes job-attributes- tag 0x21 integer type value-tag 0x0006 name-length copies copies name 0x0004 value-length
Top   ToC   RFC8010 - Page 46
    0x00000001                     1                    value
    0x03                           end-of-attributes    end-of-
                                                        attributes-tag

A.6. Create-Job Request

The following is an example of Create-Job request with no parameters and no attributes: Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0005 Create-Job operation-id 0x00000001 1 request-id 0x01 start operation- operation- attributes attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language value-tag type 0x001b name-length attributes-natural-language attributes-natural- name language 0x0005 value-length en-us en-US value 0x45 uri type value-tag 0x000b name-length printer-uri printer-uri name 0x002c value-length ipp://printer.example.com/ipp/ printer pinetree value print/pinetree 0x03 end-of-attributes end-of- attributes-tag

A.7. Create-Job Request with Collection Attributes

The following is an example of Create-Job request with the "media- col" collection attribute [PWG5100.3] with the value "media- size={x-dimension=21000 y-dimension=29700} media-type='stationery'": Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0005 Create-Job operation-id 0x00000001 1 request-id
Top   ToC   RFC8010 - Page 47
   0x01                           start operation-     operation-
                                  attributes           attributes-tag
   0x47                           charset type         value-tag
   0x0012                                              name-length
   attributes-charset             attributes-charset   name
   0x0005                                              value-length
   utf-8                          UTF-8                value
   0x48                           natural-language     value-tag
                                  type
   0x001b                                              name-length
   attributes-natural-language    attributes-natural-  name
                                  language
   0x0005                                              value-length
   en-us                          en-US                value
   0x45                           uri type             value-tag
   0x000b                                              name-length
   printer-uri                    printer-uri          name
   0x002c                                              value-length
   ipp://printer.example.com/ipp/ printer pinetree     value
   print/pinetree
   0x34                           begCollection        value-tag
   0x0009                         9                    name-length
   media-col                      media-col            name
   0x0000                         0                    value-length
   0x4a                           memberAttrName       value-tag
   0x0000                         0                    name-length
   0x000a                         10                   value-length
   media-size                     media-size           value (member-
                                                       name)
   0x34                           begCollection        member-value-tag
   0x0000                         0                    name-length
   0x0000                         0                    member-value-
                                                       length
   0x4a                           memberAttrName       value-tag
   0x0000                         0                    name-length
   0x000b                         11                   value-length
   x-dimension                    x-dimension          value (member-
                                                       name)
   0x21                           integer              member-value-tag
   0x0000                         0                    name-length
   0x0004                         4                    member-value-
                                                       length
   0x00005208                     21000                member-value
   0x4a                           memberAttrName       value-tag
   0x0000                         0                    name-length
   0x000b                         11                   value-length
   y-dimension                    y-dimension          value (member-
                                                       name)
Top   ToC   RFC8010 - Page 48
   0x21                           integer              member-value-tag
   0x0000                         0                    name-length
   0x0004                         4                    member-value-
                                                       length
   0x00007404                     29700                member-value
   0x37                           endCollection        end-value-tag
   0x0000                         0                    end-name-length
   0x0000                         0                    end-value-length
   0x4a                           memberAttrName       value-tag
   0x0000                         0                    name-length
   0x000a                         10                   value-length
   media-type                     media-type           value (member-
                                                       name)
   0x44                           keyword              member-value-tag
   0x0000                         0                    name-length
   0x000a                         10                   member-value-
                                                       length
   stationery                     stationery           member-value
   0x37                           endCollection        end-value-tag
   0x0000                         0                    end-name-length
   0x0000                         0                    end-value-length
   0x03                           end-of-attributes    end-of-
                                                       attributes-tag

A.8. Get-Jobs Request

The following is an example of Get-Jobs request with parameters but no attributes: Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x000a Get-Jobs operation-id 0x0000007b 123 request-id 0x01 start operation- operation- attributes attributes-tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language value-tag type 0x001b name-length attributes-natural-language attributes-natural- name language 0x0005 value-length en-us en-US value
Top   ToC   RFC8010 - Page 49
    0x45                           uri type             value-tag
    0x000b                                              name-length
    printer-uri                    printer-uri          name
    0x002c                                              value-length
    ipp://printer.example.com/ipp/ printer pinetree     value
    print/pinetree
    0x21                           integer type         value-tag
    0x0005                                              name-length
    limit                          limit                name
    0x0004                                              value-length
    0x00000032                     50                   value
    0x44                           keyword type         value-tag
    0x0014                                              name-length
    requested-attributes           requested-attributes name
    0x0006                                              value-length
    job-id                         job-id               value
    0x44                           keyword type         value-tag
    0x0000                         additional value     name-length
    0x0008                                              value-length
    job-name                       job-name             value
    0x44                           keyword type         value-tag
    0x0000                         additional value     name-length
    0x000f                                              value-length
    document-format                document-format      value
    0x03                           end-of-attributes    end-of-
                                                        attributes-tag

A.9. Get-Jobs Response

The following is an example of a Get-Jobs response from a previous request with three Jobs. The Printer returns no information about the second Job (because of security reasons): Octets Symbolic Value Protocol field 0x0101 1.1 version-number 0x0000 successful-ok status-code 0x0000007b 123 request-id (echoed back) 0x01 start operation- operation-attributes- attributes tag 0x47 charset type value-tag 0x0012 name-length attributes-charset attributes-charset name 0x0005 value-length utf-8 UTF-8 value 0x48 natural-language type value-tag 0x001b name-length
Top   ToC   RFC8010 - Page 50
   attributes-natural-     attributes-natural-     name
   language                language
   0x0005                                          value-length
   en-us                   en-US                   value
   0x41                    textWithoutLanguage     value-tag
                           type
   0x000e                                          name-length
   status-message          status-message          name
   0x000d                                          value-length
   successful-ok           successful-ok           value
   0x02                    start job-attributes    job-attributes-tag
                           (1st  object)
   0x21                    integer type            value-tag
   0x0006                                          name-length
   job-id                  job-id                  name
   0x0004                                          value-length
   147                     147                     value
   0x36                    nameWithLanguage        value-tag
   0x0008                                          name-length
   job-name                job-name                name
   0x000c                                          value-length
   0x0005                                          sub-value-length
   fr-ca                   fr-CA                   value
   0x0003                                          sub-value-length
   fou                     fou                     name
   0x02                    start job-attributes    job-attributes-tag
                           (2nd object)
   0x02                    start job-attributes    job-attributes-tag
                           (3rd object)
   0x21                    integer type            value-tag
   0x0006                                          name-length
   job-id                  job-id                  name
   0x0004                                          value-length
   148                     149                     value
   0x36                    nameWithLanguage        value-tag
   0x0008                                          name-length
   job-name                job-name                name
   0x0012                                          value-length
   0x0005                                          sub-value-length
   de-CH                   de-CH                   value
   0x0009                                          sub-value-length
   isch guet               isch guet               name
   0x03                    end-of-attributes       end-of-attributes-tag
Top   ToC   RFC8010 - Page 51

Acknowledgements

The authors would like to acknowledge the following individuals for their contributions to the original IPP/1.1 specifications: Sylvan Butler, Roger deBry, Tom Hastings, Robert Herriot (the original editor of RFC 2910), Paul Moore, Kirk Ocke, Randy Turner, John Wenn, and Peter Zehler.

Authors' Addresses

Michael Sweet Apple Inc. 1 Infinite Loop MS 111-HOMC Cupertino, CA 95014 United States of America Email: msweet@apple.com Ira McDonald High North, Inc. PO Box 221 Grand Marais, MI 49839 United States of America Phone: +1 906-494-2434 Email: blueroofmusic@gmail.com