Printer MIB v2
obsoletes
- rfc-1759 — Printer MIB
Extracted elements (26)
A single Alert Table rather than per-group alert associations was chosen because one sub-unit entry can produce multiple simultaneous alerts (e.g., paper jams in multiple locations along a media path). Associating additional alert information with the source entry would limit it to one alert per entry.
Read-write access is granted to objects describing resources that some printers cannot sense (e.g., paper size in a tray). The criterion is that the printer must actually act on the written value — these objects drive printer behavior and are not merely informational annotations.
The special Integer32 sentinel values other(-1), unknown(-2), and partial(-3) were introduced to express conditions outside normal numeric ranges (e.g., some supply remaining but amount indeterminate) without requiring separate status objects alongside every numeric measurement.
IPP channels (chIPP, value 44) use the prtChannelInformation object to carry a mandatory URI keyword (UTF-8, RFC 2396), an optional Auth keyword specifying authentication mechanism (none, requesting-user-name, basic, digest, certificate), and a Security keyword; an IPP Printer shall list all supported IPP URIs, one per channel entry.
RFC 3805 is backward compatible with RFC 1759: a compliant RFC 1759 implementation is also compliant with RFC 3805. The nine new objects added (prtAuxiliarySheetStartupPage, prtGeneralPrinterName, prtGeneralSerialNumber, prtAlertCriticalEvents, prtAlertAllEvents, etc.) appear in optional GROUP rather than MANDATORY-GROUP conformance clauses.
The Alert Index is a monotonically increasing integer; gaps in table index values signal that entries were deleted. Management applications detecting such gaps should re-acquire full printer state to detect state changes not captured in the trimmed Alert Table.
Type 1 textual conventions (defined solely in the Printer MIB) require a new Printer MIB RFC for any additional enumerated values. Type 2 textual conventions (registered in the IANA Printer MIB) allow additions via Designated Expert Review without republishing the Printer MIB.
All objects in the Interfaces Group of MIB-II SHALL be implemented for all print information interfaces, including non-network interfaces such as serial and parallel ports.
All objects in the system group of MIB-II SHALL be implemented. The storage and device groups of the Host Resources MIB (RFC 2790) SHALL be implemented to support the printer system controller.
If a critical binary alert was deleted from the table due to overflow and the alert condition still exists, the alert SHOULD be re-added when space allows, even without a subsequent state transition. This is also recommended for non-critical binary alerts.
If the value of any MIB object persists across power cycles or cold starts, then prtMarkerLifeCount MUST also persist; its value must be maintained throughout the lifetime of the printer.
The agent SHALL return all character strings in coded character sets where code positions 0–127 (decimal) are US-ASCII. Control codes (positions 0–31 and 127) SHALL NOT be used unless specifically required in an object DESCRIPTION clause.
The agent SHOULD return all character strings in the UTF-8 transform of ISO 10646 to conform with the IETF Policy on Character Sets and Languages (RFC 2277). Localization SHOULD only be performed on objects named 'xxxDescription' or 'prtConsoleDisplayBufferText'.
When the Alert Table overflows, the agent must delete alerts in priority order: (1) oldest non-critical unary alert, (2) oldest non-critical binary alert, (3) oldest critical binary alert. Implementers are encouraged to provision storage for the maximum number of simultaneous critical alerts.
A printer is modeled as 13 sub-unit types: General Printer, Inputs, Media, Outputs, Finishers, Markers, Media Paths, System Controller (Host Resources MIB), Interfaces (MIB-II), Print Job Delivery Channels, Interpreters, Console, and Alerts. Sub-units may be logical processes rather than physical mechanisms.
Alerts are classified as binary change events (paired leading/trailing edge, e.g., paper jam) or unary change events (e.g., configuration change). Only leading-edge binary events create table entries; the trailing edge removes them. Unary events create entries with no natural removal trigger.
The Alert Table records all currently active alerts, each with severity (critical/non-critical), the affected Group and entry index, a more detailed location, an alert code, description, and the level of operator training needed to service the condition.
The Interpreter sub-unit handles conversion of PDL or Control Language descriptions into marked images. The Interpreter Table has one entry per interpreter; prtInterpreterDefaultCharSetIn and prtInterpreterDefaultCharSetOut specify default coded character sets for that interpreter.
The Print Job Delivery Channel sub-unit identifies each independent source of print data by its electronic path and service protocol. It can be independently enabled or disabled, carries a current Control Language, and has a default interpreter used when none is explicitly specified.
PrtChannelTypeTC enumerates 45 channel types. Legacy deprecated values include chPort9100(11), chDCERemoteProcCall(22), chONCRemoteProcCall(23), chOLE(24), chDLLAPI(29), chVxDAPI(30). Current types include chPortTCP(37), chBidirPortTCP(38), chIPP(44), and chSMTP(45, new in RFC 3805).
PrtCoverStatusTC enumerates cover/interlock states: other(1), coverOpen(3), coverClosed(4), interlockOpen(5), interlockClosed(6). PrtGeneralResetTC enumerates reset modes: notResetting(3), powerCycleReset(4, cold start), resetToNVRAM(5, warm start), resetToFactoryDefaults(6).
The IANA Printer MIB module is assigned OID mib-2 109 (LAST-UPDATED 2004-06-02) and defines printing-related TEXTUAL-CONVENTIONs for use in Printer MIB (RFC 3805), Finisher MIB (RFC 3806), and other MIBs. Additions require RFC publication or Designated Expert Review per RFC 2434.
The Printer MIB exposes read-write objects that directly affect device behavior, including prtGeneralReset (power cycle, factory defaults), channel enable/disable controls, and media configuration. Implementations must apply SNMPv3 access control (RFC 3410) to prevent unauthorized modification; unauthenticated or unencrypted SNMP access to these objects creates denial-of-service and configuration-tampering risks.
Overall printer status is reported via the Host Resources MIB triple (hrDeviceStatus, hrPrinterStatus, hrPrinterDetectedErrorState): Idle=(running,idle,none); Busy/Active=(running,printing,—); Non-Critical Alert=(warning,idle or printing,lowPaper/lowToner/serviceRequested); Critical Alert=(down,other,jammed/noPaper/noToner/coverOpen); Unavailable=(down,other,—); Off-line=(down,other,offline); Moving on-line=(down,warmup,—); Standby=(running,other,—).
hrPrinterDetectedErrorState is an OCTET STRING (SIZE 0..128) with bit-encoded error flags: bit 0=lowPaper, 1=noPaper, 2=lowToner, 3=noToner, 4=doorOpen, 5=jammed, 6=offline, 7=serviceRequested, 8=inputTrayMissing, 9=outputTrayMissing, 10=markerSupplyMissing, 11=outputNearFull, 12=outputFull, 13=inputTrayEmpty, 14=overduePreventMaint. Bit 0 is the MSB of byte 1.
PrtSubUnitStatusTC is an Integer32 formed as the additive sum of five independent status dimensions: Availability (0/1/2/3/4/5/6), Non-Critical alert flag (0 or 8), Critical alert flag (0 or 16), On-Line flag (0 or 32), and Transitioning flag (0 or 64). For example, a jammed tray also low on paper yields 3+16+8=27.