Lloyd,
Can you add this registration of IPP to the draft Printer MIB for
identifying the job submission channel in the Printer MIB?
chIPP(??),
-- Internet Printing Protocol (IPP)
-- See documents relating to IPP 1.0
-- (RFCs 2565 and 2566).
It would help for people to know what the enum value will be as well.
The reason NOT to use the chPortHTTP (42) is that many printers also have a
web interface for job submission using file up load. They would be using 42
for that, perhaps with a different port number.
However, I think that there is more work than just adding the enum. There
is opportunity to specify the port using a Port: keyword that would have to
be specified in the registration for use in the prtChannelInformation
object.
What else?
The following keywords have been defined for other protocols:
Keyword (meaning) Protocol
------- ------- --------
Name (Printer Name) for AppleTalk PAP
Queue (Printer queue name) for LPD
PServer (Print Server Name), ... for Netware RPrinter
Server (Server Name), PServer (PServer), ... for Netware PServer
Name (Service Name) for SMB
Port (Port Number) for TCP
etc.
We can define any we thing useful for IPP. It would seem to me that the
Port would be helpful.
What about the "printer-name"? Or is that already captured in the new
prtGeneralPrinterName object (that is not in RFC 1759)?
What about the URL of the IPP Printer?
We should specify how the version number is represented in the
prtChannelProtocolVersion object. Since an IPP implementation can support
multiple versions, we probably need to specify the syntax of a list of
version numbers. How about a comma separated list?
For example the text string inside these quotes: "1.1, 1.0"
Someone needs to step up and propose something. This is a case of the IPP
and PMP WGs working together.
Tom
Here is the definition of the Print Job Delivery Channel from the Printer
MIB:
2.2.10 Print Job Delivery Channels
The print job delivery channel sub-units identify the independent
sources of print data (here print data is the information that is
used to construct printed pages and may have both data and
control aspects). A printer may have one or more channels. The
channel sub-units are represented by the Print Job Delivery
Channel Group in the Model. Each channel is typically identified
by the electronic path and service protocol used to deliver print
data to the printer. A channel sub-unit may be independently
enabled (allowing print data to flow) or disabled (stopping the
flow of print data). It has a current Control Language which can
be used to specify which interpreter is to be used for the print
data and to query and change environment variables used by the
interpreters (and SNMP). There is also a default interpreter that
is to be used if an interpreter is not explicitly specified using
the Control Language. Print Job Delivery Channel sub-units can,
and usually are, based on an underlying interface.
Here is more information from the spec about the attributes of each channel:
-- The Print Job Delivery Channel Group
--
-- Implementation of every object in this group is mandatory.
--
-- Print Job Delivery Channels are independent sources of print
-- data. Here, print data is the term used for the information
-- that is used to construct printed pages and may have both data
-- and control aspects. The output of a channel is in a form
-- suitable for input to one of the interpreters as a
-- stream. A channel may be independently enabled (allowing
-- print data to flow) or disabled (stopping the flow of
-- print data). A printer may have one or more channels.
--
-- The Print Job Delivery Channel table describes the
-- capabilities of the printer and not what is currently being
-- performed by the printer
--
-- Basically, the print job delivery channel abstraction
-- describes the final processing step of getting the print data
-- to an interpreter. It might include some level of
-- decompression or decoding of print stream data.
-- channel. All of these aspects are hidden in the channel
-- abstraction.
--
-- There are many kinds of print job delivery channels; some of
-- which are based on networks and others which are not. For
-- example, a channel can be a serial (or parallel) connection;
-- it can be a service, such as the UNIX Line Printer Daemon
-- (LPD), offering services over a network connection; or
-- it could be a disk drive into which a floppy disk with
Turner Printer MIB V2 [Page 110]
INTERNET DRAFT Printer MIB January 22, 1999
-- the print data is inserted. Each print job delivery channel is
-- identified by the electronic path and/or service protocol
-- used to deliver print data to a print data interpreter.
--
-- Channel example Implementation
--
-- serial port channel bi-directional data channel
-- parallel port channel often uni-directional channel
-- IEEE 1284 port channel bi-directional channel
-- SCSI port channel bi-directional
-- Apple PAP channel may be based on LocalTalk,
-- Ethernet or Tokentalk
-- LPD Server channel TCP/IP based, port 515
-- Netware Remote Printer SPX/IPX based channel
-- Netware Print Server SPX/IPX based channel
--
-- It is easy to note that this is a mixed bag. There are
-- some physical connections over which no (or very meager)
-- protocols are run (e.g. the serial or old parallel ports)
-- and there are services which often have elaborate
-- protocols that run over a number of protocol stacks. In
-- the end, what is important is the delivery of print data
-- through the channel.
--
-- The print job delivery channel sub-units are represented by
-- the Print Job Delivery Channel Group in the Model. It has a
-- current print job control language, which can be used to
-- specify which interpreter is to be used for the print data and
-- to query and change environment variables used by the
-- interpreters (and Management Applications). There is also a
-- default interpreter that is to be used if an interpreter is
-- not explicitly specified using the Control Language.
-- The first seven items in the Print Job Delivery Channel Table
-- define the "channel" itself. A channel typically depends on
-- other protocols and interfaces to provide the data that flows
-- through the channel.
--
-- Control of a print job delivery channel is largely limited to
-- enabling or disabling the entire channel itself. It is likely
-- that more control of the process of accessing print data
-- will be needed over time. Thus, the ChannelType will
-- allow type-specific data to be associated with each
-- channel (using ChannelType specific groups in a fashion
-- analogous to the media specific MIBs that are associated
-- with the IANAIfType in the Interfaces Table). As a first
-- step in this direction, each channel will identify the
-- underlying Interface on which it is based. This is the
Turner Printer MIB V2 [Page 111]
INTERNET DRAFT Printer MIB January 22, 1999
-- eighth object in each row of the table.
-- The Print Job Delivery Channel Table
--
-- The prtChannelTable represents the set of input data sources
-- which can provide print data to one or more of the
-- interpreters available on a printer
prtChannel OBJECT IDENTIFIER ::= { printmib 14 }
prtChannelTable OBJECT-TYPE
SYNTAX SEQUENCE OF PrtChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
""
::= { prtChannel 1 }
prtChannelEntry OBJECT-TYPE
SYNTAX PrtChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entries may exist in the table for each device index
with a device type of 'printer'."
INDEX { hrDeviceIndex, prtChannelIndex }
::= { prtChannelTable 1 }
PrtChannelEntry ::= SEQUENCE {
prtChannelIndex Integer32,
prtChannelType PrtChannelTypeTC,
prtChannelProtocolVersion OCTET STRING,
prtChannelCurrentJobCntlLangIndex Integer32,
prtChannelDefaultPageDescLangIndex Integer32,
prtChannelState PrtChannelStateTC,
prtChannelIfIndex Integer32,
prtChannelStatus PrtSubUnitStatusTC,
prtChannelInformation OCTET STRING
}
prtChannelIndex OBJECT-TYPE
SYNTAX Integer32 (1..65535)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
Turner Printer MIB V2 [Page 112]
INTERNET DRAFT Printer MIB January 22, 1999
"A unique value used by the printer to identify this
data channel. Although these values may change due to a
major reconfiguration of the device (e.g. the addition
of new data channels to the printer), values are
expected to remain stable across successive printer
power cycles."
::= { prtChannelEntry 1 }
prtChannelType OBJECT-TYPE
SYNTAX PrtChannelTypeTC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of this print data channel. This object
provides the linkage to ChannelType-specific groups that
may (conceptually) extend the prtChannelTable with
additional details about that channel."
::= { prtChannelEntry 2 }
prtChannelProtocolVersion OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..63))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The version of the protocol used on this channel. The
format used for version numbering depends on
prtChannelType."
::= { prtChannelEntry 3 }
prtChannelCurrentJobCntlLangIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The value of prtInterpreterIndex corresponding to the
Control Language Interpreter for this channel. This
interpreter defines the syntax used for control
functions, such as querying or changing environment
variables and identifying job boundaries (e.g. PJL,
PostScript, NPAP). A value of zero indicates that there
is no current Job Control Language Interpreter for this
channel"
::= { prtChannelEntry 4 }
prtChannelDefaultPageDescLangIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
Turner Printer MIB V2 [Page 113]
INTERNET DRAFT Printer MIB January 22, 1999
DESCRIPTION
"The value of prtInterpreterIndex corresponding to the
Page Description Language Interpreter for this channel.
This interpreter defines the default Page Description
Language interpreter to be used for the print data
unless the Control Language is used to select a specific
interpreter (e.g., PCL, PostScript Language, auto-
sense). A value of zero indicates that there is no
default page description language interpreter for this
channel."
::= { prtChannelEntry 5 }
prtChannelState OBJECT-TYPE
-- This value is a type 1 enumeration
SYNTAX PrtChannelStateTC
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The state of this print data channel. The value
determines whether control information and print data is
allowed through this channel or not."
::= { prtChannelEntry 6 }
prtChannelIfIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The value of ifIndex (in the ifTable; see the interface
section of MIB-2/RFC 1213) which corresponds to this
channel. When more than one row of the ifTable is
relevant, this is the index of the row representing the
topmost layer in the interface hierarchy. A value of
zero indicates that no interface is associated with this
channel."
::= { prtChannelEntry 7 }
prtChannelStatus OBJECT-TYPE
SYNTAX PrtSubUnitStatusTC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current status of the channel."
::= { prtChannelEntry 8 }
prtChannelInformation OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
Turner Printer MIB V2 [Page 114]
INTERNET DRAFT Printer MIB January 22, 1999
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Auxiliary information to allow a printing application
to use the channel for data submission to the printer.
An application capable of using a specific
PrtChannelType should be able to use the combined
information from the prtChannelInformation and other
channel and interface group objects to 'bootstrap' its
use of the channel. prtChannelInformation is not
intended to provide a general channel description, nor
to provide information that is available once the
channel is in use.
The encoding and interpretation of the
prtChannelInformation object is specific to channel
type. The description of each PrtChannelType enum value
for which prtChannelInformation is defined specifies the
appropriate encoding and interpretation, including
interaction with other objects. For channel types that
do not specify a prtChannelInformation value, its value
shall be null (0 length).
When a new PrtChannelType enumeration value is
registered, its accompanying description must specify
the encoding and interpretation of the
prtChannelInformation value for the channel type.
prtChannelInformation semantics for an existing
PrtChannelType may be added or amended in the same
manner as described in section 2.4.1 for type 2
enumeration values.
The prtChannelInformation specifies values for a
collection of channel attributes, represented as text
according to the following rules:
1. The prtChannelInformation is not affected by
localization.
2. The prtChannelInformation is a list of entries
representing the attribute values. Each entry consists
of the following items, in order:
a. a keyword, composed of alphabetic characters (A-Z,
a-z) represented by their NVT ASCII [NVT ASCII] codes,
that identifies a channel attribute,
Turner Printer MIB V2 [Page 115]
INTERNET DRAFT Printer MIB January 22, 1999
b. the NVT ASCII code for an Equals Sign (=) (code 61)
to delimit the keyword,
c. a data value encoded using rules specific to the
PrtChannelType to with the prtChannelInformation applies
which must in no case allow an octet with value 10 (the
NVT ASCII Line Feed code),
d. the NVT ASCII code for a Line Feed character (code
10) to delimit the data value.
No other octets shall be present.
Keywords are case-sensitive. Conventionally, keywords
are capitalized (including each word of a multi-word
keyword) and since they occupy space in the
prtChannelInformation, they are kept short.
3. If a channel attribute has multiple values, it is
represented by multiple entries with the same keyword,
each specifying one value. Otherwise, there shall be at
most one entry for each attribute.
4. By default, entries may appear in any order. If
there are ordering constraints for particular entries,
these must be specified in their definitions.
5. The prtChannelInformation value by default consists
of text represented by NVT ASCII graphics character
codes. However, other representations may be specified:
a. In cases where the prtChannelInformation value
contains information not normally coded in textual form,
whatever symbolic representation is conventionally used
for the information should be used for encoding the
prtChannelInformation value. (For instance, a binary
port value might be represented as a decimal number
using NVT ASCII codes.) Such encoding must be specified
in the definition of the value.
b. The value may contain textual information in a
character set other than NVT ASCII graphics characters.
(For instance, an identifier might consist of ISO 10646
text encoded using the UTF-8 encoding scheme.) Such a
character set and its encoding must be specified in the
definition of the value.
6. For each PrtChannelType for which
Turner Printer MIB V2 [Page 116]
INTERNET DRAFT Printer MIB January 22, 1999
prtChannelInformation entries are defined, the
descriptive text associated with the PrtChannelType
enumeration value shall specify the following
information for each entry:
Title: Brief description phrase, e.g.: 'Port
name', 'Service Name', etc.
Keyword: The keyword value, e.g.: 'Port' or
'Service'
Syntax: The encoding of the entry value if it
cannot be directly represented by NVT
ASCII.
Status: 'Mandatory', 'Optional', or 'Conditionally
Mandatory'
Multiplicity: 'Single' or 'Multiple' to indicate whether
the entry may be present multiple times.
Description: Description of the use of the entry, other
information required to complete the
definition (e.g.: ordering constraints,
interactions between entries).
Applications that interpret prtChannelInformation should
ignore unrecognized entries, so they are not affected if
new entry types are added."
::= { prtChannelEntry 9 }
-----Original Message-----
From: Hastings, Tom N [mailto:hastings at cp10.es.xerox.com]
Sent: Monday, May 03, 1999 02:14
To: jkm at underscore.com; harryl at us.ibm.com
Cc: pmp at pwg.org; ipp at pwg.org
Subject: RE: IPP> Re: PMP> IPP "channel" in the Printer MIB
I agree with Jay. We should register a port for IPP, as Jay suggests:
chIPP(??).
Now that we have RFC numbers for IPP/1.0 we have a good reference to use in
the PMP channel registration for IPP. The IPP/1.0 Model and Semantics
document
is RFC 2566 and the IPP/1.0 Encoding and Transport is RFC 2565 (both
experimental).
How about:
chIPP(??),
-- Internet Printing Protocol (IPP)
-- See documents relating to IPP 1.0
-- (RFCs 2565 and 2566).
I'm not sure whether we should mention anything about future IPP versions or
not.
Lloyd,
Can you add this to the draft Printer MIB document?
Furthermore, chPortHTTP(42) could be used for file up load submission of
print jobs using the file up load feature of HTTP. Here is the HTTP
specification:
chPortHTTP(42),
-- Hypertext Transfer Protocol. See IETF
-- documents relating to HTTP 1.0/1.1
-- (RFCs 1945 and 2068,etc.)
-----Original Message-----
From: Jay Martin [mailto:jkm at underscore.com]
Sent: Saturday, May 01, 1999 10:28
To: harryl at us.ibm.com
Cc: pmp at pwg.org; ipp at pwg.org
Subject: IPP> Re: PMP> IPP "channel" in the Printer MIB
I would hope a more explicit channel name represents IPP,
something like "chIPP".
...jay
harryl at us.ibm.com wrote:
>> I haven't seen any attempt to register an IPP channel for the Printer MIB.
> Shouldn't we? Or do we assume chPortHTTP (42) covers it?
>> Harry Lewis
> IBM Printing Systems
>harryl at us.ibm.com