IPP>PRO Enclosed: Update to Randy's document

IPP>PRO Enclosed: Update to Randy's document

JK Martin jkm at underscore.com
Mon Jun 16 17:49:40 EDT 1997


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


Date: Mon, 16 Jun 1997 12:11:17 -0700
From: Robert.Herriot at Eng.Sun.COM (Robert Herriot)
To: ipp at pwg.org
Subject: IPP>PRO Enclosed: Update to Randy's document


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


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




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


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:




   [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.


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:




   [Diagram not available in the text version]



More information about the Ipp mailing list