Subject: PMP> Can an RFC 1759 implementation use the alert(18) type 1 code?

From: Tom Hastings <[email-masked]>
Date: Thu, 4 Jun 1998 18:46:32 PDT

RFC 1759 says that implementations conforming to RFC 1759 may implement
type 2 and type 3 enums that are registered after 1759 has been published.

In order to use the new type 2 alert code:

                     -- Alert Group
                          alertRemovalOfBinaryChangeEntry(1801)
                              -- A binary change event entry has been
                              -- removed from the alert table. This unary
                              -- change alert table entry is added to the
                              -- end of the alert table.

an implementation has to include the new type 1 alert(18) code
in the alert table and trap (which is defined in the draft Printer MIB):

                   prtAlertSeverityLevel   warningUnaryChangeEvent(4)
                   prtAlertTrainingLevel   noInterventionRequired(7)
                   prtAlertGroup           alert(18)
                   prtAlertGroupIndex      the index of the row in the
                                           alert table of the binary
                                           change event that this event
                                           has removed.
                   prtAlertLocation        unknown (-2)
                   prtAlertCode       alertRemovalOfBinaryChangeEntry(1801)
                   prtAlertDescription     <description or null string>
                   prtAlertTime            the value of sysUpTime at
                                           the time of the removal of the

With hind site we should have made the PrtAlertGroupTC a type 2 
enum, instead of a type 1 enum.  But we didn't. 

Alternatively, since the alert group codes starting at 30 are type 2,
why not also indicate that the alert code 18 is also type 2, so that
implementations conforming to RFC 1759 can use it?

Or am I just being too fussy here?  Should implementators conforming to
RFC 1759 feel free to implement the alert(18) type 1 code?

