Subject: PMP> Questions about RFC1759

From: "Eugene Chen" <[email-masked]>
Date: Thu, 6 Mar 1997 17:51:20 -0800

Hi, All :

I have two questions about the meaning of the prtStorageRefTable and
prtDeviceRefTable in RFC1759.

1. Question for prtStorageRefTable :

I have the following hypothetical situation in which one disk is shared
between 2 printers.

The prtStorageRefTable is described as having an entry for each storage device
in the
hrStorage table.
In my example, I have a hrStorageTable with 4 entries (4 harddisks : A, B, C
and D), and Disk A and B belongs to printer 1, Disk C belongs to printer 2,
and Disk D belongs to both printers.
And suppose printer 1 has a deviceIndex of 3 and printer 2 has a
deviceIndex of 7.

hrStorageTable :
hrStorageIndex
    1               disk A    (printer1 : deviceIndex=3)
    2               disk B    (printer1 : deviceIndex=3)
    3               disk C    (printer2 : deviceIndex=7)
    4               disk D    (printer1 & 2 : deviceIndex=3 & 7)

So I will have 5 (?) entries in prtStorageRefTable.
Then my prtStorageRefTable will be :

prtStorageRefTable :
hrStorageIndex  prtStorageRefSeqNumber  prtStorageRefIndex
    1                1			      3
    2                1			      3
    3                1			      7
    4                1			      3     (?)
    4                2			      7     (?)

Is the above implementation correct ? Then it violates the description
under prtStorageRefEntry :
        "This table will have an entry for each entry in
        the host MIB storage table that represents storage associated
        with a printer managed by this agent."
Because we have 2 entries under one hrStorageTable entry (disk D).

I looked at the Interop mib walk test results.  Vendor 2 has 2 storage devices
and they use prtStorageRefIndex.1.1 and prtStorageIndex.2.2.  Vendor 4 has 4
devices,
with prtStorageRefIndex.1.1, .2.1, .3.1 and .4.1.  Which of these is more
correct?

2. Question for prtDeviceRefTable :

This case is almost exactly the same as the previous example, the parallel
port, and the processor are shared between two printers.

This table will have an entry for each hrDeviceTable entry in the hrDevice
table,
for example, I have a hrDeviceTable with 7 entries :

hrDeviceTable :
hrDeviceIndex
    1               disk A    (printer1 : deviceIndex=3)
    2               disk B    (printer2 : deviceIndex=7)
    3               printer1
    4               disk C    (printer2 : deviceIndex=7)
    5               Processor (printer1 & 2 : deviceIndex=3 & 7)
    6               parallel port (printer1 & 2 : deviceIndex=3 & 7)
    7               printer2

So I will have 9 (?) entries in prtDeviceRefTable.
Then my prtStorageRefTable will be :

prtDeviceRefTable :
hrDeviceIndex  prtDeviceRefSeqNumber  prtDeviceRefIndex
    1                1			      3
    2                1			      7
    3                1			      3 (point to printer1 itself ?)
    4                1			      7
    5                1			      3 (?)
    5                2			      7 (?)
    6                1			      3 (?)
    6                2			      7 (?)
    7                1			      7 (point to printer2 itself ?)

Is the above implementation correct ? Then it violates the description
under prtDeviceRefEntry :
Because we have 2 entries under one hrDeviceTable entry (Processor and
parallel port).

All responses are appreciated. Thank you.

Eugene Chen

**** The following is taken directly from rfc1759 for reference. ****
-- The System Resources Tables

-- The Printer MIB makes use of the Host MIB to
-- define system resources by referencing the storage
-- and device groups of the print group.  In order to
-- determine, amongst multiple printers serviced by
-- one agent, which printer owns a particular
-- resource, the prtStorageRef and prtDeviceRef tables
-- associate particular storage and device entries to
-- printers.

prtStorageRefTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PrtStorageRefEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        ""
    ::= { prtGeneral 2 }

prtStorageRefEntry OBJECT-TYPE
    SYNTAX     PrtStorageRefEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table will have an entry for each entry in
        the host MIB storage table that represents storage associated
        with a printer managed by this agent."
    INDEX      { hrStorageIndex, prtStorageRefSeqNumber }

PrtStorageRefEntry ::= SEQUENCE {
    prtStorageRefSeqNumber  Integer32,
    prtStorageRefIndex      Integer32
}

prtStorageRefSeqNumber OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This value will be unique amongst all entries with a common
        value of hrStorageIndex.

        This object allows a storage entry to point to the multiple
        printer devices with which it is associated."
    ::= { prtStorageRefEntry 1 }

prtStorageRefIndex OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of the hrDeviceIndex of the printer device that this
        storageEntry is associated with."
    ::= { prtStorageRefEntry 2 }

prtDeviceRefTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PrtDeviceRefEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        ""
    ::= { prtGeneral 3 }

prtDeviceRefEntry OBJECT-TYPE
    SYNTAX     PrtDeviceRefEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table will have an entry for each entry in
        the host MIB device table that represents a device associated
        with a printer managed by this agent."
    INDEX      { hrDeviceIndex, prtDeviceRefSeqNumber }
    ::= { prtDeviceRefTable 1 }

PrtDeviceRefEntry ::= SEQUENCE {
    prtDeviceRefSeqNumber   Integer32,
    prtDeviceRefIndex       Integer32
}

prtDeviceRefSeqNumber OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This value will be unique amongst all entries with a common
        value of hrDeviceIndex.

        This object allows a device entry to point to the multiple
        printer devices with which it is associated."
    ::= { prtDeviceRefEntry 1 }
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of the hrDeviceIndex of the printer device that this
        deviceEntry is associated with."
    ::= { prtDeviceRefEntry 2 }

-- 
_____________________________________________________________
Eugene Chen               Sr. Software Engineer, Networking.
-------------------------------------------------------------
 DIR:(415) 286-8372            Electronics for Imaging, Inc.
OPER:(415) 286-8600            2855 Campus Drive
email:[email-masked]  San Mateo, CA 94403