Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / mibs / ietf / UPS-MIB
1 UPS-MIB DEFINITIONS ::= BEGIN
2
3 IMPORTS
4     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
5     OBJECT-IDENTITY, Counter32, Gauge32, Integer32, mib-2
6         FROM SNMPv2-SMI
7     DisplayString, TimeStamp, TimeInterval, TestAndIncr,
8       AutonomousType, TEXTUAL-CONVENTION
9         FROM SNMPv2-TC
10     MODULE-COMPLIANCE, OBJECT-GROUP
11         FROM SNMPv2-CONF;
12
13
14 upsMIB MODULE-IDENTITY
15     LAST-UPDATED "9402230000Z"
16     ORGANIZATION "IETF UPS MIB Working Group"
17     CONTACT-INFO
18            "        Jeffrey D. Case
19
20              Postal: SNMP Research, Incorporated
21                      3001 Kimberlin Heights Road
22                      Knoxville, TN  37920
23                      US
24
25                 Tel: +1 615 573 1434
26                 Fax: +1 615 573 9197
27
28              E-mail: case@snmp.com"
29     DESCRIPTION
30             "The MIB module to describe Uninterruptible Power
31             Supplies."
32     ::= { mib-2 33 }
33
34 PositiveInteger ::= TEXTUAL-CONVENTION
35     DISPLAY-HINT "d"
36     STATUS       current
37     DESCRIPTION
38             "This data type is a non-zero and non-negative value."
39     SYNTAX       INTEGER (1..2147483647)
40
41 NonNegativeInteger ::= TEXTUAL-CONVENTION
42     DISPLAY-HINT "d"
43     STATUS       current
44     DESCRIPTION
45             "This data type is a non-negative value."
46     SYNTAX       INTEGER (0..2147483647)
47 upsObjects            OBJECT IDENTIFIER ::= { upsMIB 1 }
48
49
50 --
51 -- The Device Identification group.
52 --      All objects in this group except for upsIdentName and
53 --      upsIdentAttachedDevices are set at device initialization
54 --      and remain static.
55 --
56
57 upsIdent              OBJECT IDENTIFIER ::= { upsObjects 1 }
58
59 upsIdentManufacturer OBJECT-TYPE
60     SYNTAX     DisplayString (SIZE (0..31))
61     MAX-ACCESS read-only
62     STATUS     current
63     DESCRIPTION
64             "The name of the UPS manufacturer."
65     ::= { upsIdent 1 }
66
67 upsIdentModel OBJECT-TYPE
68     SYNTAX     DisplayString (SIZE (0..63))
69     MAX-ACCESS read-only
70     STATUS     current
71     DESCRIPTION
72             "The UPS Model designation."
73     ::= { upsIdent 2 }
74
75 upsIdentUPSSoftwareVersion OBJECT-TYPE
76     SYNTAX     DisplayString (SIZE (0..63))
77     MAX-ACCESS read-only
78     STATUS     current
79     DESCRIPTION
80             "The UPS firmware/software version(s).  This variable
81             may or may not have the same value as
82             upsIdentAgentSoftwareVersion in some implementations."
83     ::= { upsIdent 3 }
84
85 upsIdentAgentSoftwareVersion OBJECT-TYPE
86     SYNTAX     DisplayString (SIZE (0..63))
87     MAX-ACCESS read-only
88     STATUS     current
89     DESCRIPTION
90             "The UPS agent software version.  This variable may or
91             may not have the same value as
92             upsIdentUPSSoftwareVersion in some implementations."
93     ::= { upsIdent 4 }
94
95 upsIdentName OBJECT-TYPE
96     SYNTAX     DisplayString (SIZE(0..63))
97     MAX-ACCESS read-write
98     STATUS     current
99     DESCRIPTION
100             "A string identifying the UPS.  This object should be
101             set by the administrator."
102     ::= { upsIdent 5 }
103
104 upsIdentAttachedDevices OBJECT-TYPE
105     SYNTAX     DisplayString (SIZE(0..63))
106     MAX-ACCESS read-write
107     STATUS     current
108     DESCRIPTION
109             "A string identifying the devices attached to the
110             output(s) of the UPS.  This object should be set by
111             the administrator."
112     ::= { upsIdent 6 }
113
114
115 --
116 -- Battery Group
117 --
118
119 upsBattery            OBJECT IDENTIFIER ::= { upsObjects 2 }
120
121 upsBatteryStatus OBJECT-TYPE
122     SYNTAX     INTEGER {
123         unknown(1),
124         batteryNormal(2),
125         batteryLow(3),
126         batteryDepleted(4)
127     }
128     MAX-ACCESS read-only
129     STATUS     current
130     DESCRIPTION
131             "The indication of the capacity remaining in the UPS
132             system's batteries.   A value of batteryNormal
133             indicates that the remaining run-time is greater than
134             upsConfigLowBattTime.  A value of batteryLow indicates
135             that the remaining battery run-time is less than or
136             equal to upsConfigLowBattTime.  A value of
137             batteryDepleted indicates that the UPS will be unable
138             to sustain the present load when and if the utility
139             power is lost (including the possibility that the
140             utility power is currently absent and the UPS is
141             unable to sustain the output)."
142     ::= { upsBattery 1 }
143
144 upsSecondsOnBattery OBJECT-TYPE
145     SYNTAX     NonNegativeInteger
146     UNITS      "seconds"
147     MAX-ACCESS read-only
148     STATUS     current
149     DESCRIPTION
150             "If the unit is on battery power, the elapsed time
151             since the UPS last switched to battery power, or the
152             time since the network management subsystem was last
153             restarted, whichever is less.  Zero shall be returned
154             if the unit is not on battery power."
155     ::= { upsBattery 2 }
156
157 upsEstimatedMinutesRemaining OBJECT-TYPE
158     SYNTAX     PositiveInteger
159     UNITS      "minutes"
160     MAX-ACCESS read-only
161     STATUS     current
162     DESCRIPTION
163             "An estimate of the time to battery charge depletion
164             under the present load conditions if the utility power
165             is off and remains off, or if it were to be lost and
166             remain off."
167     ::= { upsBattery 3 }
168
169 upsEstimatedChargeRemaining OBJECT-TYPE
170     SYNTAX     INTEGER (0..100)
171     UNITS      "percent"
172     MAX-ACCESS read-only
173     STATUS     current
174     DESCRIPTION
175             "An estimate of the battery charge remaining expressed
176             as a percent of full charge."
177     ::= { upsBattery 4 }
178
179 upsBatteryVoltage OBJECT-TYPE
180     SYNTAX     NonNegativeInteger
181     UNITS      "0.1 Volt DC"
182     MAX-ACCESS read-only
183     STATUS     current
184     DESCRIPTION
185             "The magnitude of the present battery voltage."
186     ::= { upsBattery 5 }
187
188 upsBatteryCurrent OBJECT-TYPE
189     SYNTAX     Integer32
190     UNITS      "0.1 Amp DC"
191     MAX-ACCESS read-only
192     STATUS     current
193     DESCRIPTION
194             "The present battery current."
195     ::= { upsBattery 6 }
196
197 upsBatteryTemperature OBJECT-TYPE
198     SYNTAX     Integer32
199     UNITS      "degrees Centigrade"
200     MAX-ACCESS read-only
201     STATUS     current
202     DESCRIPTION
203             "The ambient temperature at or near the UPS Battery
204             casing."
205     ::= { upsBattery 7 }
206
207
208 --
209 -- Input Group
210 --
211
212 upsInput              OBJECT IDENTIFIER ::= { upsObjects 3 }
213
214 upsInputLineBads OBJECT-TYPE
215     SYNTAX     Counter32
216     MAX-ACCESS read-only
217     STATUS     current
218     DESCRIPTION
219             "A count of the number of times the input entered an
220             out-of-tolerance condition as defined by the
221             manufacturer.  This count is incremented by one each
222             time the input transitions from zero out-of-tolerance
223             lines to one or more input lines out-of-tolerance."
224     ::= { upsInput 1 }
225
226
227 upsInputNumLines OBJECT-TYPE
228     SYNTAX     NonNegativeInteger
229     MAX-ACCESS read-only
230     STATUS     current
231     DESCRIPTION
232             "The number of input lines utilized in this device.
233             This variable indicates the number of rows in the
234             input table."
235     ::= { upsInput 2 }
236
237 upsInputTable OBJECT-TYPE
238     SYNTAX     SEQUENCE OF UpsInputEntry
239     MAX-ACCESS not-accessible
240     STATUS     current
241     DESCRIPTION
242             "A list of input table entries.  The number of entries
243             is given by the value of upsInputNumLines."
244     ::= { upsInput 3 }
245
246 upsInputEntry OBJECT-TYPE
247     SYNTAX     UpsInputEntry
248     MAX-ACCESS not-accessible
249     STATUS     current
250     DESCRIPTION
251             "An entry containing information applicable to a
252             particular input line."
253     INDEX { upsInputLineIndex }
254     ::= { upsInputTable 1 }
255
256 UpsInputEntry ::= SEQUENCE {
257     upsInputLineIndex   PositiveInteger,
258     upsInputFrequency   NonNegativeInteger,
259     upsInputVoltage     NonNegativeInteger,
260     upsInputCurrent     NonNegativeInteger,
261     upsInputTruePower   NonNegativeInteger
262 }
263
264 upsInputLineIndex OBJECT-TYPE
265     SYNTAX     PositiveInteger
266     MAX-ACCESS not-accessible
267     STATUS     current
268     DESCRIPTION
269             "The input line identifier."
270     ::= { upsInputEntry 1 }
271
272 upsInputFrequency OBJECT-TYPE
273     SYNTAX     NonNegativeInteger
274     UNITS      "0.1 Hertz"
275     MAX-ACCESS read-only
276     STATUS     current
277     DESCRIPTION
278             "The present input frequency."
279     ::= { upsInputEntry 2 }
280
281 upsInputVoltage OBJECT-TYPE
282     SYNTAX     NonNegativeInteger
283     UNITS      "RMS Volts"
284     MAX-ACCESS read-only
285     STATUS     current
286     DESCRIPTION
287             "The magnitude of the present input voltage."
288     ::= { upsInputEntry 3 }
289
290 upsInputCurrent OBJECT-TYPE
291     SYNTAX     NonNegativeInteger
292     UNITS      "0.1 RMS Amp"
293     MAX-ACCESS read-only
294     STATUS     current
295     DESCRIPTION
296             "The magnitude of the present input current."
297     ::= { upsInputEntry 4 }
298
299 upsInputTruePower OBJECT-TYPE
300     SYNTAX     NonNegativeInteger
301     UNITS      "Watts"
302     MAX-ACCESS read-only
303     STATUS     current
304     DESCRIPTION
305             "The magnitude of the present input true power."
306     ::= { upsInputEntry 5 }
307
308
309 --
310 -- The Output group.
311 --
312
313 upsOutput             OBJECT IDENTIFIER ::= { upsObjects 4 }
314
315 upsOutputSource OBJECT-TYPE
316     SYNTAX     INTEGER {
317         other(1),
318         none(2),
319         normal(3),
320         bypass(4),
321         battery(5),
322         booster(6),
323         reducer(7)
324     }
325     MAX-ACCESS read-only
326     STATUS     current
327     DESCRIPTION
328             "The present source of output power.  The enumeration
329             none(2) indicates that there is no source of output
330             power (and therefore no output power), for example,
331             the system has opened the output breaker."
332     ::= { upsOutput 1 }
333
334 upsOutputFrequency OBJECT-TYPE
335     SYNTAX     NonNegativeInteger
336     UNITS      "0.1 Hertz"
337     MAX-ACCESS read-only
338     STATUS     current
339     DESCRIPTION
340             "The present output frequency."
341     ::= { upsOutput 2 }
342
343 upsOutputNumLines OBJECT-TYPE
344     SYNTAX     NonNegativeInteger
345     MAX-ACCESS read-only
346     STATUS     current
347     DESCRIPTION
348             "The number of output lines utilized in this device.
349             This variable indicates the number of rows in the
350             output table."
351     ::= { upsOutput 3 }
352
353 upsOutputTable OBJECT-TYPE
354     SYNTAX     SEQUENCE OF UpsOutputEntry
355     MAX-ACCESS not-accessible
356     STATUS     current
357     DESCRIPTION
358             "A list of output table entries.  The number of
359             entries is given by the value of upsOutputNumLines."
360     ::= { upsOutput 4 }
361
362 upsOutputEntry OBJECT-TYPE
363     SYNTAX     UpsOutputEntry
364     MAX-ACCESS not-accessible
365     STATUS     current
366     DESCRIPTION
367             "An entry containing information applicable to a
368             particular output line."
369     INDEX { upsOutputLineIndex }
370     ::= { upsOutputTable 1 }
371
372 UpsOutputEntry ::= SEQUENCE {
373     upsOutputLineIndex   PositiveInteger,
374     upsOutputVoltage     NonNegativeInteger,
375     upsOutputCurrent     NonNegativeInteger,
376     upsOutputPower       NonNegativeInteger,
377     upsOutputPercentLoad INTEGER
378 }
379
380 upsOutputLineIndex OBJECT-TYPE
381     SYNTAX     PositiveInteger
382     MAX-ACCESS not-accessible
383     STATUS     current
384     DESCRIPTION
385             "The output line identifier."
386     ::= { upsOutputEntry 1 }
387
388 upsOutputVoltage OBJECT-TYPE
389     SYNTAX     NonNegativeInteger
390     UNITS      "RMS Volts"
391     MAX-ACCESS read-only
392     STATUS     current
393     DESCRIPTION
394             "The present output voltage."
395     ::= { upsOutputEntry 2 }
396
397 upsOutputCurrent OBJECT-TYPE
398     SYNTAX     NonNegativeInteger
399     UNITS      "0.1 RMS Amp"
400     MAX-ACCESS read-only
401     STATUS     current
402     DESCRIPTION
403             "The present output current."
404     ::= { upsOutputEntry 3 }
405
406 upsOutputPower OBJECT-TYPE
407     SYNTAX     NonNegativeInteger
408     UNITS      "Watts"
409     MAX-ACCESS read-only
410     STATUS     current
411     DESCRIPTION
412             "The present output true power."
413     ::= { upsOutputEntry 4 }
414
415 upsOutputPercentLoad OBJECT-TYPE
416     SYNTAX     INTEGER (0..200)
417     UNITS      "percent"
418     MAX-ACCESS read-only
419     STATUS     current
420     DESCRIPTION
421             "The percentage of the UPS power capacity presently
422             being used on this output line, i.e., the greater of
423             the percent load of true power capacity and the
424             percent load of VA."
425     ::= { upsOutputEntry 5 }
426
427 --
428 -- The Bypass group.
429 --
430
431 upsBypass             OBJECT IDENTIFIER ::= { upsObjects 5 }
432
433 upsBypassFrequency OBJECT-TYPE
434     SYNTAX     NonNegativeInteger
435     UNITS      "0.1 Hertz"
436     MAX-ACCESS read-only
437     STATUS     current
438     DESCRIPTION
439             "The present bypass frequency."
440     ::= { upsBypass 1 }
441
442 upsBypassNumLines OBJECT-TYPE
443     SYNTAX     NonNegativeInteger
444     MAX-ACCESS read-only
445     STATUS     current
446     DESCRIPTION
447             "The number of bypass lines utilized in this device.
448             This entry indicates the number of rows in the bypass
449             table."
450     ::= { upsBypass 2 }
451
452 upsBypassTable OBJECT-TYPE
453     SYNTAX     SEQUENCE OF UpsBypassEntry
454     MAX-ACCESS not-accessible
455     STATUS     current
456     DESCRIPTION
457             "A list of bypass table entries.  The number of
458             entries is given by the value of upsBypassNumLines."
459     ::= { upsBypass 3 }
460
461 upsBypassEntry OBJECT-TYPE
462     SYNTAX     UpsBypassEntry
463     MAX-ACCESS not-accessible
464     STATUS     current
465     DESCRIPTION
466             "An entry containing information applicable to a
467             particular bypass input."
468     INDEX { upsBypassLineIndex }
469     ::= { upsBypassTable 1 }
470
471 UpsBypassEntry ::= SEQUENCE {
472     upsBypassLineIndex  PositiveInteger,
473     upsBypassVoltage    NonNegativeInteger,
474     upsBypassCurrent    NonNegativeInteger,
475     upsBypassPower      NonNegativeInteger
476 }
477
478 upsBypassLineIndex OBJECT-TYPE
479     SYNTAX     PositiveInteger
480     MAX-ACCESS not-accessible
481     STATUS     current
482     DESCRIPTION
483             "The bypass line identifier."
484     ::= { upsBypassEntry 1 }
485
486 upsBypassVoltage OBJECT-TYPE
487     SYNTAX     NonNegativeInteger
488     UNITS      "RMS Volts"
489     MAX-ACCESS read-only
490     STATUS     current
491     DESCRIPTION
492             "The present bypass voltage."
493     ::= { upsBypassEntry 2 }
494
495 upsBypassCurrent OBJECT-TYPE
496     SYNTAX     NonNegativeInteger
497     UNITS      "0.1 RMS Amp"
498     MAX-ACCESS read-only
499     STATUS     current
500     DESCRIPTION
501             "The present bypass current."
502     ::= { upsBypassEntry 3 }
503
504 upsBypassPower OBJECT-TYPE
505     SYNTAX     NonNegativeInteger
506     UNITS      "Watts"
507     MAX-ACCESS read-only
508     STATUS     current
509     DESCRIPTION
510             "The present true power conveyed by the bypass."
511     ::= { upsBypassEntry 4 }
512
513
514 --
515 -- The Alarm group.
516 --
517
518 upsAlarm              OBJECT IDENTIFIER ::= { upsObjects 6 }
519
520 upsAlarmsPresent OBJECT-TYPE
521     SYNTAX     Gauge32
522     MAX-ACCESS read-only
523     STATUS     current
524     DESCRIPTION
525             "The present number of active alarm conditions."
526     ::= { upsAlarm 1 }
527
528 upsAlarmTable OBJECT-TYPE
529     SYNTAX     SEQUENCE OF UpsAlarmEntry
530     MAX-ACCESS not-accessible
531     STATUS     current
532     DESCRIPTION
533             "A list of alarm table entries.  The table contains
534             zero, one, or many rows at any moment, depending upon
535             the number of alarm conditions in effect.  The table
536             is initially empty at agent startup.  The agent
537             creates a row in the table each time a condition is
538             detected and deletes that row when that condition no
539             longer pertains.  The agent creates the first row with
540             upsAlarmId equal to 1, and increments the value of
541             upsAlarmId each time a new row is created, wrapping to
542             the first free value greater than or equal to 1 when
543             the maximum value of upsAlarmId would otherwise be
544             exceeded.  Consequently, after multiple operations,
545             the table may become sparse, e.g., containing entries
546             for rows 95, 100, 101, and 203 and the entries should
547             not be assumed to be in chronological order because
548             upsAlarmId might have wrapped.
549
550             Alarms are named by an AutonomousType (OBJECT
551             IDENTIFIER), upsAlarmDescr, to allow a single table to
552             reflect well known alarms plus alarms defined by a
553             particular implementation, i.e., as documented in the
554             private enterprise MIB definition for the device.  No
555             two rows will have the same value of upsAlarmDescr,
556             since alarms define conditions.  In order to meet this
557             requirement, care should be taken in the definition of
558             alarm conditions to insure that a system cannot enter
559             the same condition multiple times simultaneously.
560
561             The number of rows in the table at any given time is
562             reflected by the value of upsAlarmsPresent."
563     ::= { upsAlarm 2 }
564
565 upsAlarmEntry OBJECT-TYPE
566     SYNTAX     UpsAlarmEntry
567     MAX-ACCESS not-accessible
568     STATUS     current
569     DESCRIPTION
570             "An entry containing information applicable to a
571             particular alarm."
572     INDEX { upsAlarmId }
573     ::= { upsAlarmTable 1 }
574
575 UpsAlarmEntry ::= SEQUENCE {
576     upsAlarmId          PositiveInteger,
577     upsAlarmDescr       AutonomousType,
578     upsAlarmTime        TimeStamp
579 }
580
581 upsAlarmId OBJECT-TYPE
582     SYNTAX     PositiveInteger
583     MAX-ACCESS not-accessible
584     STATUS     current
585     DESCRIPTION
586             "A unique identifier for an alarm condition.  This
587             value must remain constant."
588     ::= { upsAlarmEntry 1 }
589
590 upsAlarmDescr OBJECT-TYPE
591     SYNTAX     AutonomousType
592     MAX-ACCESS read-only
593     STATUS     current
594     DESCRIPTION
595             "A reference to an alarm description object.  The
596             object referenced should not be accessible, but rather
597             be used to provide a unique description of the alarm
598             condition."
599     ::= { upsAlarmEntry 2 }
600
601 upsAlarmTime OBJECT-TYPE
602     SYNTAX     TimeStamp
603     MAX-ACCESS read-only
604     STATUS     current
605     DESCRIPTION
606             "The value of sysUpTime when the alarm condition was
607             detected.  If the alarm condition was detected at the
608             time of agent startup and presumably existed before
609             agent startup, the value of upsAlarmTime shall equal
610             0."
611     ::= { upsAlarmEntry 3 }
612
613
614 --
615 -- Well known alarm conditions.
616 --
617
618 upsWellKnownAlarms    OBJECT IDENTIFIER ::= { upsAlarm 3 }
619
620 upsAlarmBatteryBad OBJECT-IDENTITY
621     STATUS     current
622     DESCRIPTION
623             "One or more batteries have been determined to require
624             replacement."
625     ::= { upsWellKnownAlarms  1 }
626
627 upsAlarmOnBattery OBJECT-IDENTITY
628     STATUS     current
629     DESCRIPTION
630             "The UPS is drawing power from the batteries."
631     ::= { upsWellKnownAlarms  2 }
632
633 upsAlarmLowBattery OBJECT-IDENTITY
634     STATUS     current
635     DESCRIPTION
636             "The remaining battery run-time is less than or equal
637             to upsConfigLowBattTime."
638     ::= { upsWellKnownAlarms  3 }
639
640
641 upsAlarmDepletedBattery OBJECT-IDENTITY
642     STATUS     current
643     DESCRIPTION
644             "The UPS will be unable to sustain the present load
645             when and if the utility power is lost."
646     ::= { upsWellKnownAlarms  4 }
647
648 upsAlarmTempBad OBJECT-IDENTITY
649     STATUS     current
650     DESCRIPTION
651             "A temperature is out of tolerance."
652     ::= { upsWellKnownAlarms  5 }
653
654 upsAlarmInputBad OBJECT-IDENTITY
655     STATUS     current
656     DESCRIPTION
657             "An input condition is out of tolerance."
658     ::= { upsWellKnownAlarms  6 }
659
660 upsAlarmOutputBad OBJECT-IDENTITY
661     STATUS     current
662     DESCRIPTION
663             "An output condition (other than OutputOverload) is
664             out of tolerance."
665     ::= { upsWellKnownAlarms  7 }
666
667 upsAlarmOutputOverload OBJECT-IDENTITY
668     STATUS     current
669     DESCRIPTION
670             "The output load exceeds the UPS output capacity."
671     ::= { upsWellKnownAlarms  8 }
672
673 upsAlarmOnBypass OBJECT-IDENTITY
674     STATUS     current
675     DESCRIPTION
676             "The Bypass is presently engaged on the UPS."
677     ::= { upsWellKnownAlarms  9 }
678
679 upsAlarmBypassBad OBJECT-IDENTITY
680     STATUS     current
681     DESCRIPTION
682             "The Bypass is out of tolerance."
683     ::= { upsWellKnownAlarms 10 }
684
685 upsAlarmOutputOffAsRequested OBJECT-IDENTITY
686     STATUS     current
687     DESCRIPTION
688             "The UPS has shutdown as requested, i.e., the output
689             is off."
690     ::= { upsWellKnownAlarms 11 }
691
692 upsAlarmUpsOffAsRequested OBJECT-IDENTITY
693     STATUS     current
694     DESCRIPTION
695             "The entire UPS has shutdown as commanded."
696     ::= { upsWellKnownAlarms 12 }
697
698 upsAlarmChargerFailed OBJECT-IDENTITY
699     STATUS     current
700     DESCRIPTION
701             "An uncorrected problem has been detected within the
702             UPS charger subsystem."
703     ::= { upsWellKnownAlarms 13 }
704
705 upsAlarmUpsOutputOff OBJECT-IDENTITY
706     STATUS     current
707     DESCRIPTION
708             "The output of the UPS is in the off state."
709     ::= { upsWellKnownAlarms 14 }
710
711 upsAlarmUpsSystemOff OBJECT-IDENTITY
712     STATUS     current
713     DESCRIPTION
714             "The UPS system is in the off state."
715     ::= { upsWellKnownAlarms 15 }
716
717 upsAlarmFanFailure OBJECT-IDENTITY
718     STATUS     current
719     DESCRIPTION
720             "The failure of one or more fans in the UPS has been
721             detected."
722     ::= { upsWellKnownAlarms 16 }
723
724 upsAlarmFuseFailure OBJECT-IDENTITY
725     STATUS     current
726     DESCRIPTION
727             "The failure of one or more fuses has been detected."
728     ::= { upsWellKnownAlarms 17 }
729
730 upsAlarmGeneralFault OBJECT-IDENTITY
731     STATUS     current
732     DESCRIPTION
733             "A general fault in the UPS has been detected."
734     ::= { upsWellKnownAlarms 18 }
735
736 upsAlarmDiagnosticTestFailed OBJECT-IDENTITY
737     STATUS     current
738     DESCRIPTION
739             "The result of the last diagnostic test indicates a
740             failure."
741     ::= { upsWellKnownAlarms 19 }
742
743 upsAlarmCommunicationsLost OBJECT-IDENTITY
744     STATUS     current
745     DESCRIPTION
746             "A problem has been encountered in the communications
747             between the agent and the UPS."
748     ::= { upsWellKnownAlarms 20 }
749
750 upsAlarmAwaitingPower OBJECT-IDENTITY
751     STATUS     current
752     DESCRIPTION
753             "The UPS output is off and the UPS is awaiting the
754             return of input power."
755     ::= { upsWellKnownAlarms 21 }
756
757 upsAlarmShutdownPending OBJECT-IDENTITY
758     STATUS     current
759     DESCRIPTION
760             "A upsShutdownAfterDelay countdown is underway."
761     ::= { upsWellKnownAlarms 22 }
762
763 upsAlarmShutdownImminent OBJECT-IDENTITY
764     STATUS     current
765     DESCRIPTION
766             "The UPS will turn off power to the load in less than
767             5 seconds; this may be either a timed shutdown or a
768             low battery shutdown."
769     ::= { upsWellKnownAlarms 23 }
770
771 upsAlarmTestInProgress OBJECT-IDENTITY
772     STATUS     current
773     DESCRIPTION
774             "A test is in progress, as initiated and indicated by
775             the Test Group.  Tests initiated via other
776             implementation-specific mechanisms can indicate the
777             presence of the testing in the alarm table, if
778             desired, via a OBJECT-IDENTITY macro in the MIB
779             document specific to that implementation and are
780             outside the scope of this OBJECT-IDENTITY."
781     ::= { upsWellKnownAlarms 24 }
782
783
784 --
785 -- The Test Group
786 --
787
788 upsTest               OBJECT IDENTIFIER ::= { upsObjects 7 }
789
790 upsTestId OBJECT-TYPE
791     SYNTAX     OBJECT IDENTIFIER
792     MAX-ACCESS read-write
793     STATUS     current
794     DESCRIPTION
795             "The test is named by an OBJECT IDENTIFIER which
796             allows a standard mechanism for the initiation of
797             tests, including the well known tests identified in
798             this document as well as those introduced by a
799             particular implementation, i.e., as documented in the
800             private enterprise MIB definition for the device.
801
802             Setting this variable initiates the named test. Sets
803             to this variable require the presence of
804             upsTestSpinLock in the same SNMP message.
805
806             The set request will be rejected with an appropriate
807             error message if the requested test cannot be
808             performed, including attempts to start a test when
809             another test is already in progress.  The status of
810             the current or last test is maintained in
811             upsTestResultsSummary. Tests in progress may be
812             aborted by setting the upsTestId variable to
813             upsTestAbortTestInProgress.
814
815             Read operations return the value of the name of the
816             test in progress if a test is in progress or the name
817             of the last test performed if no test is in progress,
818             unless no test has been run, in which case the well
819             known value upsTestNoTestsInitiated is returned."
820     ::= { upsTest 1 }
821
822 -- see [6] for more information on the semantics of objects with
823 -- syntax of TestAndIncr
824
825 upsTestSpinLock OBJECT-TYPE
826     SYNTAX     TestAndIncr
827     MAX-ACCESS read-write
828     STATUS     current
829     DESCRIPTION
830             "A spin lock on the test subsystem.  The spinlock is
831             used as follows.
832
833             Before starting a test, a manager-station should make
834             sure that a test is not in progress as follows:
835
836                 try_again:
837                   get (upsTestSpinLock)
838                   while (upsTestResultsSummary == inProgress) {
839                     /* loop while a test is running for another
840             manager */
841                     short delay
842                     get (upsTestSpinLock)
843                   }
844                   lock_value = upsTestSpinLock
845                   /* no test in progress, start the test */
846                   set (upsTestSpinLock = lock_value, upsTestId =
847             requested_test)
848                   if (error_index == 1) { /* (upsTestSpinLock
849             failed) */
850                     /* if problem is not access control, then
851                         some other manager slipped in ahead of us
852             */
853                     goto try_again
854                   }
855                   if (error_index == 2) { /* (upsTestId) */
856                     /* cannot perform the test */
857                     give up
858                   }
859                   /* test started ok */
860                   /* wait for test completion by polling
861             upsTestResultsSummary */
862                   get (upsTestSpinLock, upsTestResultsSummary,
863             upsTestResultsDetail)
864                   while (upsTestResultsSummary == inProgress) {
865                     short delay
866                     get (upsTestSpinLock, upsTestResultsSummary,
867             upsTestResultsDetail)
868                   }
869                   /* when test completes, retrieve any additional
870             test results */
871                   /* if upsTestSpinLock == lock_value + 1, then
872             these are our test */
873                   /* results (as opposed to another manager's */
874                   The initial value of upsTestSpinLock at agent
875             initialization shall
876                   be 1."
877     ::= { upsTest 2 }
878
879 upsTestResultsSummary OBJECT-TYPE
880     SYNTAX     INTEGER {
881         donePass(1),
882         doneWarning(2),
883         doneError(3),
884         aborted(4),
885         inProgress(5),
886         noTestsInitiated(6)
887     }
888     MAX-ACCESS read-only
889     STATUS     current
890     DESCRIPTION
891             "The results of the current or last UPS diagnostics
892             test performed.  The values for donePass(1),
893             doneWarning(2), and doneError(3) indicate that the
894             test completed either successfully, with a warning, or
895             with an error, respectively.  The value aborted(4) is
896             returned for tests which are aborted by setting the
897             value of upsTestId to upsTestAbortTestInProgress.
898             Tests which have not yet concluded are indicated by
899             inProgress(5).  The value noTestsInitiated(6)
900             indicates that no previous test results are available,
901             such as is the case when no tests have been run since
902             the last reinitialization of the network management
903             subsystem and the system has no provision for non-
904             volatile storage of test results."
905     ::= { upsTest 3 }
906
907 upsTestResultsDetail OBJECT-TYPE
908     SYNTAX     DisplayString (SIZE (0..255))
909     MAX-ACCESS read-only
910     STATUS     current
911     DESCRIPTION
912             "Additional information about upsTestResultsSummary.
913             If no additional information available, a zero length
914             string is returned."
915     ::= { upsTest 4 }
916
917 upsTestStartTime OBJECT-TYPE
918     SYNTAX     TimeStamp
919     MAX-ACCESS read-only
920     STATUS     current
921     DESCRIPTION
922             "The value of sysUpTime at the time the test in
923             progress was initiated, or, if no test is in progress,
924             the time the previous test was initiated.  If the
925             value of upsTestResultsSummary is noTestsInitiated(6),
926             upsTestStartTime has the value 0."
927     ::= { upsTest 5 }
928
929 upsTestElapsedTime OBJECT-TYPE
930     SYNTAX     TimeInterval
931     MAX-ACCESS read-only
932     STATUS     current
933     DESCRIPTION
934             "The amount of time, in TimeTicks, since the test in
935             progress was initiated, or, if no test is in progress,
936             the previous test took to complete.  If the value of
937             upsTestResultsSummary is noTestsInitiated(6),
938             upsTestElapsedTime has the value 0."
939     ::= { upsTest 6 }
940
941 --
942 -- Well known tests.
943 --
944
945 upsWellKnownTests     OBJECT IDENTIFIER ::= { upsTest 7 }
946
947
948 upsTestNoTestsInitiated OBJECT-IDENTITY
949     STATUS     current
950     DESCRIPTION
951             "No tests have been initiated and no test is in
952             progress."
953     ::= { upsWellKnownTests  1 }
954
955 upsTestAbortTestInProgress OBJECT-IDENTITY
956     STATUS     current
957     DESCRIPTION
958             "The test in progress is to be aborted / the test in
959             progress was aborted."
960     ::= { upsWellKnownTests  2 }
961
962 upsTestGeneralSystemsTest OBJECT-IDENTITY
963     STATUS     current
964     DESCRIPTION
965             "The manufacturer's standard test of UPS device
966             systems."
967     ::= { upsWellKnownTests  3 }
968
969 upsTestQuickBatteryTest OBJECT-IDENTITY
970     STATUS     current
971     DESCRIPTION
972             "A test that is sufficient to determine if the battery
973             needs replacement."
974     ::= { upsWellKnownTests  4 }
975
976 upsTestDeepBatteryCalibration OBJECT-IDENTITY
977     STATUS     current
978     DESCRIPTION
979             "The system is placed on battery to a discharge level,
980             set by the manufacturer, sufficient to determine
981             battery replacement and battery run-time with a high
982             degree of confidence.  WARNING:  this test will leave
983             the battery in a low charge state and will require
984             time for recharging to a level sufficient to provide
985             normal battery duration for the protected load."
986     ::= { upsWellKnownTests  5 }
987
988
989 --
990 -- The Control group.
991 --
992
993 upsControl            OBJECT IDENTIFIER ::= { upsObjects 8 }
994
995 upsShutdownType OBJECT-TYPE
996     SYNTAX     INTEGER {
997         output(1),
998         system(2)
999     }
1000     MAX-ACCESS read-write
1001     STATUS     current
1002     DESCRIPTION
1003             "This object determines the nature of the action to be
1004             taken at the time when the countdown of the
1005             upsShutdownAfterDelay and upsRebootWithDuration
1006             objects reaches zero.
1007
1008             Setting this object to output(1) indicates that
1009             shutdown requests should cause only the output of the
1010             UPS to turn off.  Setting this object to system(2)
1011             indicates that shutdown requests will cause the entire
1012             UPS system to turn off."
1013     ::= { upsControl 1 }
1014
1015 upsShutdownAfterDelay OBJECT-TYPE
1016     SYNTAX     INTEGER (-1..2147483647)
1017     UNITS      "seconds"
1018     MAX-ACCESS read-write
1019     STATUS     current
1020     DESCRIPTION
1021             "Setting this object will shutdown (i.e., turn off)
1022             either the UPS output or the UPS system (as determined
1023             by the value of upsShutdownType at the time of
1024             shutdown) after the indicated number of seconds, or
1025             less if the UPS batteries become depleted. Setting
1026             this object to 0 will cause the shutdown to occur
1027             immediately.  Setting this object to -1 will abort the
1028             countdown.  If the system is already in the desired
1029             state at the time the countdown reaches 0, then
1030             nothing will happen.  That is, there is no additional
1031             action at that time if upsShutdownType = system and
1032             the system is already off.  Similarly, there is no
1033             additional action at that time if upsShutdownType =
1034             output and the output is already off.  When read,
1035             upsShutdownAfterDelay will return the number of
1036             seconds remaining until shutdown, or -1 if no shutdown
1037             countdown is in effect.  On some systems, if the agent
1038             is restarted while a shutdown countdown is in effect,
1039             the countdown may be aborted.  Sets to this object
1040             override any upsShutdownAfterDelay already in effect."
1041     ::= { upsControl 2 }
1042
1043 upsStartupAfterDelay OBJECT-TYPE
1044     SYNTAX     INTEGER (-1..2147483647)
1045     UNITS      "seconds"
1046     MAX-ACCESS read-write
1047     STATUS     current
1048     DESCRIPTION
1049             "Setting this object will start the output after the
1050             indicated number of seconds, including starting the
1051             UPS, if necessary.  Setting this object to 0 will
1052             cause the startup to occur immediately.  Setting this
1053             object to -1 will abort the countdown.  If the output
1054             is already on at the time the countdown reaches 0,
1055             then nothing will happen.  Sets to this object
1056             override the effect of any upsStartupAfterDelay
1057             countdown or upsRebootWithDuration countdown in
1058             progress.  When read, upsStartupAfterDelay will return
1059             the number of seconds until startup, or -1 if no
1060             startup countdown is in effect.  If the countdown
1061             expires during a utility failure, the startup shall
1062             not occur until the utility power is restored.  On
1063             some systems, if the agent is restarted while a
1064             startup countdown is in effect, the countdown is
1065             aborted."
1066     ::= { upsControl 3 }
1067
1068 upsRebootWithDuration OBJECT-TYPE
1069     SYNTAX     INTEGER (-1..300)
1070     UNITS      "seconds"
1071     MAX-ACCESS read-write
1072     STATUS     current
1073     DESCRIPTION
1074             "Setting this object will immediately shutdown (i.e.,
1075             turn off) either the UPS output or the UPS system (as
1076             determined by the value of upsShutdownType at the time
1077             of shutdown) for a period equal to the indicated
1078             number of seconds, after which time the output will be
1079             started, including starting the UPS, if necessary.  If
1080             the number of seconds required to perform the request
1081             is greater than the requested duration, then the
1082             requested shutdown and startup cycle shall be
1083             performed in the minimum time possible, but in no case
1084             shall this require more than the requested duration
1085             plus 60 seconds.  When read, upsRebootWithDuration
1086             shall return the number of seconds remaining in the
1087             countdown, or -1 if no countdown is in progress.  If
1088             the startup should occur during a utility failure, the
1089             startup shall not occur until the utility power is
1090             restored."
1091     ::= { upsControl 4 }
1092
1093 upsAutoRestart OBJECT-TYPE
1094     SYNTAX     INTEGER {
1095         on(1),
1096         off(2)
1097     }
1098     MAX-ACCESS read-write
1099     STATUS     current
1100     DESCRIPTION
1101             "Setting this object to 'on' will cause the UPS system
1102             to restart after a shutdown if the shutdown occurred
1103             during a power loss as a result of either a
1104             upsShutdownAfterDelay or an internal battery depleted
1105             condition.  Setting this object to 'off' will prevent
1106             the UPS system from restarting after a shutdown until
1107             an operator manually or remotely explicitly restarts
1108             it.  If the UPS is in a startup or reboot countdown,
1109             then the UPS will not restart until that delay has
1110             been satisfied."
1111     ::= { upsControl 5 }
1112
1113
1114 --
1115 -- The Configuration group.
1116 --
1117
1118 upsConfig             OBJECT IDENTIFIER ::= { upsObjects 9 }
1119
1120 upsConfigInputVoltage OBJECT-TYPE
1121     SYNTAX     NonNegativeInteger
1122     UNITS      "RMS Volts"
1123     MAX-ACCESS read-write
1124     STATUS     current
1125     DESCRIPTION
1126             "The magnitude of the nominal input voltage.  On those
1127             systems which support read-write access to this
1128             object, if there is an attempt to set this variable to
1129             a value that is not supported, the request must be
1130             rejected and the agent shall respond with an
1131             appropriate error message, i.e., badValue for SNMPv1,
1132             or inconsistentValue for SNMPv2."
1133     ::= { upsConfig 1 }
1134
1135 upsConfigInputFreq OBJECT-TYPE
1136     SYNTAX     NonNegativeInteger
1137     UNITS      "0.1 Hertz"
1138     MAX-ACCESS read-write
1139     STATUS     current
1140     DESCRIPTION
1141             "The nominal input frequency.  On those systems which
1142             support read-write access to this object, if there is
1143             an attempt to set this variable to a value that is not
1144             supported, the request must be rejected and the agent
1145             shall respond with an appropriate error message, i.e.,
1146             badValue for SNMPv1, or inconsistentValue for SNMPv2."
1147     ::= { upsConfig 2 }
1148
1149 upsConfigOutputVoltage OBJECT-TYPE
1150     SYNTAX     NonNegativeInteger
1151     UNITS      "RMS Volts"
1152     MAX-ACCESS read-write
1153     STATUS     current
1154     DESCRIPTION
1155             "The magnitude of the nominal output voltage.  On
1156             those systems which support read-write access to this
1157             object, if there is an attempt to set this variable to
1158             a value that is not supported, the request must be
1159             rejected and the agent shall respond with an
1160             appropriate error message, i.e., badValue for SNMPv1,
1161             or inconsistentValue for SNMPv2."
1162     ::= { upsConfig 3 }
1163
1164 upsConfigOutputFreq OBJECT-TYPE
1165     SYNTAX     NonNegativeInteger
1166     UNITS      "0.1 Hertz"
1167     MAX-ACCESS read-write
1168     STATUS     current
1169     DESCRIPTION
1170             "The nominal output frequency.  On those systems which
1171             support read-write access to this object, if there is
1172             an attempt to set this variable to a value that is not
1173             supported, the request must be rejected and the agent
1174             shall respond with an appropriate error message, i.e.,
1175             badValue for SNMPv1, or inconsistentValue for SNMPv2."
1176     ::= { upsConfig 4 }
1177
1178 upsConfigOutputVA OBJECT-TYPE
1179     SYNTAX     NonNegativeInteger
1180     UNITS      "Volt-Amps"
1181     MAX-ACCESS read-only
1182     STATUS     current
1183     DESCRIPTION
1184             "The magnitude of the nominal Volt-Amp rating."
1185     ::= { upsConfig 5 }
1186
1187 upsConfigOutputPower OBJECT-TYPE
1188     SYNTAX     NonNegativeInteger
1189     UNITS      "Watts"
1190     MAX-ACCESS read-only
1191     STATUS     current
1192     DESCRIPTION
1193             "The magnitude of the nominal true power rating."
1194     ::= { upsConfig 6 }
1195
1196 upsConfigLowBattTime OBJECT-TYPE
1197     SYNTAX     NonNegativeInteger
1198     UNITS      "minutes"
1199     MAX-ACCESS read-write
1200     STATUS     current
1201     DESCRIPTION
1202             "The value of upsEstimatedMinutesRemaining at which a
1203             lowBattery condition is declared.  For agents which
1204             support only discrete (discontinuous) values, then the
1205             agent shall round up to the next supported value.  If
1206             the requested value is larger than the largest
1207             supported value, then the largest supported value
1208             shall be selected."
1209     ::= { upsConfig 7 }
1210
1211 upsConfigAudibleStatus OBJECT-TYPE
1212     SYNTAX     INTEGER {
1213         disabled(1),
1214         enabled(2),
1215         muted(3)
1216     }
1217     MAX-ACCESS read-write
1218     STATUS     current
1219     DESCRIPTION
1220             "The requested state of the audible alarm.  When in
1221             the disabled state, the audible alarm should never
1222             sound.  The enabled state is self-describing.  Setting
1223             this object to muted(3) when the audible alarm is
1224             sounding shall temporarily silence the alarm.  It will
1225             remain muted until it would normally stop sounding and
1226             the value returned for read operations during this
1227             period shall equal muted(3).  At the end of this
1228             period, the value shall revert to enabled(2).  Writes
1229             of the value muted(3) when the audible alarm is not
1230             sounding shall be accepted but otherwise shall have no
1231             effect."
1232     ::= { upsConfig 8 }
1233
1234 upsConfigLowVoltageTransferPoint OBJECT-TYPE
1235     SYNTAX     NonNegativeInteger
1236     UNITS      "RMS Volts"
1237     MAX-ACCESS read-write
1238     STATUS     current
1239     DESCRIPTION
1240             "The minimum input line voltage allowed before the UPS
1241             system transfers to battery backup."
1242     ::= { upsConfig 9 }
1243
1244 upsConfigHighVoltageTransferPoint OBJECT-TYPE
1245     SYNTAX     NonNegativeInteger
1246     UNITS      "RMS Volts"
1247     MAX-ACCESS read-write
1248     STATUS     current
1249     DESCRIPTION
1250             "The maximum line voltage allowed before the UPS
1251             system transfers to battery backup."
1252     ::= { upsConfig 10 }
1253
1254
1255 --
1256 -- notifications, i.e., traps
1257 --
1258 upsTraps              OBJECT IDENTIFIER ::= { upsMIB 2 }
1259
1260 -- This section defines the well-known notifications sent by
1261 -- UPS agents.
1262 -- Care must be taken to insure that no particular notification
1263 -- is sent to a single receiving entity more often than once
1264 -- every five seconds.
1265
1266 upsTrapOnBattery NOTIFICATION-TYPE
1267     OBJECTS { upsEstimatedMinutesRemaining, upsSecondsOnBattery,
1268               upsConfigLowBattTime }
1269     STATUS  current
1270     DESCRIPTION
1271             "The UPS is operating on battery power.  This trap is
1272             persistent and is resent at one minute intervals until
1273             the UPS either turns off or is no longer running on
1274             battery."
1275   ::= { upsTraps 1 }
1276
1277 upsTrapTestCompleted NOTIFICATION-TYPE
1278     OBJECTS { upsTestId, upsTestSpinLock,
1279               upsTestResultsSummary, upsTestResultsDetail,
1280               upsTestStartTime, upsTestElapsedTime }
1281     STATUS  current
1282     DESCRIPTION
1283             "This trap is sent upon completion of a UPS diagnostic
1284             test."
1285   ::= { upsTraps 2 }
1286
1287 upsTrapAlarmEntryAdded NOTIFICATION-TYPE
1288     OBJECTS { upsAlarmId, upsAlarmDescr }
1289     STATUS  current
1290     DESCRIPTION
1291             "This trap is sent each time an alarm is inserted into
1292             to the alarm table.  It is sent on the insertion of
1293             all alarms except for upsAlarmOnBattery and
1294             upsAlarmTestInProgress."
1295   ::= { upsTraps 3 }
1296
1297 upsTrapAlarmEntryRemoved NOTIFICATION-TYPE
1298     OBJECTS { upsAlarmId, upsAlarmDescr }
1299     STATUS  current
1300     DESCRIPTION
1301             "This trap is sent each time an alarm is removed from
1302             the alarm table.  It is sent on the removal of all
1303             alarms except for upsAlarmTestInProgress."
1304   ::= { upsTraps 4 }
1305
1306
1307 --
1308 -- conformance information
1309 --
1310 upsConformance        OBJECT IDENTIFIER ::= { upsMIB 3 }
1311
1312 upsCompliances        OBJECT IDENTIFIER ::= { upsConformance 1 }
1313
1314
1315 --
1316 -- compliance statements
1317 --
1318
1319 upsSubsetCompliance MODULE-COMPLIANCE
1320     STATUS     current
1321     DESCRIPTION
1322
1323             "The compliance statement for UPSs that only support
1324             the two-contact communication protocol."
1325     MODULE -- this module
1326         MANDATORY-GROUPS  { upsSubsetIdentGroup,
1327                   upsSubsetBatteryGroup, upsSubsetInputGroup,
1328                   upsSubsetOutputGroup, upsSubsetAlarmGroup,
1329                   upsSubsetControlGroup, upsSubsetConfigGroup }
1330
1331     OBJECT     upsBatteryStatus
1332     SYNTAX     INTEGER {
1333         batteryNormal(2),
1334         batteryLow(3)
1335     }
1336     DESCRIPTION
1337             "Support of the values unknown(1) and
1338             batteryDepleted(4) is not required."
1339
1340     OBJECT     upsAlarmDescr
1341     DESCRIPTION
1342             "Support of all `well known' alarm types is not
1343             required.  The well known alarm types which must be
1344             supported are: upsAlarmOnBattery, upsAlarmLowBattery,
1345             upsAlarmInputBad, upsAlarmUpsOutputOff,
1346             upsAlarmUpsSystemOff, and upsAlarmTestInProgress."
1347
1348     OBJECT     upsOutputSource
1349     SYNTAX     INTEGER {
1350         normal(2),
1351         battery(4)
1352     }
1353     DESCRIPTION
1354             "Support of the values other(1), none(2), bypass(4),
1355             booster(6) and reducer(7) is not required."
1356
1357     OBJECT     upsShutdownType
1358     MIN-ACCESS read-only
1359     DESCRIPTION
1360             "Read-write access is not required, i.e., compliant
1361             systems need not support more than one shutdown type."
1362
1363     OBJECT     upsAutoRestart
1364     MIN-ACCESS read-only
1365     DESCRIPTION
1366             "Read-write access is not required, i.e., compliant
1367             systems need not support more than one restart type."
1368
1369     OBJECT     upsConfigInputVoltage
1370     MIN-ACCESS read-only
1371     DESCRIPTION
1372             "Read-write access is not required."
1373
1374     OBJECT     upsConfigInputFreq
1375     MIN-ACCESS read-only
1376     DESCRIPTION
1377             "Read-write access is not required."
1378
1379     OBJECT     upsConfigOutputVoltage
1380     MIN-ACCESS read-only
1381     DESCRIPTION
1382             "Read-write access is not required."
1383
1384     OBJECT     upsConfigOutputFreq
1385     MIN-ACCESS read-only
1386     DESCRIPTION
1387             "Read-write access is not required."
1388     ::= { upsCompliances 1 }
1389
1390 upsBasicCompliance MODULE-COMPLIANCE
1391     STATUS     current
1392     DESCRIPTION
1393
1394             "The compliance statement for UPSs that support
1395             full-featured functions, such as control."
1396     MODULE -- this module
1397         MANDATORY-GROUPS { upsBasicIdentGroup,
1398                   upsBasicBatteryGroup, upsBasicInputGroup,
1399                   upsBasicOutputGroup, upsBasicAlarmGroup,
1400                   upsBasicTestGroup, upsBasicControlGroup,
1401                   upsBasicConfigGroup }
1402
1403
1404     OBJECT     upsAlarmDescr
1405     DESCRIPTION
1406             "Support of all `well known' alarm types is not
1407             required.  The well known alarm types which must be
1408             supported are: upsAlarmOnBattery, upsAlarmLowBattery,
1409             upsAlarmDepletedBattery, upsAlarmTempBad,
1410             upsAlarmInputBad, upsAlarmOutputOverload,
1411             upsAlarmOnBypass, upsAlarmBypassBad,
1412             upsAlarmOutputOffAsRequested,
1413             upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff,
1414             upsAlarmUpsSystemOff, upsAlarmGeneralFault,
1415             upsAlarmDiagnosticTestFailed,
1416             upsAlarmCommunicationsLost, upsAlarmShutdownPending,
1417             and upsAlarmTestInProgress."
1418
1419     OBJECT     upsTestId
1420     DESCRIPTION
1421             "Support of all `well known' test types is not
1422             required.  If no tests are supported, then the only
1423             well known test type which must be supported is
1424             upsTestNoTestsInitiated."
1425
1426     OBJECT     upsOutputSource
1427     SYNTAX     INTEGER {
1428         normal(2),
1429         battery(4)
1430     }
1431     DESCRIPTION
1432             "Support of the values other(1), none(2), bypass(4),
1433             booster(6) and reducer(7) is not required."
1434
1435         GROUP upsBasicBypassGroup
1436         DESCRIPTION
1437             "The upsBasicBypassGroup is only required for UPSs
1438             that have a Bypass present."
1439     OBJECT     upsShutdownType
1440     MIN-ACCESS read-only
1441     DESCRIPTION
1442             "Read-write access is not required, i.e., compliant
1443             systems need not support more than one shutdown type."
1444
1445     OBJECT     upsAutoRestart
1446     MIN-ACCESS read-only
1447     DESCRIPTION
1448             "Read-write access is not required, i.e., compliant
1449             systems need not support more than one restart type."
1450
1451     OBJECT     upsConfigInputVoltage
1452     MIN-ACCESS read-only
1453     DESCRIPTION
1454             "Read-write access is not required."
1455
1456     OBJECT     upsConfigInputFreq
1457     MIN-ACCESS read-only
1458     DESCRIPTION
1459             "Read-write access is not required."
1460
1461     OBJECT     upsConfigOutputVoltage
1462     MIN-ACCESS read-only
1463     DESCRIPTION
1464             "Read-write access is not required."
1465
1466     OBJECT     upsConfigOutputFreq
1467     MIN-ACCESS read-only
1468     DESCRIPTION
1469             "Read-write access is not required."
1470
1471     OBJECT     upsConfigLowBattTime
1472     DESCRIPTION
1473             "Implementation of all possible values may be onerous
1474             for some systems.  Consequently, not all possible
1475             values must be supported.  However, at least two
1476             different manufacturer-selected values must be
1477             supported."
1478
1479     ::= { upsCompliances 2 }
1480
1481 upsFullCompliance MODULE-COMPLIANCE
1482     STATUS     current
1483     DESCRIPTION
1484             "The compliance statement for UPSs that support
1485             advanced full-featured functions."
1486     MODULE -- this module
1487         MANDATORY-GROUPS { upsFullIdentGroup, upsFullBatteryGroup,
1488                   upsFullInputGroup, upsFullOutputGroup,
1489                   upsFullAlarmGroup, upsFullTestGroup,
1490                   upsFullControlGroup, upsFullConfigGroup }
1491
1492     OBJECT     upsAlarmDescr
1493     DESCRIPTION
1494             "Support of all `well known' alarm types is not
1495             required.  The well known alarm types which must be
1496             supported are: upsAlarmBatteryBad, upsAlarmOnBattery,
1497             upsAlarmLowBattery, upsAlarmDepletedBattery,
1498             upsAlarmTempBad, upsAlarmInputBad, upsAlarmOnBypass,
1499             upsAlarmBypassBad, upsAlarmOutputOffAsRequested,
1500             upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff,
1501             upsAlarmUpsSystemOff, upsAlarmGeneralFault,
1502             upsAlarmDiagnosticTestFailed,
1503             upsAlarmCommunicationsLost, upsAlarmShutdownPending,
1504             and upsAlarmTestInProgress."
1505
1506     OBJECT     upsTestId
1507     DESCRIPTION
1508             "Support of all `well known' test types is not
1509             required.  The well known test types which must be
1510             supported are: upsTestNoTestsInitiated,
1511             upsTestGeneralSystemsTest, and
1512             upsTestQuickBatteryTest."
1513
1514     OBJECT     upsOutputSource
1515     SYNTAX     INTEGER {
1516         normal(2),
1517         battery(4)
1518     }
1519     DESCRIPTION
1520             "Support of the values other(1), none(2), bypass(4),
1521             booster(6) and reducer(7) is not required."
1522
1523         GROUP upsFullBypassGroup
1524         DESCRIPTION
1525             "The upsFullBypassGroup is only required for UPSs that
1526             have a Bypass present."
1527
1528     OBJECT     upsShutdownType
1529     MIN-ACCESS read-only
1530     DESCRIPTION
1531             "Read-write access is not required, i.e., compliant
1532             systems need not support more than one shutdown type."
1533
1534     OBJECT     upsAutoRestart
1535     MIN-ACCESS read-only
1536     DESCRIPTION
1537             "Read-write access is not required, i.e., compliant
1538             systems need not support more than one restart type."
1539
1540     OBJECT     upsConfigInputVoltage
1541     MIN-ACCESS read-only
1542     DESCRIPTION
1543             "Read-write access is not required."
1544
1545     OBJECT     upsConfigInputFreq
1546     MIN-ACCESS read-only
1547     DESCRIPTION
1548             "Read-write access is not required."
1549
1550     OBJECT     upsConfigOutputVoltage
1551     MIN-ACCESS read-only
1552     DESCRIPTION
1553             "Read-write access is not required."
1554
1555     OBJECT     upsConfigOutputFreq
1556     MIN-ACCESS read-only
1557     DESCRIPTION
1558             "Read-write access is not required."
1559
1560     OBJECT     upsConfigLowBattTime
1561     DESCRIPTION
1562             "Implementation of all possible values may be onerous
1563             for some systems.  Consequently, not all possible
1564             values must be supported.  However, at least two
1565             different manufacturer-selected values must be
1566             supported."
1567
1568     ::= { upsCompliances 3 }
1569
1570
1571 --
1572 -- units of conformance
1573 --
1574
1575 -- summary at a glance:
1576
1577 --                                      subset  basic   adv
1578 --upsIdentManufacturer                  x       x       x
1579 --upsIdentModel                         x       x       x
1580
1581 --upsIdentUPSSoftwareVersion                    x       x
1582 --upsIdentAgentSoftwareVersion          x       x       x
1583 --upsIdentName                          x       x       x
1584 --upsIdentAttachedDevices               x               x
1585 --
1586 --upsBatteryStatus                      x       x       x  notes
1587 --upsSecondsOnBattery                   x       x       x
1588 --upsEstimatedMinutesRemaining                          x
1589 --upsEstimatedChargeRemaining                           x
1590 --upsBatteryVoltage
1591 --upsBatteryCurrent
1592 --upsBatteryTemperature
1593 --
1594 --upsInputLineBads                      x       x       x
1595 --upsInputNumLines                              x       x
1596 --upsInputFrequency                             x       x
1597 --upsInputVoltage                               x       x
1598 --upsInputCurrent
1599 --upsInputTruePower
1600 --
1601 --upsOutputSource                       x       x       x  notes
1602 --upsOutputFrequency                            x       x
1603 --upsOutputNumLines                             x       x
1604 --upsOutputVoltage                              x       x
1605 --upsOutputCurrent                                      x
1606 --upsOutputPower                                        x
1607 --upsOutputPercentLoad                                  x
1608 --
1609 --
1610 --upsBypassFrequency                            x       x  notes
1611 --upsBypassNumLines                             x       x
1612 --upsBypassVoltage                              x       x
1613 --upsBypassCurrent
1614 --upsBypassPower
1615 --
1616 --
1617 --upsAlarmsPresent                      x       x       x
1618 --upsAlarmDescr                         x       x       x  notes
1619 --upsAlarmTime                          x       x       x
1620 --
1621 --upsTestId                                     x       x  notes
1622 --upsTestSpinLock                               x       x
1623 --upsTestResultsSummary                         x       x
1624 --upsTestResultsDetail                          x       x
1625 --upsTestStartTime                              x       x
1626 --upsTestElapsedTime                            x       x
1627 --
1628 --upsShutdownType                       x       x       x  notes
1629
1630 --upsShutdownAfterDelay                 x       x       x
1631 --upsStartupAfterDelay                          x       x
1632 --upsRebootWithDuration                         x       x
1633 --upsAutoRestart                        x       x       x  notes
1634 --
1635 --upsConfigInputVoltage                 x       x       x  notes
1636 --upsConfigInputFreq                    x       x       x  notes
1637 --upsConfigOutputVoltage                x       x       x  notes
1638 --upsConfigOutputFreq                   x       x       x  notes
1639 --upsConfigOutputVA                     x       x       x
1640 --upsConfigOutputPower                  x       x       x
1641 --upsConfigLowBattTime                          x       x  notes
1642 --upsConfigAudibleStatus                        x       x
1643 --upsConfigLowVoltageTransferPoint
1644 --upsConfigHighVoltageTransferPoint
1645
1646
1647 -- units of conformance
1648 upsGroups             OBJECT IDENTIFIER ::= { upsConformance 2 }
1649
1650 upsSubsetGroups       OBJECT IDENTIFIER ::= { upsGroups 1 }
1651
1652 upsSubsetIdentGroup OBJECT-GROUP
1653     OBJECTS { upsIdentManufacturer, upsIdentModel,
1654               upsIdentAgentSoftwareVersion, upsIdentName,
1655               upsIdentAttachedDevices }
1656     STATUS  current
1657     DESCRIPTION
1658             "The upsSubsetIdentGroup defines objects which are
1659             common across all UPSs which meet subset compliance.
1660             Most devices which conform to the upsSubsetIdentGroup
1661             will provide access to these objects via a proxy
1662             agent.  If the proxy agent is compatible with multiple
1663             UPS types, configuration of the proxy agent will
1664             require specifying some of these values, either
1665             individually, or as a group (perhaps through a table
1666             lookup mechanism based on the UPS model number)."
1667     ::= { upsSubsetGroups 1 }
1668
1669 upsSubsetBatteryGroup OBJECT-GROUP
1670     OBJECTS { upsBatteryStatus, upsSecondsOnBattery }
1671     STATUS  current
1672     DESCRIPTION
1673             "The upsSubsetBatteryGroup defines the objects that
1674             are common to battery groups of two-contact UPSs."
1675     ::= { upsSubsetGroups 2 }
1676
1677 upsSubsetInputGroup OBJECT-GROUP
1678     OBJECTS { upsInputLineBads }
1679     STATUS  current
1680     DESCRIPTION
1681             "The upsSubsetInputGroup defines the objects that are
1682             common to the Input groups of two-contact UPSs."
1683     ::= { upsSubsetGroups 3 }
1684
1685 upsSubsetOutputGroup OBJECT-GROUP
1686     OBJECTS { upsOutputSource }
1687     STATUS  current
1688     DESCRIPTION
1689             "The upsSubsetOutputGroup defines the objects that are
1690             common to the Output groups of two-contact UPSs."
1691     ::= { upsSubsetGroups 4 }
1692
1693
1694 -- { upsSubsetGroups 5 } is reserved for
1695 -- future use (upsSubsetBypassGroup)
1696
1697 upsSubsetAlarmGroup OBJECT-GROUP
1698     OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime }
1699     STATUS  current
1700     DESCRIPTION
1701             "The upsSubsetAlarmGroup defines the objects that are
1702             common to the Alarm groups of two-contact UPSs."
1703     ::= { upsSubsetGroups 6 }
1704
1705 -- { upsSubsetGroups 7 } is reserved for
1706 -- future use (upsSubsetTestGroup)
1707
1708 upsSubsetControlGroup OBJECT-GROUP
1709     OBJECTS { upsShutdownType, upsShutdownAfterDelay,
1710                   upsAutoRestart }
1711     STATUS  current
1712     DESCRIPTION
1713             "The upsSubsetControlGroup defines the objects that
1714             are common to the Control groups of two-contact UPSs."
1715     ::= { upsSubsetGroups 8 }
1716
1717 upsSubsetConfigGroup OBJECT-GROUP
1718     OBJECTS { upsConfigInputVoltage, upsConfigInputFreq,
1719               upsConfigOutputVoltage, upsConfigOutputFreq,
1720               upsConfigOutputVA, upsConfigOutputPower }
1721     STATUS  current
1722     DESCRIPTION
1723             "The upsSubsetConfigGroup defines the objects that are
1724             common to the Config groups of two-contact UPSs."
1725     ::= { upsSubsetGroups 9 }
1726 upsBasicGroups        OBJECT IDENTIFIER ::= { upsGroups 2 }
1727
1728 upsBasicIdentGroup OBJECT-GROUP
1729     OBJECTS { upsIdentManufacturer, upsIdentModel,
1730               upsIdentUPSSoftwareVersion,
1731               upsIdentAgentSoftwareVersion, upsIdentName }
1732     STATUS  current
1733     DESCRIPTION
1734             "The upsBasicIdentGroup defines objects which are
1735             common to the Ident group of compliant UPSs which
1736             support basic functions."
1737     ::= { upsBasicGroups 1 }
1738
1739 upsBasicBatteryGroup OBJECT-GROUP
1740     OBJECTS { upsBatteryStatus, upsSecondsOnBattery }
1741     STATUS  current
1742     DESCRIPTION
1743             "The upsBasicBatteryGroup defines the objects that are
1744             common to the battery groups of compliant UPSs which
1745             support basic functions."
1746     ::= { upsBasicGroups 2 }
1747
1748 upsBasicInputGroup OBJECT-GROUP
1749     OBJECTS { upsInputLineBads, upsInputNumLines,
1750               upsInputFrequency, upsInputVoltage }
1751     STATUS  current
1752     DESCRIPTION
1753             "The upsBasicInputGroup defines the objects that are
1754             common to the Input groups of compliant UPSs which
1755             support basic functions."
1756     ::= { upsBasicGroups 3 }
1757
1758 upsBasicOutputGroup OBJECT-GROUP
1759     OBJECTS { upsOutputSource, upsOutputFrequency,
1760               upsOutputNumLines, upsOutputVoltage }
1761     STATUS  current
1762     DESCRIPTION
1763             "The upsBasicOutputGroup defines the objects that are
1764             common to the Output groups of compliant UPSs which
1765             support basic functions."
1766     ::= { upsBasicGroups 4 }
1767
1768 upsBasicBypassGroup OBJECT-GROUP
1769     OBJECTS { upsBypassFrequency, upsBypassNumLines,
1770               upsBypassVoltage }
1771     STATUS  current
1772     DESCRIPTION
1773             "The upsBasicBypassGroup defines the objects that are
1774             common to the Bypass groups of compliant UPSs which
1775             support basic functions."
1776     ::= { upsBasicGroups 5 }
1777
1778 upsBasicAlarmGroup OBJECT-GROUP
1779     OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime }
1780     STATUS  current
1781     DESCRIPTION
1782
1783             "The upsBasicAlarmGroup defines the objects that are
1784             common to the Alarm  groups of compliant UPSs which
1785             support basic functions."
1786     ::= { upsBasicGroups 6 }
1787
1788 upsBasicTestGroup OBJECT-GROUP
1789     OBJECTS { upsTestId, upsTestSpinLock,
1790               upsTestResultsSummary, upsTestResultsDetail,
1791               upsTestStartTime, upsTestElapsedTime }
1792     STATUS  current
1793     DESCRIPTION
1794             "The upsBasicTestGroup defines the objects that are
1795             common to the Test groups of compliant UPSs which
1796             support basic functions."
1797     ::= { upsBasicGroups 7 }
1798
1799 upsBasicControlGroup OBJECT-GROUP
1800     OBJECTS { upsShutdownType, upsShutdownAfterDelay,
1801               upsStartupAfterDelay, upsRebootWithDuration,
1802               upsAutoRestart }
1803     STATUS  current
1804     DESCRIPTION
1805             "The upsBasicControlGroup defines the objects that are
1806             common to the Control groups of compliant UPSs which
1807             support basic functions."
1808     ::= { upsBasicGroups 8 }
1809
1810 upsBasicConfigGroup OBJECT-GROUP
1811     OBJECTS { upsConfigInputVoltage, upsConfigInputFreq,
1812               upsConfigOutputVoltage, upsConfigOutputFreq,
1813               upsConfigOutputVA, upsConfigOutputPower,
1814               upsConfigLowBattTime, upsConfigAudibleStatus }
1815     STATUS  current
1816     DESCRIPTION
1817             "The upsBasicConfigGroup defines the objects that are
1818             common to the Config groups of UPSs which support
1819             basic functions."
1820     ::= { upsBasicGroups 9 }
1821 upsFullGroups         OBJECT IDENTIFIER ::= { upsGroups 3 }
1822
1823 upsFullIdentGroup OBJECT-GROUP
1824     OBJECTS { upsIdentManufacturer, upsIdentModel,
1825               upsIdentUPSSoftwareVersion,
1826               upsIdentAgentSoftwareVersion, upsIdentName,
1827               upsIdentAttachedDevices }
1828     STATUS  current
1829     DESCRIPTION
1830             "The upsFullIdentGroup defines objects which are
1831             common to the Ident group of fully compliant UPSs."
1832     ::= { upsFullGroups 1 }
1833
1834 upsFullBatteryGroup OBJECT-GROUP
1835     OBJECTS { upsBatteryStatus, upsSecondsOnBattery,
1836               upsEstimatedMinutesRemaining,
1837               upsEstimatedChargeRemaining }
1838     STATUS  current
1839     DESCRIPTION
1840             "The upsFullBatteryGroup defines the objects that are
1841             common to the battery groups of fully compliant UPSs."
1842     ::= { upsFullGroups 2 }
1843
1844 upsFullInputGroup OBJECT-GROUP
1845     OBJECTS { upsInputLineBads, upsInputNumLines,
1846               upsInputFrequency, upsInputVoltage }
1847     STATUS  current
1848     DESCRIPTION
1849             "The upsFullInputGroup defines the objects that are
1850             common to the Input groups of fully compliant UPSs."
1851     ::= { upsFullGroups 3 }
1852
1853 upsFullOutputGroup OBJECT-GROUP
1854     OBJECTS { upsOutputSource, upsOutputFrequency,
1855               upsOutputNumLines, upsOutputVoltage,
1856               upsOutputCurrent, upsOutputPower,
1857               upsOutputPercentLoad }
1858     STATUS  current
1859     DESCRIPTION
1860             "The upsFullOutputGroup defines the objects that are
1861             common to the Output groups of fully compliant UPSs."
1862     ::= { upsFullGroups 4 }
1863
1864 upsFullBypassGroup OBJECT-GROUP
1865     OBJECTS { upsBypassFrequency, upsBypassNumLines,
1866               upsBypassVoltage }
1867     STATUS  current
1868     DESCRIPTION
1869             "The upsFullBypassGroup defines the objects that are
1870             common to the Bypass groups of fully compliant UPSs."
1871     ::= { upsFullGroups 5 }
1872
1873 upsFullAlarmGroup OBJECT-GROUP
1874     OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime }
1875     STATUS  current
1876     DESCRIPTION
1877
1878             "The upsFullAlarmGroup defines the objects that are
1879             common to the Alarm  groups of fully compliant UPSs."
1880     ::= { upsFullGroups 6 }
1881
1882 upsFullTestGroup OBJECT-GROUP
1883     OBJECTS { upsTestId, upsTestSpinLock,
1884               upsTestResultsSummary, upsTestResultsDetail,
1885               upsTestStartTime, upsTestElapsedTime }
1886     STATUS  current
1887     DESCRIPTION
1888             "The upsFullTestGroup defines the objects that are
1889             common to the Test groups of fully compliant UPSs."
1890     ::= { upsFullGroups 7 }
1891
1892 upsFullControlGroup OBJECT-GROUP
1893     OBJECTS { upsShutdownType, upsShutdownAfterDelay,
1894               upsStartupAfterDelay, upsRebootWithDuration,
1895               upsAutoRestart }
1896     STATUS  current
1897     DESCRIPTION
1898 "The upsFullControlGroup defines the objects that are
1899 common to the Control groups of fully compliant UPSs."
1900     ::= { upsFullGroups 8 }
1901
1902 upsFullConfigGroup OBJECT-GROUP
1903     OBJECTS { upsConfigInputVoltage, upsConfigInputFreq,
1904               upsConfigOutputVoltage, upsConfigOutputFreq,
1905               upsConfigOutputVA, upsConfigOutputPower,
1906               upsConfigLowBattTime, upsConfigAudibleStatus }
1907     STATUS  current
1908     DESCRIPTION
1909             "The upsFullConfigGroup defines the objects that are
1910             common to the Config groups of fully compliant UPSs."
1911     ::= { upsFullGroups 9 }
1912
1913 END