Here is the complete text of both TCs:

          PrtAlertGroupTC ::= TEXTUAL-CONVENTION
              -- This value is a type 1 enumeration for values in the range
              -- 1 to 29.
              -- Values of 30 and greater are type 2 enumerations and are
              -- for use in other MIBs that augment tables in the Printer

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 61]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

              -- MIB. Therefore, other MIBs may assign alert codes of 30 or
              -- higher to use the alert table from the Printer MIB without
              -- requiring revising and re-publishing this document.
              STATUS     current
              DESCRIPTION
                   "The type of sub-unit within the printer model that this
                   alert is related.  Input, output, and markers are
                   examples of printer model groups, i.e., examples of
                   types of sub-units. Wherever possible, these
                   enumerations match the sub-identifier that identifies
                   the relevant table in the printer MIB.

                   NOTE: Alert type codes have been added for the host
                   resources MIB storage table and device table. These
                   additional types are for situations in which the
                   printer's storage and device objects
                   must generate alerts (and possibly traps for critical
                   alerts)."
              SYNTAX     INTEGER {
                             other(1),
                             hostResourcesMIBStorageTable(3),
                             hostResourcesMIBDeviceTable(4),
                             generalPrinter(5),
                             cover(6),
                             localization(7),
                             input(8),
                             output(9),
                             marker(10),
                             markerSupplies(11),
                             markerColorant(12),
                             mediaPath(13),
                             channel(14),
                             interpreter(15),
                             consoleDisplayBuffer(16),
                             consoleLights(17),
                             alert(18)
                         }

          PrtAlertCodeTC ::= TEXTUAL-CONVENTION
              -- This value is a type 2 enumeration
              STATUS     current
              DESCRIPTION
                   "The code that describes the type of alert for this
                   entry in the table. Binary change event alerts describe
                   states of the subunit while unary change event alerts

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 62]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

                   describe a single event. The same alert code can be used
                   for a binary change event or a unary change event,
                   depending on implementation. Also, the same alert code
                   can be used to indicate a critical or a non-critical
                   (warning) alert, depending on implementation. The value
                   of prtAlertSeverityLevel specifies binary vs. unary and
                   critical vs. non-critical for each event for the
                   implementation.

                   While there are some specific codes for many subunits,
                   the generic codes should be used for most subunit
                   alerts. The network management station can then query
                   the subunit specified by prtAlertGroup to determine
                   further subunit status and other subunit information.

                   An agent shall not add two entries to the alert table
                   for the same event, one containing a generic event code
                   and the other containing a specific event code; the
                   agent shall add only one entry in the alert table for
                   each event; either generic (preferred) or specific, not
                   both.

                   Implementation of the unary change event
                   alertRemovalOfBinaryChangeEntry(1801) is optional. When
                   implemented, this alert code shall indicate to network
                   management stations that the trailing edge of a binary
                   change event has occurred and the corresponding alert
                   entry has been removed from the alert table. As with all
                   events, the alertRemovalOfBinaryChangeEntry(1801) alert
                   shall be placed at the end of the alert table. Such an
                   alert table entry shall specify the following
                   information:

                   prtAlertSeverityLevel   warningUnaryChangeEvent(4)
                   prtAlertTrainingLevel   noInterventionRequired(7)
                   prtAlertGroup           alert(18)
                   prtAlertGroupIndex      the index of the row in the
                                           alert table of the binary
                                           change event that this event
                                           has removed.
                   prtAlertLocation        unknown (-2)
                   prtAlertCode       alertRemovalOfBinaryChangeEntry(1801)
                   prtAlertDescription     <description or null string>
                   prtAlertTime            the value of sysUpTime at
                                           the time of the removal of the

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 63]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

                                           binary change event from the
                                           alert table.

                   Optionally, the agent may generate a trap coincident
                   with removing the binary change event and placing the
                   unary change event alertRemovalOfBinaryChangeEntry(1801)
                   in the alert table. For such a trap, the prtAlertIndex
                   sent with the above trap parameters shall be the index
                   of the alertRemovalOfBinaryChangeEvent row that was
                   added to the prtAlertTable; not the index of the row
                   that was removed from the prtAlertTable."
              SYNTAX     INTEGER {
                             other(1),
                                  -- an event that is not represented
                                  -- by one of the alert codes
                                  -- specified below.
                             unknown(2),
                                  -- The following generic codes are common
                                  -- to multiple groups. The NMS may
                                  -- examine the prtAlertGroup object
                                  -- to determine what group to query for
                                  -- further information.
                          coverOpened(3),
                          coverClosed(4),
                          interlockOpened(5),
                          interlockClosed(6),
                          configurationChanged(7),
                          jammed(8),
                          subunitMissing(9),
                                  -- The subunit tray, bin, etc.
                                  -- has been removed.
                          subunitLifeAlmostOver(10),
                          subunitLifeOver(11),
                          subunitAlmostEmpty(12),
                          subunitEmpty(13),
                          subunitAlmostFull(14),
                          subunitFull(15),
                          subunitNearLimit(16),
                          subunitAtLimit(17),
                          subunitOpened(18),
                          subunitClosed(19),
                          subunitTurnedOn(20),
                          subunitTurnedOff(21),
                          subunitOffline(22),
                          subunitPowerSaver(23),

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 64]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

                          subunitWarmingUp(24),
                          subunitAdded(25),
                          subunitRemoved(26),
                          subunitResourceAdded(27),
                          subunitResourceRemoved(28),
                          subunitRecoverableFailure(29),
                          subunitUnrecoverableFailure(30),
                          subunitRecoverableStorageError(31),
                          subunitUnrecoverableStorageError(32),
                          subunitMotorFailure(33),
                          subunitMemoryExhausted(34),
                          subunitUnderTemperature(35),
                          subunitOverTemperature(36),
                          subunitTimingFailure(37),
                          subunitThermistorFailure(38),
                      -- general Printer group
                          doorOpen(501),    -- DEPRECATED
                                            -- Use coverOpened(3)
                          doorClosed(502),  -- DEPRECATED
                                            -- Use coverClosed(4)
                          poweredUp(503),
                          poweredDown(504),
                          printerNMSReset(505),
                                  -- The printer has been reset by some
                                  -- network management station(NMS)
                                  -- writing into 'prtGeneralReset'. The
                                  -- value written shall be stored as
                                  -- the value of the prtAlertLocation
                                  -- object indicating the type of
                                  -- reset: powerCycleReset(4),
                                  -- resetToNVRAM(5),
                                  -- resetToFactoryDefaults(6), etc.
                          printerManualReset(506),
                                  -- The printer has been reset manually.
                                  -- The value of prtAlertLocation may be
                                  -- used to indicate the type of reset.
                          printerReadyToPrint(507),
                                  -- The printer is ready to print. (i.e.,
                                  -- not warming up, not in power save
                                  -- state, not adjusting print quality,
                                  -- etc.).

                      -- Input Group
                          inputMediaTrayMissing(801),
                          inputMediaSizeChanged(802),

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 65]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

                          inputMediaWeightChanged(803),
                          inputMediaTypeChanged(804),
                          inputMediaColorChanged(805),
                          inputMediaFormPartsChange(806),
                          inputMediaSupplyLow(807),
                          inputMediaSupplyEmpty(808),
                          inputMediaChangeRequest(809),
                              -- An interpreter has detected that a 
                              -- different medium is need in this input
                              -- tray subunit. The prtAlertDescription may
                              -- be used to convey a human readable
                              -- description of the medium required to
                              -- satisfy the request.
                          inputManualInputRequest(810),
                              -- An interpreter has detected that manual
                              -- input is required in this subunit. The
                              -- prtAlertDescription may be used to convey
                              -- a human readable description of the medium
                              -- required to satisfy the request.
                          inputTrayPositionFailure(811),
                              -- The input tray failed to position 
                              -- correctly.
                          inputTrayElevationFailure(812),
                          inputCannotFeedSizeSelected(813),
                      -- Output Group
                          outputMediaTrayMissing(901),
                          outputMediaTrayAlmostFull(902),
                          outputMediaTrayFull(903),
                          outputMailboxSelectFailure(904),
                      -- Marker group
                          markerFuserUnderTemperature(1001),
                          markerFuserOverTemperature(1002),
                          markerFuserTimingFailure(1003),
                          markerFuserThermistorFailure(1004),
                          markerAdjustingPrintQuality(1005),
                      -- Marker Supplies group
                          markerTonerEmpty(1101),
                          markerInkEmpty(1102),
                          markerPrintRibbonEmpty(1103),
                          markerTonerAlmostEmpty(1104),
                          markerInkAlmostEmpty(1105),
                          markerPrintRibbonAlmostEmpty(1106),
                          markerWasteTonerReceptacleAlmostFull(1107),
                          markerWasteInkReceptacleAlmostFull(1108),
                          markerWasteTonerReceptacleFull(1109),

          Turner      draft-ietf-printmib-mib-info-03.txt         [Page 66]
                             Expires July 22, 1998

          INTERNET DRAFT          Printer MIB              October 15, 1997

                          markerWasteInkReceptacleFull(1110),
                          markerOpcLifeAlmostOver(1111),
                          markerOpcLifeOver(1112),
                          markerDeveloperAlmostEmpty(1113),
                          markerDeveloperEmpty(1114),
                          markerTonerCartridgeMissing(1115),
                      -- Media Path Device Group
                          mediaPathMediaTrayMissing(1301),
                          mediaPathMediaTrayAlmostFull(1302),
                          mediaPathMediaTrayFull(1303),
                      -- Interpreter Group
                          interpreterMemoryIncreased(1501),
                          interpreterMemoryDecreased(1502),
                          interpreterCartridgeAdded(1503),
                          interpreterCartridgeDeleted(1504),
                          interpreterResourceAdded(1505),
                          interpreterResourceDeleted(1506),
                          interpreterResourceUnavailable(1507),
                          interpreterComplexPageEncountered(1509),
                              -- The interpreter has encountered a page
                              -- that is too complex for the resources that
                              -- are available.
                      -- Alert Group
                          alertRemovalOfBinaryChangeEntry(1801)
                              -- A binary change event entry has been
                              -- removed from the alert table. This unary
                              -- change alert table entry is added to the
                              -- end of the alert table.
                }

---

From: Ron Bergman <[email-masked]>
Date: Mon, 8 Jun 1998 08:10:17 -0700 (Pacific Daylight Time)

Tom,

A *pure* implementation conforming to RFC 1759 cannot include alert(18).
A better question would be "Does the inclusion of alert(18) cause
interoperability problems?"  

Since the main reason for conformance is to insure interoperability, a
100% conforming implementation will interoperate.  Also, many
non-conforming features will also interoperate.  Is this one of them?  My
guess would be yes, but a check with management app vendors should be
initiated to verify this assumption.

Changing alert(18) to a type 2 enum does not solve the problem.  The
fact of the matter is, you cannot change an existing RFC.

Why not simply upgrade to the new Printer MIB (RFC 3???) ifthis feature is
absolutely required.

	Ron Bergman
	Dataproducts Corp.