Subject: IPP>PRO Enclosed: Update to Randy's document

From: [email-masked] (Robert Herriot)
Date: Mon, 16 Jun 1997 12:11:17 -0700

----------
X-Sun-Data-Type: text
X-Sun-Data-Description: text
X-Sun-Data-Name: text
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 6

Because the pwg server is down today, I have enclosed the MS Word and text
version of the files that I downloaded on Friday.

This document will be part of tomorrow's discussions.

Bob Herriot
----------
X-Sun-Data-Type: default-app
X-Sun-Data-Description: default
X-Sun-Data-Name: ipp-pro-061397-rgh.doc
X-Sun-Encoding-Info: uuencode
X-Sun-Content-Lines: 1027

----------
X-Sun-Data-Type: default-app
X-Sun-Data-Description: default
X-Sun-Data-Name: ipp-pro-061397-rgh.txt
X-Sun-Charset: us-ascii
X-Sun-Content-Lines: 62

INTERNET-DRAFT

HTTP 1.1 Transport Mapping for the Internet Printing Protocol
Missing parts

When Randy wrote the protocol document, he changed to syntax from the binary version that we had previously agreed to.  I expected the old version to be in the document as an alternate solution, but it is not.  I am including it here.
The following protocol primitives are defined:

DIGIT = "0".."9"
ALPHA = "A..Z"
BYTE = %d0..%d255
OCTET-STRING = *BYTE

The following ABNF specification describes the encoding of an IPP message (PDU):
(We may want to state that string values are case sensitive, unlike what ABNF says).
operation-encoding =  operation-version operation operation-data
operation-version = operation-major-version operation-minor-version
operation-major-version = %x00..%x7F   ; major version in binary, initially 1
operation-minor-version = %x00..%x7F  ; minor version in binary, initially 0
operation = operation-length operator *operand
operation-length = %x00.00.00.00 .. %x7f.ff.ff.ff  ; number of octets for the operation in binary
operator =  %d0.9 "operation" value-length value
operand = name-length name value-length value
name-length = %x00.00..%x7f.ff  ; number of octets of the name in binary
name = = ALPHA *( ALPHA / DIGIT / "_" /  "-" )
value-length = %x00.00..%x7f.ff; number of octets of the name in binary 
value = OCTET-STRING
operation-data = OCTET-STRING

The following is a picture of this encoding:

The transport  encoding in Randy's Appendix A references syntax items that aren't in his document.  Here is the new version of the transport encoding for raw TCP/IP that reference items in the operation-encoding. 
The idea behind this is that the transport encoding does the work of HTTP. It encodes HTTP header information in the transport-operands. It encodes the application/ipp entity body in the transport-operation by breaking it into chunks.
transport-encoding =  transport-version XID transport-operands  transport-operation
transport-version = transport-major-version transport-minor-version
transport-major-version = %x00..%x7F; major version in binary, initially 1
transport-minor-version = %x00..%x7F; minor version in binary, initially 0
XID =  %x00.00.00.00 .. %x7f.ff.ff.ff ; transaction id in binary
transport-operands = operand-length *operand
operand-length =  %x00.00.00.00 .. %x7f.ff.ff.ff ; number of octets for the operands in binary
transport-operation = 1*transport-chunk ; the chunked operation-encoding data
transport-chunk = transport-data-length transport-data
transport-data-length = %x00.00.00.00 .. %x7f.ff.ff.ff  ; number of octets of the data in binary
transport-data = OCTET-STRING

The following is a picture of the transport encoding:

---

From: JK Martin <[email-masked]>
Date: Mon, 16 Jun 1997 17:49:40 -0400 (EDT)

Perhaps when Bob first tried to upload his document the PWG ftp
server was down.  This is no longer the case, and hopefully Bob
will have a chance to upload his document.

Since Bob's document is so small, and since folks should want to
see this asap, I have attached the text form of the document below.
It's not terribly readable in this form (Bob also has a Word .doc
file available), but it should give some folks an idea of what's
going on.  I've done just a touch of reformatting so some mail
agents won't complain, etc.

	...jay

----- Begin Included Message -----

>From [email-masked] Mon Jun 16 15:17 EDT 1997
Date: Mon, 16 Jun 1997 12:11:17 -0700
From: [email-masked] (Robert Herriot)
To: [email-masked]
Subject: IPP>PRO Enclosed: Update to Randy's document

Bob Herriot

----- End Included Message -----

------------------------------------------------------------------------------

INTERNET-DRAFT

When Randy wrote the protocol document, he changed to syntax from the
binary version that we had previously agreed to.  I expected the old
version to be in the document as an alternate solution, but it is not.
I am including it here.  The following protocol primitives are
defined:

DIGIT = "0".."9"
ALPHA = "A..Z"
BYTE = %d0..%d255
OCTET-STRING = *BYTE

The following ABNF specification describes the encoding of an IPP
message (PDU):  (We may want to state that string values are case
sensitive, unlike what ABNF says).

   [Diagram not available in the text version]

The transport  encoding in Randy's Appendix A references syntax items
that aren't in his document.  Here is the new version of the transport
encoding for raw TCP/IP that reference items in the
operation-encoding.

The idea behind this is that the transport encoding does the work of
HTTP. It encodes HTTP header information in the transport-operands. It
encodes the application/ipp entity body in the transport-operation by
breaking it into chunks.

   [Diagram not available in the text version]