Network Working Group J. Case, Editor Request for Comments: 1628 SNMP Research, Incorporated Category: Standards Track May 1994 UPS Management Information Base Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Table of Contents 1. Introduction .............................................. 1 2. The SNMPv2 Network Management Framework ................... 2 2.1 Object Definitions ....................................... 2 3. Overview .................................................. 2 4. Definitions ............................................... 3 4.1 The Device Identification Group........................... 4 4.2 The Battery Group ........................................ 5 4.3 The Input Group .......................................... 7 4.4 The Output Group ......................................... 9 4.5 The Bypass Group ......................................... 12 4.6 The Alarm Group .......................................... 13 4.7 The Test Group ........................................... 19 4.8 The Control Group ........................................ 23 4.9 The Configuration Group .................................. 26 5. Acknowledgements .......................................... 43 6. References ................................................ 44 7. Security Considerations ................................... 45 8. Author's Address .......................................... 45 1. Introduction This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it defines objects for managing uninterruptible power supply (UPS) systems. Case [Page 1] RFC 1628 UPS MIB May 1994 2. The SNMPv2 Network Management Framework The SNMPv2 Network Management Framework consists of four major components. They are: o RFC 1442 which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. o STD 17, RFC 1213 defines MIB-II, the core set of managed objects for the Internet suite of protocols. o RFC 1445 which defines the administrative and other architectural aspects of the framework. o RFC 1448 which defines the protocol used for network access to managed objects. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 2.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to refer to the object type. 3. Overview This document defines the managed objects for Uninterruptible Power Supplies which are to be manageable via the Simple Network Management Protocol (SNMP). Case [Page 2] RFC 1628 UPS MIB May 1994 4. Definitions UPS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, OBJECT-IDENTITY, Counter32, Gauge32, Integer32 FROM SNMPv2-SMI DisplayString, TimeStamp, TimeInterval, TestAndIncr, AutonomousType FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; upsMIB MODULE-IDENTITY LAST-UPDATED "9402230000Z" ORGANIZATION "IETF UPS MIB Working Group" CONTACT-INFO " Jeffrey D. Case Postal: SNMP Research, Incorporated 3001 Kimberlin Heights Road Knoxville, TN 37920 US Tel: +1 615 573 1434 Fax: +1 615 573 9197 E-mail: case@snmp.com" DESCRIPTION "The MIB module to describe Uninterruptible Power Supplies." ::= { mib-2 33 } PositiveInteger ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "This data type is a non-zero and non-negative value." SYNTAX INTEGER (1..2147483647) NonNegativeInteger ::= TEXTUAL-CONVENTION DISPLAY-HINT "d" STATUS current DESCRIPTION "This data type is a non-negative value." SYNTAX INTEGER (0..2147483647) Case [Page 3] RFC 1628 UPS MIB May 1994 upsObjects OBJECT IDENTIFIER ::= { upsMIB 1 } -- -- The Device Identification group. -- All objects in this group except for upsIdentName and -- upsIdentAttachedDevices are set at device initialization -- and remain static. -- upsIdent OBJECT IDENTIFIER ::= { upsObjects 1 } upsIdentManufacturer OBJECT-TYPE SYNTAX DisplayString (SIZE (0..31)) MAX-ACCESS read-only STATUS current DESCRIPTION "The name of the UPS manufacturer." ::= { upsIdent 1 } upsIdentModel OBJECT-TYPE SYNTAX DisplayString (SIZE (0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The UPS Model designation." ::= { upsIdent 2 } upsIdentUPSSoftwareVersion OBJECT-TYPE SYNTAX DisplayString (SIZE (0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The UPS firmware/software version(s). This variable may or may not have the same value as upsIdentAgentSoftwareVersion in some implementations." ::= { upsIdent 3 } upsIdentAgentSoftwareVersion OBJECT-TYPE SYNTAX DisplayString (SIZE (0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The UPS agent software version. This variable may or may not have the same value as upsIdentUPSSoftwareVersion in some implementations." ::= { upsIdent 4 } Case [Page 4] RFC 1628 UPS MIB May 1994 upsIdentName OBJECT-TYPE SYNTAX DisplayString (SIZE(0..63)) MAX-ACCESS read-write STATUS current DESCRIPTION "A string identifying the UPS. This object should be set by the administrator." ::= { upsIdent 5 } upsIdentAttachedDevices OBJECT-TYPE SYNTAX DisplayString (SIZE(0..63)) MAX-ACCESS read-write STATUS current DESCRIPTION "A string identifying the devices attached to the output(s) of the UPS. This object should be set by the administrator." ::= { upsIdent 6 } -- -- Battery Group -- upsBattery OBJECT IDENTIFIER ::= { upsObjects 2 } upsBatteryStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), batteryNormal(2), batteryLow(3), batteryDepleted(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "The indication of the capacity remaining in the UPS system's batteries. A value of batteryNormal indicates that the remaining run-time is greater than upsConfigLowBattTime. A value of batteryLow indicates that the remaining battery run-time is less than or equal to upsConfigLowBattTime. A value of batteryDepleted indicates that the UPS will be unable to sustain the present load when and if the utility power is lost (including the possibility that the utility power is currently absent and the UPS is unable to sustain the output)." ::= { upsBattery 1 } Case [Page 5] RFC 1628 UPS MIB May 1994 upsSecondsOnBattery OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION "If the unit is on battery power, the elapsed time since the UPS last switched to battery power, or the time since the network management subsystem was last restarted, whichever is less. Zero shall be returned if the unit is not on battery power." ::= { upsBattery 2 } upsEstimatedMinutesRemaining OBJECT-TYPE SYNTAX PositiveInteger UNITS "minutes" MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate of the time to battery charge depletion under the present load conditions if the utility power is off and remains off, or if it were to be lost and remain off." ::= { upsBattery 3 } upsEstimatedChargeRemaining OBJECT-TYPE SYNTAX INTEGER (0..100) UNITS "percent" MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate of the battery charge remaining expressed as a percent of full charge." ::= { upsBattery 4 } upsBatteryVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 Volt DC" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the present battery voltage." ::= { upsBattery 5 } upsBatteryCurrent OBJECT-TYPE SYNTAX Integer32 UNITS "0.1 Amp DC" MAX-ACCESS read-only Case [Page 6] RFC 1628 UPS MIB May 1994 STATUS current DESCRIPTION "The present battery current." ::= { upsBattery 6 } upsBatteryTemperature OBJECT-TYPE SYNTAX Integer32 UNITS "degrees Centigrade" MAX-ACCESS read-only STATUS current DESCRIPTION "The ambient temperature at or near the UPS Battery casing." ::= { upsBattery 7 } -- -- Input Group -- upsInput OBJECT IDENTIFIER ::= { upsObjects 3 } upsInputLineBads OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of times the input entered an out-of-tolerance condition as defined by the manufacturer. This count is incremented by one each time the input transitions from zero out-of-tolerance lines to one or more input lines out-of-tolerance." ::= { upsInput 1 } upsInputNumLines OBJECT-TYPE SYNTAX NonNegativeInteger MAX-ACCESS read-only STATUS current DESCRIPTION "The number of input lines utilized in this device. This variable indicates the number of rows in the input table." ::= { upsInput 2 } upsInputTable OBJECT-TYPE SYNTAX SEQUENCE OF UpsInputEntry MAX-ACCESS not-accessible Case [Page 7] RFC 1628 UPS MIB May 1994 STATUS current DESCRIPTION "A list of input table entries. The number of entries is given by the value of upsInputNumLines." ::= { upsInput 3 } upsInputEntry OBJECT-TYPE SYNTAX UpsInputEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing information applicable to a particular input line." INDEX { upsInputLineIndex } ::= { upsInputTable 1 } UpsInputEntry ::= SEQUENCE { upsInputLineIndex PositiveInteger, upsInputFrequency NonNegativeInteger, upsInputVoltage NonNegativeInteger, upsInputCurrent NonNegativeInteger, upsInputTruePower NonNegativeInteger } upsInputLineIndex OBJECT-TYPE SYNTAX PositiveInteger MAX-ACCESS not-accessible STATUS current DESCRIPTION "The input line identifier." ::= { upsInputEntry 1 } upsInputFrequency OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 Hertz" MAX-ACCESS read-only STATUS current DESCRIPTION "The present input frequency." ::= { upsInputEntry 2 } upsInputVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the present input voltage." Case [Page 8] RFC 1628 UPS MIB May 1994 ::= { upsInputEntry 3 } upsInputCurrent OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 RMS Amp" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the present input current." ::= { upsInputEntry 4 } upsInputTruePower OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "Watts" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the present input true power." ::= { upsInputEntry 5 } -- -- The Output group. -- upsOutput OBJECT IDENTIFIER ::= { upsObjects 4 } upsOutputSource OBJECT-TYPE SYNTAX INTEGER { other(1), none(2), normal(3), bypass(4), battery(5), booster(6), reducer(7) } MAX-ACCESS read-only STATUS current DESCRIPTION "The present source of output power. The enumeration none(2) indicates that there is no source of output power (and therefore no output power), for example, the system has opened the output breaker." ::= { upsOutput 1 } upsOutputFrequency OBJECT-TYPE SYNTAX NonNegativeInteger Case [Page 9] RFC 1628 UPS MIB May 1994 UNITS "0.1 Hertz" MAX-ACCESS read-only STATUS current DESCRIPTION "The present output frequency." ::= { upsOutput 2 } upsOutputNumLines OBJECT-TYPE SYNTAX NonNegativeInteger MAX-ACCESS read-only STATUS current DESCRIPTION "The number of output lines utilized in this device. This variable indicates the number of rows in the output table." ::= { upsOutput 3 } upsOutputTable OBJECT-TYPE SYNTAX SEQUENCE OF UpsOutputEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of output table entries. The number of entries is given by the value of upsOutputNumLines." ::= { upsOutput 4 } upsOutputEntry OBJECT-TYPE SYNTAX UpsOutputEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing information applicable to a particular output line." INDEX { upsOutputLineIndex } ::= { upsOutputTable 1 } UpsOutputEntry ::= SEQUENCE { upsOutputLineIndex PositiveInteger, upsOutputVoltage NonNegativeInteger, upsOutputCurrent NonNegativeInteger, upsOutputPower NonNegativeInteger, upsOutputPercentLoad INTEGER } upsOutputLineIndex OBJECT-TYPE SYNTAX PositiveInteger MAX-ACCESS not-accessible STATUS current Case [Page 10] RFC 1628 UPS MIB May 1994 DESCRIPTION "The output line identifier." ::= { upsOutputEntry 1 } upsOutputVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-only STATUS current DESCRIPTION "The present output voltage." ::= { upsOutputEntry 2 } upsOutputCurrent OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 RMS Amp" MAX-ACCESS read-only STATUS current DESCRIPTION "The present output current." ::= { upsOutputEntry 3 } upsOutputPower OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "Watts" MAX-ACCESS read-only STATUS current DESCRIPTION "The present output true power." ::= { upsOutputEntry 4 } upsOutputPercentLoad OBJECT-TYPE SYNTAX INTEGER (0..200) UNITS "percent" MAX-ACCESS read-only STATUS current DESCRIPTION "The percentage of the UPS power capacity presently being used on this output line, i.e., the greater of the percent load of true power capacity and the percent load of VA." ::= { upsOutputEntry 5 } Case [Page 11] RFC 1628 UPS MIB May 1994 -- -- The Bypass group. -- upsBypass OBJECT IDENTIFIER ::= { upsObjects 5 } upsBypassFrequency OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 Hertz" MAX-ACCESS read-only STATUS current DESCRIPTION "The present bypass frequency." ::= { upsBypass 1 } upsBypassNumLines OBJECT-TYPE SYNTAX NonNegativeInteger MAX-ACCESS read-only STATUS current DESCRIPTION "The number of bypass lines utilized in this device. This entry indicates the number of rows in the bypass table." ::= { upsBypass 2 } upsBypassTable OBJECT-TYPE SYNTAX SEQUENCE OF UpsBypassEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of bypass table entries. The number of entries is given by the value of upsBypassNumLines." ::= { upsBypass 3 } upsBypassEntry OBJECT-TYPE SYNTAX UpsBypassEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing information applicable to a particular bypass input." INDEX { upsBypassLineIndex } ::= { upsBypassTable 1 } UpsBypassEntry ::= SEQUENCE { upsBypassLineIndex PositiveInteger, upsBypassVoltage NonNegativeInteger, upsBypassCurrent NonNegativeInteger, Case [Page 12] RFC 1628 UPS MIB May 1994 upsBypassPower NonNegativeInteger } upsBypassLineIndex OBJECT-TYPE SYNTAX PositiveInteger MAX-ACCESS not-accessible STATUS current DESCRIPTION "The bypass line identifier." ::= { upsBypassEntry 1 } upsBypassVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-only STATUS current DESCRIPTION "The present bypass voltage." ::= { upsBypassEntry 2 } upsBypassCurrent OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 RMS Amp" MAX-ACCESS read-only STATUS current DESCRIPTION "The present bypass current." ::= { upsBypassEntry 3 } upsBypassPower OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "Watts" MAX-ACCESS read-only STATUS current DESCRIPTION "The present true power conveyed by the bypass." ::= { upsBypassEntry 4 } -- -- The Alarm group. -- upsAlarm OBJECT IDENTIFIER ::= { upsObjects 6 } upsAlarmsPresent OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only Case [Page 13] RFC 1628 UPS MIB May 1994 STATUS current DESCRIPTION "The present number of active alarm conditions." ::= { upsAlarm 1 } upsAlarmTable OBJECT-TYPE SYNTAX SEQUENCE OF UpsAlarmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of alarm table entries. The table contains zero, one, or many rows at any moment, depending upon the number of alarm conditions in effect. The table is initially empty at agent startup. The agent creates a row in the table each time a condition is detected and deletes that row when that condition no longer pertains. The agent creates the first row with upsAlarmId equal to 1, and increments the value of upsAlarmId each time a new row is created, wrapping to the first free value greater than or equal to 1 when the maximum value of upsAlarmId would otherwise be exceeded. Consequently, after multiple operations, the table may become sparse, e.g., containing entries for rows 95, 100, 101, and 203 and the entries should not be assumed to be in chronological order because upsAlarmId might have wrapped. Alarms are named by an AutonomousType (OBJECT IDENTIFIER), upsAlarmDescr, to allow a single table to reflect well known alarms plus alarms defined by a particular implementation, i.e., as documented in the private enterprise MIB definition for the device. No two rows will have the same value of upsAlarmDescr, since alarms define conditions. In order to meet this requirement, care should be taken in the definition of alarm conditions to insure that a system cannot enter the same condition multiple times simultaneously. The number of rows in the table at any given time is reflected by the value of upsAlarmsPresent." ::= { upsAlarm 2 } upsAlarmEntry OBJECT-TYPE SYNTAX UpsAlarmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing information applicable to a Case [Page 14] RFC 1628 UPS MIB May 1994 particular alarm." INDEX { upsAlarmId } ::= { upsAlarmTable 1 } UpsAlarmEntry ::= SEQUENCE { upsAlarmId PositiveInteger, upsAlarmDescr AutonomousType, upsAlarmTime TimeStamp } upsAlarmId OBJECT-TYPE SYNTAX PositiveInteger MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique identifier for an alarm condition. This value must remain constant." ::= { upsAlarmEntry 1 } upsAlarmDescr OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-only STATUS current DESCRIPTION "A reference to an alarm description object. The object referenced should not be accessible, but rather be used to provide a unique description of the alarm condition." ::= { upsAlarmEntry 2 } upsAlarmTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when the alarm condition was detected. If the alarm condition was detected at the time of agent startup and presumably existed before agent startup, the value of upsAlarmTime shall equal 0." ::= { upsAlarmEntry 3 } -- -- Well known alarm conditions. -- upsWellKnownAlarms OBJECT IDENTIFIER ::= { upsAlarm 3 } Case [Page 15] RFC 1628 UPS MIB May 1994 upsAlarmBatteryBad OBJECT-IDENTITY STATUS current DESCRIPTION "One or more batteries have been determined to require replacement." ::= { upsWellKnownAlarms 1 } upsAlarmOnBattery OBJECT-IDENTITY STATUS current DESCRIPTION "The UPS is drawing power from the batteries." ::= { upsWellKnownAlarms 2 } upsAlarmLowBattery OBJECT-IDENTITY STATUS current DESCRIPTION "The remaining battery run-time is less than or equal to upsConfigLowBattTime." ::= { upsWellKnownAlarms 3 } upsAlarmDepletedBattery OBJECT-IDENTITY STATUS current DESCRIPTION "The UPS will be unable to sustain the present load when and if the utility power is lost." ::= { upsWellKnownAlarms 4 } upsAlarmTempBad OBJECT-IDENTITY STATUS current DESCRIPTION "A temperature is out of tolerance." ::= { upsWellKnownAlarms 5 } upsAlarmInputBad OBJECT-IDENTITY STATUS current DESCRIPTION "An input condition is out of tolerance." ::= { upsWellKnownAlarms 6 } upsAlarmOutputBad OBJECT-IDENTITY STATUS current DESCRIPTION "An output condition (other than OutputOverload) is out of tolerance." ::= { upsWellKnownAlarms 7 } upsAlarmOutputOverload OBJECT-IDENTITY Case [Page 16] RFC 1628 UPS MIB May 1994 STATUS current DESCRIPTION "The output load exceeds the UPS output capacity." ::= { upsWellKnownAlarms 8 } upsAlarmOnBypass OBJECT-IDENTITY STATUS current DESCRIPTION "The Bypass is presently engaged on the UPS." ::= { upsWellKnownAlarms 9 } upsAlarmBypassBad OBJECT-IDENTITY STATUS current DESCRIPTION "The Bypass is out of tolerance." ::= { upsWellKnownAlarms 10 } upsAlarmOutputOffAsRequested OBJECT-IDENTITY STATUS current DESCRIPTION "The UPS has shutdown as requested, i.e., the output is off." ::= { upsWellKnownAlarms 11 } upsAlarmUpsOffAsRequested OBJECT-IDENTITY STATUS current DESCRIPTION "The entire UPS has shutdown as commanded." ::= { upsWellKnownAlarms 12 } upsAlarmChargerFailed OBJECT-IDENTITY STATUS current DESCRIPTION "An uncorrected problem has been detected within the UPS charger subsystem." ::= { upsWellKnownAlarms 13 } upsAlarmUpsOutputOff OBJECT-IDENTITY STATUS current DESCRIPTION "The output of the UPS is in the off state." ::= { upsWellKnownAlarms 14 } upsAlarmUpsSystemOff OBJECT-IDENTITY STATUS current DESCRIPTION "The UPS system is in the off state." ::= { upsWellKnownAlarms 15 } Case [Page 17] RFC 1628 UPS MIB May 1994 upsAlarmFanFailure OBJECT-IDENTITY STATUS current DESCRIPTION "The failure of one or more fans in the UPS has been detected." ::= { upsWellKnownAlarms 16 } upsAlarmFuseFailure OBJECT-IDENTITY STATUS current DESCRIPTION "The failure of one or more fuses has been detected." ::= { upsWellKnownAlarms 17 } upsAlarmGeneralFault OBJECT-IDENTITY STATUS current DESCRIPTION "A general fault in the UPS has been detected." ::= { upsWellKnownAlarms 18 } upsAlarmDiagnosticTestFailed OBJECT-IDENTITY STATUS current DESCRIPTION "The result of the last diagnostic test indicates a failure." ::= { upsWellKnownAlarms 19 } upsAlarmCommunicationsLost OBJECT-IDENTITY STATUS current DESCRIPTION "A problem has been encountered in the communications between the agent and the UPS." ::= { upsWellKnownAlarms 20 } upsAlarmAwaitingPower OBJECT-IDENTITY STATUS current DESCRIPTION "The UPS output is off and the UPS is awaiting the return of input power." ::= { upsWellKnownAlarms 21 } upsAlarmShutdownPending OBJECT-IDENTITY STATUS current DESCRIPTION "A upsShutdownAfterDelay countdown is underway." ::= { upsWellKnownAlarms 22 } upsAlarmShutdownImminent OBJECT-IDENTITY STATUS current Case [Page 18] RFC 1628 UPS MIB May 1994 DESCRIPTION "The UPS will turn off power to the load in less than 5 seconds; this may be either a timed shutdown or a low battery shutdown." ::= { upsWellKnownAlarms 23 } upsAlarmTestInProgress OBJECT-IDENTITY STATUS current DESCRIPTION "A test is in progress, as initiated and indicated by the Test Group. Tests initiated via other implementation-specific mechanisms can indicate the presence of the testing in the alarm table, if desired, via a OBJECT-IDENTITY macro in the MIB document specific to that implementation and are outside the scope of this OBJECT-IDENTITY." ::= { upsWellKnownAlarms 24 } -- -- The Test Group -- upsTest OBJECT IDENTIFIER ::= { upsObjects 7 } upsTestId OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-write STATUS current DESCRIPTION "The test is named by an OBJECT IDENTIFIER which allows a standard mechanism for the initiation of tests, including the well known tests identified in this document as well as those introduced by a particular implementation, i.e., as documented in the private enterprise MIB definition for the device. Setting this variable initiates the named test. Sets to this variable require the presence of upsTestSpinLock in the same SNMP message. The set request will be rejected with an appropriate error message if the requested test cannot be performed, including attempts to start a test when another test is already in progress. The status of the current or last test is maintained in upsTestResultsSummary. Tests in progress may be aborted by setting the upsTestId variable to Case [Page 19] RFC 1628 UPS MIB May 1994 upsTestAbortTestInProgress. Read operations return the value of the name of the test in progress if a test is in progress or the name of the last test performed if no test is in progress, unless no test has been run, in which case the well known value upsTestNoTestsInitiated is returned." ::= { upsTest 1 } -- see [6] for more information on the semantics of objects with -- syntax of TestAndIncr upsTestSpinLock OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "A spin lock on the test subsystem. The spinlock is used as follows. Before starting a test, a manager-station should make sure that a test is not in progress as follows: try_again: get (upsTestSpinLock) while (upsTestResultsSummary == inProgress) { /* loop while a test is running for another manager */ short delay get (upsTestSpinLock) } lock_value = upsTestSpinLock /* no test in progress, start the test */ set (upsTestSpinLock = lock_value, upsTestId = requested_test) if (error_index == 1) { /* (upsTestSpinLock failed) */ /* if problem is not access control, then some other manager slipped in ahead of us */ goto try_again } if (error_index == 2) { /* (upsTestId) */ /* cannot perform the test */ give up } /* test started ok */ /* wait for test completion by polling Case [Page 20] RFC 1628 UPS MIB May 1994 upsTestResultsSummary */ get (upsTestSpinLock, upsTestResultsSummary, upsTestResultsDetail) while (upsTestResultsSummary == inProgress) { short delay get (upsTestSpinLock, upsTestResultsSummary, upsTestResultsDetail) } /* when test completes, retrieve any additional test results */ /* if upsTestSpinLock == lock_value + 1, then these are our test */ /* results (as opposed to another manager's */ The initial value of upsTestSpinLock at agent initialization shall be 1." ::= { upsTest 2 } upsTestResultsSummary OBJECT-TYPE SYNTAX INTEGER { donePass(1), doneWarning(2), doneError(3), aborted(4), inProgress(5), noTestsInitiated(6) } MAX-ACCESS read-only STATUS current DESCRIPTION "The results of the current or last UPS diagnostics test performed. The values for donePass(1), doneWarning(2), and doneError(3) indicate that the test completed either successfully, with a warning, or with an error, respectively. The value aborted(4) is returned for tests which are aborted by setting the value of upsTestId to upsTestAbortTestInProgress. Tests which have not yet concluded are indicated by inProgress(5). The value noTestsInitiated(6) indicates that no previous test results are available, such as is the case when no tests have been run since the last reinitialization of the network management subsystem and the system has no provision for non- volatile storage of test results." ::= { upsTest 3 } upsTestResultsDetail OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) Case [Page 21] RFC 1628 UPS MIB May 1994 MAX-ACCESS read-only STATUS current DESCRIPTION "Additional information about upsTestResultsSummary. If no additional information available, a zero length string is returned." ::= { upsTest 4 } upsTestStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the test in progress was initiated, or, if no test is in progress, the time the previous test was initiated. If the value of upsTestResultsSummary is noTestsInitiated(6), upsTestStartTime has the value 0." ::= { upsTest 5 } upsTestElapsedTime OBJECT-TYPE SYNTAX TimeInterval MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of time, in TimeTicks, since the test in progress was initiated, or, if no test is in progress, the previous test took to complete. If the value of upsTestResultsSummary is noTestsInitiated(6), upsTestElapsedTime has the value 0." ::= { upsTest 6 } -- -- Well known tests. -- upsWellKnownTests OBJECT IDENTIFIER ::= { upsTest 7 } upsTestNoTestsInitiated OBJECT-IDENTITY STATUS current DESCRIPTION "No tests have been initiated and no test is in progress." ::= { upsWellKnownTests 1 } upsTestAbortTestInProgress OBJECT-IDENTITY STATUS current Case [Page 22] RFC 1628 UPS MIB May 1994 DESCRIPTION "The test in progress is to be aborted / the test in progress was aborted." ::= { upsWellKnownTests 2 } upsTestGeneralSystemsTest OBJECT-IDENTITY STATUS current DESCRIPTION "The manufacturer's standard test of UPS device systems." ::= { upsWellKnownTests 3 } upsTestQuickBatteryTest OBJECT-IDENTITY STATUS current DESCRIPTION "A test that is sufficient to determine if the battery needs replacement." ::= { upsWellKnownTests 4 } upsTestDeepBatteryCalibration OBJECT-IDENTITY STATUS current DESCRIPTION "The system is placed on battery to a discharge level, set by the manufacturer, sufficient to determine battery replacement and battery run-time with a high degree of confidence. WARNING: this test will leave the battery in a low charge state and will require time for recharging to a level sufficient to provide normal battery duration for the protected load." ::= { upsWellKnownTests 5 } -- -- The Control group. -- upsControl OBJECT IDENTIFIER ::= { upsObjects 8 } upsShutdownType OBJECT-TYPE SYNTAX INTEGER { output(1), system(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object determines the nature of the action to be taken at the time when the countdown of the Case [Page 23] RFC 1628 UPS MIB May 1994 upsShutdownAfterDelay and upsRebootWithDuration objects reaches zero. Setting this object to output(1) indicates that shutdown requests should cause only the output of the UPS to turn off. Setting this object to system(2) indicates that shutdown requests will cause the entire UPS system to turn off." ::= { upsControl 1 } upsShutdownAfterDelay OBJECT-TYPE SYNTAX INTEGER (-1..2147483648) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "Setting this object will shutdown (i.e., turn off) either the UPS output or the UPS system (as determined by the value of upsShutdownType at the time of shutdown) after the indicated number of seconds, or less if the UPS batteries become depleted. Setting this object to 0 will cause the shutdown to occur immediately. Setting this object to -1 will abort the countdown. If the system is already in the desired state at the time the countdown reaches 0, then nothing will happen. That is, there is no additional action at that time if upsShutdownType = system and the system is already off. Similarly, there is no additional action at that time if upsShutdownType = output and the output is already off. When read, upsShutdownAfterDelay will return the number of seconds remaining until shutdown, or -1 if no shutdown countdown is in effect. On some systems, if the agent is restarted while a shutdown countdown is in effect, the countdown may be aborted. Sets to this object override any upsShutdownAfterDelay already in effect." ::= { upsControl 2 } upsStartupAfterDelay OBJECT-TYPE SYNTAX INTEGER (-1..2147483648) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "Setting this object will start the output after the indicated number of seconds, including starting the UPS, if necessary. Setting this object to 0 will cause the startup to occur immediately. Setting this Case [Page 24] RFC 1628 UPS MIB May 1994 object to -1 will abort the countdown. If the output is already on at the time the countdown reaches 0, then nothing will happen. Sets to this object override the effect of any upsStartupAfterDelay countdown or upsRebootWithDuration countdown in progress. When read, upsStartupAfterDelay will return the number of seconds until startup, or -1 if no startup countdown is in effect. If the countdown expires during a utility failure, the startup shall not occur until the utility power is restored. On some systems, if the agent is restarted while a startup countdown is in effect, the countdown is aborted." ::= { upsControl 3 } upsRebootWithDuration OBJECT-TYPE SYNTAX INTEGER (-1..300) UNITS "seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "Setting this object will immediately shutdown (i.e., turn off) either the UPS output or the UPS system (as determined by the value of upsShutdownType at the time of shutdown) for a period equal to the indicated number of seconds, after which time the output will be started, including starting the UPS, if necessary. If the number of seconds required to perform the request is greater than the requested duration, then the requested shutdown and startup cycle shall be performed in the minimum time possible, but in no case shall this require more than the requested duration plus 60 seconds. When read, upsRebootWithDuration shall return the number of seconds remaining in the countdown, or -1 if no countdown is in progress. If the startup should occur during a utility failure, the startup shall not occur until the utility power is restored." ::= { upsControl 4 } upsAutoRestart OBJECT-TYPE SYNTAX INTEGER { on(1), off(2) } MAX-ACCESS read-write STATUS current DESCRIPTION Case [Page 25] RFC 1628 UPS MIB May 1994 "Setting this object to 'on' will cause the UPS system to restart after a shutdown if the shutdown occurred during a power loss as a result of either a upsShutdownAfterDelay or an internal battery depleted condition. Setting this object to 'off' will prevent the UPS system from restarting after a shutdown until an operator manually or remotely explicitly restarts it. If the UPS is in a startup or reboot countdown, then the UPS will not restart until that delay has been satisfied." ::= { upsControl 5 } -- -- The Configuration group. -- upsConfig OBJECT IDENTIFIER ::= { upsObjects 9 } upsConfigInputVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-write STATUS current DESCRIPTION "The magnitude of the nominal input voltage. On those systems which support read-write access to this object, if there is an attempt to set this variable to a value that is not supported, the request must be rejected and the agent shall respond with an appropriate error message, i.e., badValue for SNMPv1, or inconsistentValue for SNMPv2." ::= { upsConfig 1 } upsConfigInputFreq OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 Hertz" MAX-ACCESS read-write STATUS current DESCRIPTION "The nominal input frequency. On those systems which support read-write access to this object, if there is an attempt to set this variable to a value that is not supported, the request must be rejected and the agent shall respond with an appropriate error message, i.e., badValue for SNMPv1, or inconsistentValue for SNMPv2." ::= { upsConfig 2 } Case [Page 26] RFC 1628 UPS MIB May 1994 upsConfigOutputVoltage OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-write STATUS current DESCRIPTION "The magnitude of the nominal output voltage. On those systems which support read-write access to this object, if there is an attempt to set this variable to a value that is not supported, the request must be rejected and the agent shall respond with an appropriate error message, i.e., badValue for SNMPv1, or inconsistentValue for SNMPv2." ::= { upsConfig 3 } upsConfigOutputFreq OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "0.1 Hertz" MAX-ACCESS read-write STATUS current DESCRIPTION "The nominal output frequency. On those systems which support read-write access to this object, if there is an attempt to set this variable to a value that is not supported, the request must be rejected and the agent shall respond with an appropriate error message, i.e., badValue for SNMPv1, or inconsistentValue for SNMPv2." ::= { upsConfig 4 } upsConfigOutputVA OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "Volt-Amps" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the nominal Volt-Amp rating." ::= { upsConfig 5 } upsConfigOutputPower OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "Watts" MAX-ACCESS read-only STATUS current DESCRIPTION "The magnitude of the nominal true power rating." ::= { upsConfig 6 } upsConfigLowBattTime OBJECT-TYPE Case [Page 27] RFC 1628 UPS MIB May 1994 SYNTAX NonNegativeInteger UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "The value of upsEstimatedMinutesRemaining at which a lowBattery condition is declared. For agents which support only discrete (discontinuous) values, then the agent shall round up to the next supported value. If the requested value is larger than the largest supported value, then the largest supported value shall be selected." ::= { upsConfig 7 } upsConfigAudibleStatus OBJECT-TYPE SYNTAX INTEGER { disabled(1), enabled(2), muted(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "The requested state of the audible alarm. When in the disabled state, the audible alarm should never sound. The enabled state is self-describing. Setting this object to muted(3) when the audible alarm is sounding shall temporarily silence the alarm. It will remain muted until it would normally stop sounding and the value returned for read operations during this period shall equal muted(3). At the end of this period, the value shall revert to enabled(2). Writes of the value muted(3) when the audible alarm is not sounding shall be accepted but otherwise shall have no effect." ::= { upsConfig 8 } upsConfigLowVoltageTransferPoint OBJECT-TYPE SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-write STATUS current DESCRIPTION "The minimum input line voltage allowed before the UPS system transfers to battery backup." ::= { upsConfig 9 } upsConfigHighVoltageTransferPoint OBJECT-TYPE Case [Page 28] RFC 1628 UPS MIB May 1994 SYNTAX NonNegativeInteger UNITS "RMS Volts" MAX-ACCESS read-write STATUS current DESCRIPTION "The maximum line voltage allowed before the UPS system transfers to battery backup." ::= { upsConfig 10 } -- -- notifications, i.e., traps -- upsTraps OBJECT IDENTIFIER ::= { upsMIB 2 } -- This section defines the well-known notifications sent by -- UPS agents. -- Care must be taken to insure that no particular notification -- is sent to a single receiving entity more often than once -- every five seconds. upsTrapOnBattery NOTIFICATION-TYPE OBJECTS { upsEstimatedMinutesRemaining, upsSecondsOnBattery, upsConfigLowBattTime } STATUS current DESCRIPTION "The UPS is operating on battery power. This trap is persistent and is resent at one minute intervals until the UPS either turns off or is no longer running on battery." ::= { upsTraps 1 } upsTrapTestCompleted NOTIFICATION-TYPE OBJECTS { upsTestId, upsTestSpinLock, upsTestResultsSummary, upsTestResultsDetail, upsTestStartTime, upsTestElapsedTime } STATUS current DESCRIPTION "This trap is sent upon completion of a UPS diagnostic test." ::= { upsTraps 2 } upsTrapAlarmEntryAdded NOTIFICATION-TYPE OBJECTS { upsAlarmId, upsAlarmDescr } STATUS current DESCRIPTION "This trap is sent each time an alarm is inserted into to the alarm table. It is sent on the insertion of Case [Page 29] RFC 1628 UPS MIB May 1994 all alarms except for upsAlarmOnBattery and upsAlarmTestInProgress." ::= { upsTraps 3 } upsTrapAlarmEntryRemoved NOTIFICATION-TYPE OBJECTS { upsAlarmId, upsAlarmDescr } STATUS current DESCRIPTION "This trap is sent each time an alarm is removed from the alarm table. It is sent on the removal of all alarms except for upsAlarmTestInProgress." ::= { upsTraps 4 } -- -- conformance information -- upsConformance OBJECT IDENTIFIER ::= { upsMIB 3 } upsCompliances OBJECT IDENTIFIER ::= { upsConformance 1 } -- -- compliance statements -- upsSubsetCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for UPSs that only support the two-contact communication protocol." MODULE -- this module MANDATORY-GROUPS { upsSubsetIdentGroup, upsSubsetBatteryGroup, upsSubsetInputGroup, upsSubsetOutputGroup, upsSubsetAlarmGroup, upsSubsetControlGroup, upsSubsetConfigGroup } OBJECT upsBatteryStatus SYNTAX INTEGER { batteryNormal(2), batteryLow(3) } DESCRIPTION "Support of the values unknown(1) and batteryDepleted(4) is not required." OBJECT upsAlarmDescr Case [Page 30] RFC 1628 UPS MIB May 1994 DESCRIPTION "Support of all `well known' alarm types is not required. The well known alarm types which must be supported are: upsAlarmOnBattery, upsAlarmLowBattery, upsAlarmInputBad, upsAlarmUpsOutputOff, upsAlarmUpsSystemOff, and upsAlarmTestInProgress." OBJECT upsOutputSource SYNTAX INTEGER { normal(2), battery(4) } DESCRIPTION "Support of the values other(1), none(2), bypass(4), booster(6) and reducer(7) is not required." OBJECT upsShutdownType MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant systems need not support more than one shutdown type." OBJECT upsAutoRestart MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant systems need not support more than one restart type." OBJECT upsConfigInputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigInputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." Case [Page 31] RFC 1628 UPS MIB May 1994 ::= { upsCompliances 1 } upsBasicCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for UPSs that support full-featured functions, such as control." MODULE -- this module MANDATORY-GROUPS { upsBasicIdentGroup, upsBasicBatteryGroup, upsBasicInputGroup, upsBasicOutputGroup, upsBasicAlarmGroup, upsBasicTestGroup, upsBasicControlGroup, upsBasicConfigGroup } OBJECT upsAlarmDescr DESCRIPTION "Support of all `well known' alarm types is not required. The well known alarm types which must be supported are: upsAlarmOnBattery, upsAlarmLowBattery, upsAlarmDepletedBattery, upsAlarmTempBad, upsAlarmInputBad, upsAlarmOutputOverload, upsAlarmOnBypass, upsAlarmBypassBad, upsAlarmOutputOffAsRequested, upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff, upsAlarmUpsSystemOff, upsAlarmGeneralFault, upsAlarmDiagnosticTestFailed, upsAlarmCommunicationsLost, upsAlarmShutdownPending, and upsAlarmTestInProgress." OBJECT upsTestId DESCRIPTION "Support of all `well known' test types is not required. If no tests are supported, then the only well known test type which must be supported is upsTestNoTestsInitiated." OBJECT upsOutputSource SYNTAX INTEGER { normal(2), battery(4) } DESCRIPTION "Support of the values other(1), none(2), bypass(4), booster(6) and reducer(7) is not required." GROUP upsBasicBypassGroup Case [Page 32] RFC 1628 UPS MIB May 1994 DESCRIPTION "The upsBasicBypassGroup is only required for UPSs that have a Bypass present." OBJECT upsShutdownType MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant systems need not support more than one shutdown type." OBJECT upsAutoRestart MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant systems need not support more than one restart type." OBJECT upsConfigInputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigInputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigLowBattTime DESCRIPTION "Implementation of all possible values may be onerous for some systems. Consequently, not all possible values must be supported. However, at least two different manufacturer-selected values must be supported." ::= { upsCompliances 2 } upsFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION Case [Page 33] RFC 1628 UPS MIB May 1994 "The compliance statement for UPSs that support advanced full-featured functions." MODULE -- this module MANDATORY-GROUPS { upsFullIdentGroup, upsFullBatteryGroup, upsFullInputGroup, upsFullOutputGroup, upsFullAlarmGroup, upsFullTestGroup, upsFullControlGroup, upsFullConfigGroup } OBJECT upsAlarmDescr DESCRIPTION "Support of all `well known' alarm types is not required. The well known alarm types which must be supported are: upsAlarmBatteryBad, upsAlarmOnBattery, upsAlarmLowBattery, upsAlarmDepletedBattery, upsAlarmTempBad, upsAlarmInputBad, upsAlarmOnBypass, upsAlarmBypassBad, upsAlarmOutputOffAsRequested, upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff, upsAlarmUpsSystemOff, upsAlarmGeneralFault, upsAlarmDiagnosticTestFailed, upsAlarmCommunicationsLost, upsAlarmShutdownPending, and upsAlarmTestInProgress." OBJECT upsTestId DESCRIPTION "Support of all `well known' test types is not required. The well known test types which must be supported are: upsTestNoTestsInitiated, upsTestGeneralSystemsTest, and upsTestQuickBatteryTest." OBJECT upsOutputSource SYNTAX INTEGER { normal(2), battery(4) } DESCRIPTION "Support of the values other(1), none(2), bypass(4), booster(6) and reducer(7) is not required." GROUP upsFullBypassGroup DESCRIPTION "The upsFullBypassGroup is only required for UPSs that have a Bypass present." OBJECT upsShutdownType MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant Case [Page 34] RFC 1628 UPS MIB May 1994 systems need not support more than one shutdown type." OBJECT upsAutoRestart MIN-ACCESS read-only DESCRIPTION "Read-write access is not required, i.e., compliant systems need not support more than one restart type." OBJECT upsConfigInputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigInputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputVoltage MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigOutputFreq MIN-ACCESS read-only DESCRIPTION "Read-write access is not required." OBJECT upsConfigLowBattTime DESCRIPTION "Implementation of all possible values may be onerous for some systems. Consequently, not all possible values must be supported. However, at least two different manufacturer-selected values must be supported." ::= { upsCompliances 3 } -- -- units of conformance -- -- summary at a glance: -- subset basic adv --upsIdentManufacturer x x x --upsIdentModel x x x Case [Page 35] RFC 1628 UPS MIB May 1994 --upsIdentUPSSoftwareVersion x x --upsIdentAgentSoftwareVersion x x x --upsIdentName x x x --upsIdentAttachedDevices x x -- --upsBatteryStatus x x x notes --upsSecondsOnBattery x x x --upsEstimatedMinutesRemaining x --upsEstimatedChargeRemaining x --upsBatteryVoltage --upsBatteryCurrent --upsBatteryTemperature -- --upsInputLineBads x x x --upsInputNumLines x x --upsInputFrequency x x --upsInputVoltage x x --upsInputCurrent --upsInputTruePower -- --upsOutputSource x x x notes --upsOutputFrequency x x --upsOutputNumLines x x --upsOutputVoltage x x --upsOutputCurrent x --upsOutputPower x --upsOutputPercentLoad x -- -- --upsBypassFrequency x x notes --upsBypassNumLines x x --upsBypassVoltage x x --upsBypassCurrent --upsBypassPower -- -- --upsAlarmsPresent x x x --upsAlarmDescr x x x notes --upsAlarmTime x x x -- --upsTestId x x notes --upsTestSpinLock x x --upsTestResultsSummary x x --upsTestResultsDetail x x --upsTestStartTime x x --upsTestElapsedTime x x -- --upsShutdownType x x x notes Case [Page 36] RFC 1628 UPS MIB May 1994 --upsShutdownAfterDelay x x x --upsStartupAfterDelay x x --upsRebootWithDuration x x --upsAutoRestart x x x notes -- --upsConfigInputVoltage x x x notes --upsConfigInputFreq x x x notes --upsConfigOutputVoltage x x x notes --upsConfigOutputFreq x x x notes --upsConfigOutputVA x x x --upsConfigOutputPower x x x --upsConfigLowBattTime x x notes --upsConfigAudibleStatus x x --upsConfigLowVoltageTransferPoint --upsConfigHighVoltageTransferPoint -- units of conformance upsGroups OBJECT IDENTIFIER ::= { upsConformance 2 } upsSubsetGroups OBJECT IDENTIFIER ::= { upsGroups 1 } upsSubsetIdentGroup OBJECT-GROUP OBJECTS { upsIdentManufacturer, upsIdentModel, upsIdentAgentSoftwareVersion, upsIdentName, upsIdentAttachedDevices } STATUS current DESCRIPTION "The upsSubsetIdentGroup defines objects which are common across all UPSs which meet subset compliance. Most devices which conform to the upsSubsetIdentGroup will provide access to these objects via a proxy agent. If the proxy agent is compatible with multiple UPS types, configuration of the proxy agent will require specifying some of these values, either individually, or as a group (perhaps through a table lookup mechanism based on the UPS model number)." ::= { upsSubsetGroups 1 } upsSubsetBatteryGroup OBJECT-GROUP OBJECTS { upsBatteryStatus, upsSecondsOnBattery } STATUS current DESCRIPTION "The upsSubsetBatteryGroup defines the objects that are common to battery groups of two-contact UPSs." ::= { upsSubsetGroups 2 } upsSubsetInputGroup OBJECT-GROUP Case [Page 37] RFC 1628 UPS MIB May 1994 OBJECTS { upsInputLineBads } STATUS current DESCRIPTION "The upsSubsetInputGroup defines the objects that are common to the Input groups of two-contact UPSs." ::= { upsSubsetGroups 3 } upsSubsetOutputGroup OBJECT-GROUP OBJECTS { upsOutputSource } STATUS current DESCRIPTION "The upsSubsetOutputGroup defines the objects that are common to the Output groups of two-contact UPSs." ::= { upsSubsetGroups 4 } -- { upsSubsetGroups 5 } is reserved for -- future use (upsSubsetBypassGroup) upsSubsetAlarmGroup OBJECT-GROUP OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } STATUS current DESCRIPTION "The upsSubsetAlarmGroup defines the objects that are common to the Alarm groups of two-contact UPSs." ::= { upsSubsetGroups 6 } -- { upsSubsetGroups 7 } is reserved for -- future use (upsSubsetTestGroup) upsSubsetControlGroup OBJECT-GROUP OBJECTS { upsShutdownType, upsShutdownAfterDelay, upsAutoRestart } STATUS current DESCRIPTION "The upsSubsetControlGroup defines the objects that are common to the Control groups of two-contact UPSs." ::= { upsSubsetGroups 8 } upsSubsetConfigGroup OBJECT-GROUP OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, upsConfigOutputVoltage, upsConfigOutputFreq, upsConfigOutputVA, upsConfigOutputPower } STATUS current DESCRIPTION "The upsSubsetConfigGroup defines the objects that are common to the Config groups of two-contact UPSs." ::= { upsSubsetGroups 9 } Case [Page 38] RFC 1628 UPS MIB May 1994 upsBasicGroups OBJECT IDENTIFIER ::= { upsGroups 2 } upsBasicIdentGroup OBJECT-GROUP OBJECTS { upsIdentManufacturer, upsIdentModel, upsIdentUPSSoftwareVersion, upsIdentAgentSoftwareVersion, upsIdentName } STATUS current DESCRIPTION "The upsBasicIdentGroup defines objects which are common to the Ident group of compliant UPSs which support basic functions." ::= { upsBasicGroups 1 } upsBasicBatteryGroup OBJECT-GROUP OBJECTS { upsBatteryStatus, upsSecondsOnBattery } STATUS current DESCRIPTION "The upsBasicBatteryGroup defines the objects that are common to the battery groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 2 } upsBasicInputGroup OBJECT-GROUP OBJECTS { upsInputLineBads, upsInputNumLines, upsInputFrequency, upsInputVoltage } STATUS current DESCRIPTION "The upsBasicInputGroup defines the objects that are common to the Input groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 3 } upsBasicOutputGroup OBJECT-GROUP OBJECTS { upsOutputSource, upsOutputFrequency, upsOutputNumLines, upsOutputVoltage } STATUS current DESCRIPTION "The upsBasicOutputGroup defines the objects that are common to the Output groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 4 } upsBasicBypassGroup OBJECT-GROUP OBJECTS { upsBypassFrequency, upsBypassNumLines, upsBypassVoltage } STATUS current DESCRIPTION "The upsBasicBypassGroup defines the objects that are Case [Page 39] RFC 1628 UPS MIB May 1994 common to the Bypass groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 5 } upsBasicAlarmGroup OBJECT-GROUP OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } STATUS current DESCRIPTION "The upsBasicAlarmGroup defines the objects that are common to the Alarm groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 6 } upsBasicTestGroup OBJECT-GROUP OBJECTS { upsTestId, upsTestSpinLock, upsTestResultsSummary, upsTestResultsDetail, upsTestStartTime, upsTestElapsedTime } STATUS current DESCRIPTION "The upsBasicTestGroup defines the objects that are common to the Test groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 7 } upsBasicControlGroup OBJECT-GROUP OBJECTS { upsShutdownType, upsShutdownAfterDelay, upsStartupAfterDelay, upsRebootWithDuration, upsAutoRestart } STATUS current DESCRIPTION "The upsBasicControlGroup defines the objects that are common to the Control groups of compliant UPSs which support basic functions." ::= { upsBasicGroups 8 } upsBasicConfigGroup OBJECT-GROUP OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, upsConfigOutputVoltage, upsConfigOutputFreq, upsConfigOutputVA, upsConfigOutputPower, upsConfigLowBattTime, upsConfigAudibleStatus } STATUS current DESCRIPTION "The upsBasicConfigGroup defines the objects that are common to the Config groups of UPSs which support basic functions." ::= { upsBasicGroups 9 } Case [Page 40] RFC 1628 UPS MIB May 1994 upsFullGroups OBJECT IDENTIFIER ::= { upsGroups 3 } upsFullIdentGroup OBJECT-GROUP OBJECTS { upsIdentManufacturer, upsIdentModel, upsIdentUPSSoftwareVersion, upsIdentAgentSoftwareVersion, upsIdentName, upsIdentAttachedDevices } STATUS current DESCRIPTION "The upsFullIdentGroup defines objects which are common to the Ident group of fully compliant UPSs." ::= { upsFullGroups 1 } upsFullBatteryGroup OBJECT-GROUP OBJECTS { upsBatteryStatus, upsSecondsOnBattery, upsEstimatedMinutesRemaining, upsEstimatedChargeRemaining } STATUS current DESCRIPTION "The upsFullBatteryGroup defines the objects that are common to the battery groups of fully compliant UPSs." ::= { upsFullGroups 2 } upsFullInputGroup OBJECT-GROUP OBJECTS { upsInputLineBads, upsInputNumLines, upsInputFrequency, upsInputVoltage } STATUS current DESCRIPTION "The upsFullInputGroup defines the objects that are common to the Input groups of fully compliant UPSs." ::= { upsFullGroups 3 } upsFullOutputGroup OBJECT-GROUP OBJECTS { upsOutputSource, upsOutputFrequency, upsOutputNumLines, upsOutputVoltage, upsOutputCurrent, upsOutputPower, upsOutputPercentLoad } STATUS current DESCRIPTION "The upsFullOutputGroup defines the objects that are common to the Output groups of fully compliant UPSs." ::= { upsFullGroups 4 } upsFullBypassGroup OBJECT-GROUP OBJECTS { upsBypassFrequency, upsBypassNumLines, upsBypassVoltage } STATUS current DESCRIPTION Case [Page 41] RFC 1628 UPS MIB May 1994 "The upsFullBypassGroup defines the objects that are common to the Bypass groups of fully compliant UPSs." ::= { upsFullGroups 5 } upsFullAlarmGroup OBJECT-GROUP OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } STATUS current DESCRIPTION "The upsFullAlarmGroup defines the objects that are common to the Alarm groups of fully compliant UPSs." ::= { upsFullGroups 6 } upsFullTestGroup OBJECT-GROUP OBJECTS { upsTestId, upsTestSpinLock, upsTestResultsSummary, upsTestResultsDetail, upsTestStartTime, upsTestElapsedTime } STATUS current DESCRIPTION "The upsFullTestGroup defines the objects that are common to the Test groups of fully compliant UPSs." ::= { upsFullGroups 7 } upsFullControlGroup OBJECT-GROUP OBJECTS { upsShutdownType, upsShutdownAfterDelay, upsStartupAfterDelay, upsRebootWithDuration, upsAutoRestart } STATUS current DESCRIPTION "The upsFullControlGroup defines the objects that are common to the Control groups of fully compliant UPSs." ::= { upsFullGroups 8 } upsFullConfigGroup OBJECT-GROUP OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, upsConfigOutputVoltage, upsConfigOutputFreq, upsConfigOutputVA, upsConfigOutputPower, upsConfigLowBattTime, upsConfigAudibleStatus } STATUS current DESCRIPTION "The upsFullConfigGroup defines the objects that are common to the Config groups of fully compliant UPSs." ::= { upsFullGroups 9 } END Case [Page 42] RFC 1628 UPS MIB May 1994 5. Acknowledgements The UPS MIB represents the combined work of the IETF UPS MIB Working Group, with particular, substantial authorship contributions from: Mike Davison Fibercom, Inc. Ray Wasson Consultant Roger Draper Liebert Corporation Ken Key SNMP Research, Incorporated Pete Yoest American Power Conversion Doug Rademacher American Power Conversion Ron Pitt Network Security Systems, Inc Terry Zumwalt International Power Machines Lawren Markle Tripp Lite Bill Elliot ONEAC Tom Brennan Exide Electronics Brian Young Best Power Technology Case [Page 43] RFC 1628 UPS MIB May 1994 6. References [1] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, SNMP Research, Inc., Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990. [2] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1448, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993. [3] McCloghrie, K., and M. Rose, Editors, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", STD 17, RFC 1213, Hughes LAN Systems, Performance Systems International, March 1991. [4] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1442, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993. [5] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1444, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April, 1993. [6] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1443, SNMP Research, Inc., Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon University, April 1993. Case [Page 44] RFC 1628 UPS MIB May 1994 7. Security Considerations Security issues are not discussed in this memo. 8. Author's Address Jeffrey D. Case, Ph.D. SNMP Research, Incorporated 3001 Kimberlin Heights Road Knoxville, Tennessee 37920 Phone: (615) 573-1434 EMail: case@SNMP.COM Case [Page 45]