From i4uba, 4 Years ago, written in Plain Text.
Embed
  1.    UPS-MIB DEFINITIONS ::= BEGIN
  2.    
  3.  
  4. IMPORTS
  5.  TRAP-TYPE
  6.   FROM RFC-1215
  7.  mib-2, DisplayString
  8.   FROM RFC1213-MIB
  9.  OBJECT-TYPE
  10.   FROM RFC-1212
  11.  Gauge, Counter
  12.   FROM RFC1155-SMI;
  13. --        AutonomousType, TestAndIncr, TimeInterval, TimeStamp
  14. --                FROM SNMPv2-TC;
  15.  
  16. -- created from upsMIB (9402050000Z)
  17.  
  18. upsMIB OBJECT IDENTIFIER ::= { mib-2  33 } -- this has to be fixed by hand
  19.  
  20. AutonomousType ::=
  21.     INTEGER
  22. TestAndIncr ::=
  23.     INTEGER
  24. TimeInterval ::=
  25.     INTEGER
  26. TimeStamp ::=
  27.     INTEGER
  28.  
  29. PositiveInteger ::=
  30.     INTEGER
  31.  
  32. NonNegativeInteger ::=
  33.     INTEGER
  34.  
  35.  
  36.    upsObjects            OBJECT IDENTIFIER ::= { upsMIB 1 }
  37.  
  38.  
  39.    --
  40.    -- The Device Identification group.
  41.    --      All objects in this group except for upsIdentName and
  42.    --      upsIdentAttachedDevices are set at device initialization
  43.    --      and remain static.
  44.    --
  45.  
  46.    upsIdent              OBJECT IDENTIFIER ::= { upsObjects 1 }
  47.  
  48.    upsIdentManufacturer OBJECT-TYPE
  49.        SYNTAX     DisplayString (SIZE (0..31))
  50.        ACCESS     read-only
  51.        STATUS     mandatory
  52.        DESCRIPTION
  53.         "The name of the UPS manufacturer."
  54.        ::= { upsIdent 1 }
  55.  
  56.    upsIdentModel OBJECT-TYPE
  57.        SYNTAX     DisplayString (SIZE (0..63))
  58.        ACCESS     read-only
  59.        STATUS     mandatory
  60.        DESCRIPTION
  61.         "The UPS Model designation."
  62.        ::= { upsIdent 2 }
  63.  
  64.    upsIdentUPSSoftwareVersion OBJECT-TYPE
  65.        SYNTAX     DisplayString (SIZE (0..63))
  66.        ACCESS     read-only
  67.        STATUS     mandatory
  68.        DESCRIPTION
  69.         "The UPS firmware/software version(s).  This variable
  70.         may or may not have the same value as
  71.         upsIdentAgentSoftwareVersion in some implementations."
  72.        ::= { upsIdent 3 }
  73.  
  74.    upsIdentAgentSoftwareVersion OBJECT-TYPE
  75.        SYNTAX     DisplayString (SIZE (0..63))
  76.        ACCESS     read-only
  77.        STATUS     mandatory
  78.        DESCRIPTION
  79.         "The UPS agent software version.  This variable may or
  80.         may not have the same value as
  81.         upsIdentUPSSoftwareVersion in some implementations."
  82.        ::= { upsIdent 4 }
  83.  
  84.    upsIdentName OBJECT-TYPE
  85.        SYNTAX     DisplayString (SIZE(0..63))
  86.        ACCESS     read-write
  87.        STATUS     mandatory
  88.        DESCRIPTION
  89.         "A string identifying the UPS.  This object should be
  90.         set by the administrator."
  91.        ::= { upsIdent 5 }
  92.  
  93.    upsIdentAttachedDevices OBJECT-TYPE
  94.        SYNTAX     DisplayString (SIZE(0..63))
  95.        ACCESS     read-write
  96.        STATUS     mandatory
  97.        DESCRIPTION
  98.         "A string identifying the devices attached to the
  99.         output(s) of the UPS.  This object should be set by
  100.         the administrator."
  101.        ::= { upsIdent 6 }
  102.  
  103.  
  104.    --
  105.    -- Battery Group
  106.    --
  107.  
  108.    upsBattery            OBJECT IDENTIFIER ::= { upsObjects 2 }
  109.  
  110.    upsBatteryStatus OBJECT-TYPE
  111.        SYNTAX     INTEGER {
  112.     unknown(1),
  113.     batteryNormal(2),
  114.     batteryLow(3),
  115.     batteryDepleted(4)
  116.        }
  117.        ACCESS     read-only
  118.        STATUS     mandatory
  119.        DESCRIPTION
  120.         "The indication of the capacity remaining in the UPS
  121.         system's batteries.   A value of batteryNormal
  122.         indicates that the remaining run-time is greater than
  123.         upsConfigLowBattTime.  A value of batteryLow indicates
  124.         that the remaining battery run-time is less than or
  125.         equal to upsConfigLowBattTime.  A value of
  126.         batteryDepleted indicates that the UPS will be unable
  127.         to sustain the present load when and if the utility
  128.         power is lost (including the possibility that the
  129.         utility power is mandatoryly absent and the UPS is
  130.         unable to sustain the output)."
  131.        ::= { upsBattery 1 }
  132.  
  133.    upsSecondsOnBattery OBJECT-TYPE
  134.        SYNTAX     NonNegativeInteger
  135.        ACCESS     read-only
  136.        STATUS     mandatory
  137.        DESCRIPTION
  138.         "If the unit is on battery power, the elapsed time
  139.         since the UPS last switched to battery power, or the
  140.         time since the network management subsystem was last
  141.         restarted, whichever is less.  Zero shall be returned
  142.         if the unit is not on battery power."
  143.        ::= { upsBattery 2 }
  144.  
  145.    upsEstimatedMinutesRemaining OBJECT-TYPE
  146.        SYNTAX     PositiveInteger
  147.        --      "minutes"
  148.        ACCESS     read-only
  149.        STATUS     mandatory
  150.        DESCRIPTION
  151.         "An estimate of the time to battery charge depletion
  152.         under the present load conditions if the utility power
  153.         is off and remains off, or if it were to be lost and
  154.         remain off."
  155.        ::= { upsBattery 3 }
  156.  
  157.    upsEstimatedChargeRemaining OBJECT-TYPE
  158.        SYNTAX     INTEGER (0..100)
  159.        --      "percent"
  160.        ACCESS     read-only
  161.        STATUS     mandatory
  162.        DESCRIPTION
  163.         "An estimate of the battery charge remaining expressed
  164.         as a percent of full charge."
  165.        ::= { upsBattery 4 }
  166.  
  167.    upsBatteryVoltage OBJECT-TYPE
  168.        SYNTAX     NonNegativeInteger
  169.        --      "0.1 Volt DC"
  170.        ACCESS     read-only
  171.        STATUS     mandatory
  172.        DESCRIPTION
  173.         "The magnitude of the present battery voltage."
  174.        ::= { upsBattery 5 }
  175.  
  176.    upsBatterymandatory OBJECT-TYPE
  177.        SYNTAX     INTEGER
  178.        --      "0.1 Amp DC"
  179.        ACCESS     read-only
  180.        STATUS     mandatory
  181.        DESCRIPTION
  182.         "The present battery mandatory."
  183.        ::= { upsBattery 6 }
  184.  
  185.    upsBatteryTemperature OBJECT-TYPE
  186.        SYNTAX     INTEGER
  187.        --      "degrees Centigrade"
  188.        ACCESS     read-only
  189.        STATUS     mandatory
  190.        DESCRIPTION
  191.         "The ambient temperature at or near the UPS Battery
  192.         casing."
  193.        ::= { upsBattery 7 }
  194.  
  195.  
  196.    --
  197.    -- Input Group
  198.    --
  199.  
  200.    upsInput              OBJECT IDENTIFIER ::= { upsObjects 3 }
  201.  
  202.    upsInputLineBads OBJECT-TYPE
  203.        SYNTAX     Counter
  204.        ACCESS     read-only
  205.        STATUS     mandatory
  206.        DESCRIPTION
  207.         "A count of the number of times the input entered an
  208.         out-of-tolerance condition as defined by the
  209.         manufacturer.  This count is incremented by one each
  210.         time the input transitions from zero out-of-tolerance
  211.         lines to one or more input lines out-of-tolerance."
  212.        ::= { upsInput 1 }
  213.  
  214.  
  215.    upsInputNumLines OBJECT-TYPE
  216.        SYNTAX     NonNegativeInteger
  217.        ACCESS     read-only
  218.        STATUS     mandatory
  219.        DESCRIPTION
  220.         "The number of input lines utilized in this device.
  221.         This variable indicates the number of rows in the
  222.         input table."
  223.        ::= { upsInput 2 }
  224.  
  225.    upsInputTable OBJECT-TYPE
  226.        SYNTAX     SEQUENCE OF UpsInputEntry
  227.        ACCESS     not-accessible
  228.        STATUS     mandatory
  229.        DESCRIPTION
  230.         "A list of input table entries.  The number of entries
  231.         is given by the value of upsInputNumLines."
  232.        ::= { upsInput 3 }
  233.  
  234.    upsInputEntry OBJECT-TYPE
  235.        SYNTAX     UpsInputEntry
  236.        ACCESS     not-accessible
  237.        STATUS     mandatory
  238.        DESCRIPTION
  239.         "An entry containing information applicable to a
  240.         particular input line."
  241.        INDEX { upsInputLineIndex }
  242.        ::= { upsInputTable 1 }
  243.  
  244.    UpsInputEntry ::= SEQUENCE {
  245.        upsInputLineIndex   PositiveInteger,
  246.        upsInputFrequency   NonNegativeInteger,
  247.        upsInputVoltage     NonNegativeInteger,
  248.        upsInputmandatory   NonNegativeInteger,
  249.        upsInputTruePower   NonNegativeInteger
  250.    }
  251.  
  252.    upsInputLineIndex OBJECT-TYPE
  253.        SYNTAX     PositiveInteger
  254.        ACCESS     not-accessible
  255.        STATUS     mandatory
  256.        DESCRIPTION
  257.         "The input line identifier."
  258.        ::= { upsInputEntry 1 }
  259.  
  260.    upsInputFrequency OBJECT-TYPE
  261.        SYNTAX     NonNegativeInteger
  262.        --      "0.1 Hertz"
  263.        ACCESS     read-only
  264.        STATUS     mandatory
  265.        DESCRIPTION
  266.         "The present input frequency."
  267.        ::= { upsInputEntry 2 }
  268.  
  269.    upsInputVoltage OBJECT-TYPE
  270.        SYNTAX     NonNegativeInteger
  271.        --      "RMS Volts"
  272.        ACCESS     read-only
  273.        STATUS     mandatory
  274.        DESCRIPTION
  275.         "The magnitude of the present input voltage."
  276.        ::= { upsInputEntry 3 }
  277.  
  278.    upsInputmandatory OBJECT-TYPE
  279.        SYNTAX     NonNegativeInteger
  280.        --      "0.1 RMS Amp"
  281.        ACCESS     read-only
  282.        STATUS     mandatory
  283.        DESCRIPTION
  284.         "The magnitude of the present input mandatory."
  285.        ::= { upsInputEntry 4 }
  286.  
  287.    upsInputTruePower OBJECT-TYPE
  288.        SYNTAX     NonNegativeInteger
  289.        --      "Watts"
  290.        ACCESS     read-only
  291.        STATUS     mandatory
  292.        DESCRIPTION
  293.         "The magnitude of the present input true power."
  294.        ::= { upsInputEntry 5 }
  295.  
  296.  
  297.    --
  298.    -- The Output group.
  299.    --
  300.  
  301.    upsOutput             OBJECT IDENTIFIER ::= { upsObjects 4 }
  302.  
  303.    upsOutputSource OBJECT-TYPE
  304.        SYNTAX     INTEGER {
  305.     other(1),
  306.     none(2),
  307.     normal(3),
  308.     bypass(4),
  309.     battery(5),
  310.     booster(6),
  311.     reducer(7)
  312.        }
  313.        ACCESS     read-only
  314.        STATUS     mandatory
  315.        DESCRIPTION
  316.         "The present source of output power.  The enumeration
  317.         none(2) indicates that there is no source of output
  318.         power (and therefore no output power), for example,
  319.         the system has opened the output breaker."
  320.        ::= { upsOutput 1 }
  321.  
  322.    upsOutputFrequency OBJECT-TYPE
  323.        SYNTAX     NonNegativeInteger
  324.        --      "0.1 Hertz"
  325.        ACCESS     read-only
  326.        STATUS     mandatory
  327.        DESCRIPTION
  328.         "The present output frequency."
  329.        ::= { upsOutput 2 }
  330.  
  331.    upsOutputNumLines OBJECT-TYPE
  332.        SYNTAX     NonNegativeInteger
  333.        ACCESS     read-only
  334.        STATUS     mandatory
  335.        DESCRIPTION
  336.         "The number of output lines utilized in this device.
  337.         This variable indicates the number of rows in the
  338.         output table."
  339.        ::= { upsOutput 3 }
  340.  
  341.    upsOutputTable OBJECT-TYPE
  342.        SYNTAX     SEQUENCE OF UpsOutputEntry
  343.        ACCESS     not-accessible
  344.        STATUS     mandatory
  345.        DESCRIPTION
  346.         "A list of output table entries.  The number of
  347.         entries is given by the value of upsOutputNumLines."
  348.        ::= { upsOutput 4 }
  349.  
  350.    upsOutputEntry OBJECT-TYPE
  351.        SYNTAX     UpsOutputEntry
  352.        ACCESS     not-accessible
  353.        STATUS     mandatory
  354.        DESCRIPTION
  355.         "An entry containing information applicable to a
  356.         particular output line."
  357.        INDEX { upsOutputLineIndex }
  358.        ::= { upsOutputTable 1 }
  359.  
  360.    UpsOutputEntry ::= SEQUENCE {
  361.        upsOutputLineIndex   PositiveInteger,
  362.        upsOutputVoltage     NonNegativeInteger,
  363.        upsOutputmandatory   NonNegativeInteger,
  364.        upsOutputPower       NonNegativeInteger,
  365.        upsOutputPercentLoad INTEGER
  366.    }
  367.  
  368.    upsOutputLineIndex OBJECT-TYPE
  369.        SYNTAX     PositiveInteger
  370.        ACCESS     not-accessible
  371.        STATUS     mandatory
  372.        DESCRIPTION
  373.         "The output line identifier."
  374.        ::= { upsOutputEntry 1 }
  375.  
  376.    upsOutputVoltage OBJECT-TYPE
  377.        SYNTAX     NonNegativeInteger
  378.        --      "RMS Volts"
  379.        ACCESS     read-only
  380.        STATUS     mandatory
  381.        DESCRIPTION
  382.         "The present output voltage."
  383.        ::= { upsOutputEntry 2 }
  384.  
  385.    upsOutputmandatory OBJECT-TYPE
  386.        SYNTAX     NonNegativeInteger
  387.        --      "0.1 RMS Amp"
  388.        ACCESS     read-only
  389.        STATUS     mandatory
  390.        DESCRIPTION
  391.         "The present output mandatory."
  392.        ::= { upsOutputEntry 3 }
  393.  
  394.    upsOutputPower OBJECT-TYPE
  395.        SYNTAX     NonNegativeInteger
  396.        --      "Watts"
  397.        ACCESS     read-only
  398.        STATUS     mandatory
  399.        DESCRIPTION
  400.         "The present output true power."
  401.        ::= { upsOutputEntry 4 }
  402.  
  403.    upsOutputPercentLoad OBJECT-TYPE
  404.        SYNTAX     INTEGER (0..200)
  405.        --      "percent"
  406.        ACCESS     read-only
  407.        STATUS     mandatory
  408.        DESCRIPTION
  409.         "The percentage of the UPS power capacity presently
  410.         being used on this output line, i.e., the greater of
  411.         the percent load of true power capacity and the
  412.         percent load of VA."
  413.        ::= { upsOutputEntry 5 }
  414.  
  415.    --
  416.    -- The Bypass group.
  417.    --
  418.  
  419.    upsBypass             OBJECT IDENTIFIER ::= { upsObjects 5 }
  420.  
  421.    upsBypassFrequency OBJECT-TYPE
  422.        SYNTAX     NonNegativeInteger
  423.        --      "0.1 Hertz"
  424.        ACCESS     read-only
  425.        STATUS     mandatory
  426.        DESCRIPTION
  427.         "The present bypass frequency."
  428.        ::= { upsBypass 1 }
  429.  
  430.    upsBypassNumLines OBJECT-TYPE
  431.        SYNTAX     NonNegativeInteger
  432.        ACCESS     read-only
  433.        STATUS     mandatory
  434.        DESCRIPTION
  435.         "The number of bypass lines utilized in this device.
  436.         This entry indicates the number of rows in the bypass
  437.         table."
  438.        ::= { upsBypass 2 }
  439.  
  440.    upsBypassTable OBJECT-TYPE
  441.        SYNTAX     SEQUENCE OF UpsBypassEntry
  442.        ACCESS     not-accessible
  443.        STATUS     mandatory
  444.        DESCRIPTION
  445.         "A list of bypass table entries.  The number of
  446.         entries is given by the value of upsBypassNumLines."
  447.        ::= { upsBypass 3 }
  448.  
  449.    upsBypassEntry OBJECT-TYPE
  450.        SYNTAX     UpsBypassEntry
  451.        ACCESS     not-accessible
  452.        STATUS     mandatory
  453.        DESCRIPTION
  454.         "An entry containing information applicable to a
  455.         particular bypass input."
  456.        INDEX { upsBypassLineIndex }
  457.        ::= { upsBypassTable 1 }
  458.  
  459.    UpsBypassEntry ::= SEQUENCE {
  460.        upsBypassLineIndex  PositiveInteger,
  461.        upsBypassVoltage    NonNegativeInteger,
  462.        upsBypassmandatory    NonNegativeInteger,
  463.        upsBypassPower      NonNegativeInteger
  464.    }
  465.  
  466.    upsBypassLineIndex OBJECT-TYPE
  467.        SYNTAX     PositiveInteger
  468.        ACCESS     not-accessible
  469.        STATUS     mandatory
  470.        DESCRIPTION
  471.         "The bypass line identifier."
  472.        ::= { upsBypassEntry 1 }
  473.  
  474.    upsBypassVoltage OBJECT-TYPE
  475.        SYNTAX     NonNegativeInteger
  476.        --      "RMS Volts"
  477.        ACCESS     read-only
  478.        STATUS     mandatory
  479.        DESCRIPTION
  480.         "The present bypass voltage."
  481.        ::= { upsBypassEntry 2 }
  482.  
  483.    upsBypassmandatory OBJECT-TYPE
  484.        SYNTAX     NonNegativeInteger
  485.        --      "0.1 RMS Amp"
  486.        ACCESS     read-only
  487.        STATUS     mandatory
  488.        DESCRIPTION
  489.         "The present bypass mandatory."
  490.        ::= { upsBypassEntry 3 }
  491.  
  492.    upsBypassPower OBJECT-TYPE
  493.        SYNTAX     NonNegativeInteger
  494.        --      "Watts"
  495.        ACCESS     read-only
  496.        STATUS     mandatory
  497.        DESCRIPTION
  498.         "The present true power conveyed by the bypass."
  499.        ::= { upsBypassEntry 4 }
  500.  
  501.  
  502.    --
  503.    -- The Alarm group.
  504.    --
  505.  
  506.    upsAlarm              OBJECT IDENTIFIER ::= { upsObjects 6 }
  507.  
  508.    upsAlarmsPresent OBJECT-TYPE
  509.        SYNTAX     Gauge
  510.        ACCESS     read-only
  511.        STATUS     mandatory
  512.        DESCRIPTION
  513.         "The present number of active alarm conditions."
  514.        ::= { upsAlarm 1 }
  515.  
  516.    upsAlarmTable OBJECT-TYPE
  517.        SYNTAX     SEQUENCE OF UpsAlarmEntry
  518.        ACCESS     not-accessible
  519.        STATUS     mandatory
  520.        DESCRIPTION
  521.         "A list of alarm table entries.  The table contains
  522.         zero, one, or many rows at any moment, depending upon
  523.         the number of alarm conditions in effect.  The table
  524.         is initially empty at agent startup.  The agent
  525.         creates a row in the table each time a condition is
  526.         detected and deletes that row when that condition no
  527.         longer pertains.  The agent creates the first row with
  528.         upsAlarmId equal to 1, and increments the value of
  529.         upsAlarmId each time a new row is created, wrapping to
  530.         the first free value greater than or equal to 1 when
  531.         the maximum value of upsAlarmId would otherwise be
  532.         exceeded.  Consequently, after multiple operations,
  533.         the table may become sparse, e.g., containing entries
  534.         for rows 95, 100, 101, and 203 and the entries should
  535.         not be assumed to be in chronological order because
  536.         upsAlarmId might have wrapped.
  537.  
  538.         Alarms are named by an AutonomousType (OBJECT
  539.         IDENTIFIER), upsAlarmDescr, to allow a single table to
  540.         reflect well known alarms plus alarms defined by a
  541.         particular implementation, i.e., as documented in the
  542.         private enterprise MIB definition for the device.  No
  543.         two rows will have the same value of upsAlarmDescr,
  544.         since alarms define conditions.  In order to meet this
  545.         requirement, care should be taken in the definition of
  546.         alarm conditions to insure that a system cannot enter
  547.         the same condition multiple times simultaneously.
  548.  
  549.         The number of rows in the table at any given time is
  550.         reflected by the value of upsAlarmsPresent."
  551.        ::= { upsAlarm 2 }
  552.  
  553.    upsAlarmEntry OBJECT-TYPE
  554.        SYNTAX     UpsAlarmEntry
  555.        ACCESS     not-accessible
  556.        STATUS     mandatory
  557.        DESCRIPTION
  558.         "An entry containing information applicable to a
  559.         particular alarm."
  560.        INDEX { upsAlarmId }
  561.        ::= { upsAlarmTable 1 }
  562.  
  563.    UpsAlarmEntry ::= SEQUENCE {
  564.        upsAlarmId          PositiveInteger,
  565.        upsAlarmDescr       AutonomousType,
  566.        upsAlarmTime        TimeStamp
  567.    }
  568.  
  569.    upsAlarmId OBJECT-TYPE
  570.        SYNTAX     PositiveInteger
  571.        ACCESS     not-accessible
  572.        STATUS     mandatory
  573.        DESCRIPTION
  574.         "A unique identifier for an alarm condition.  This
  575.         value must remain constant."
  576.        ::= { upsAlarmEntry 1 }
  577.  
  578.    upsAlarmDescr OBJECT-TYPE
  579.        SYNTAX     AutonomousType
  580.        ACCESS     read-only
  581.        STATUS     mandatory
  582.        DESCRIPTION
  583.         "A reference to an alarm description object.  The
  584.         object referenced should not be accessible, but rather
  585.         be used to provide a unique description of the alarm
  586.         condition."
  587.        ::= { upsAlarmEntry 2 }
  588.  
  589.    upsAlarmTime OBJECT-TYPE
  590.        SYNTAX     TimeStamp
  591.        ACCESS     read-only
  592.        STATUS     mandatory
  593.        DESCRIPTION
  594.         "The value of sysUpTime when the alarm condition was
  595.         detected.  If the alarm condition was detected at the
  596.         time of agent startup and presumably existed before
  597.         agent startup, the value of upsAlarmTime shall equal
  598.         0."
  599.        ::= { upsAlarmEntry 3 }
  600.  
  601.  
  602.    --
  603.    -- Well known alarm conditions.
  604.    --
  605.  
  606.    upsWellKnownAlarms    OBJECT IDENTIFIER ::= { upsAlarm 3 }
  607.  
  608.    upsAlarmBatteryBad OBJECT IDENTIFIER
  609.        ::= { upsWellKnownAlarms  1 }
  610.  
  611.    upsAlarmOnBattery OBJECT IDENTIFIER
  612.        ::= { upsWellKnownAlarms  2 }
  613.  
  614.    upsAlarmLowBattery OBJECT IDENTIFIER
  615.        ::= { upsWellKnownAlarms  3 }
  616.  
  617.  
  618.    upsAlarmDepletedBattery OBJECT IDENTIFIER
  619.        ::= { upsWellKnownAlarms  4 }
  620.  
  621.    upsAlarmTempBad OBJECT IDENTIFIER
  622.        ::= { upsWellKnownAlarms  5 }
  623.  
  624.    upsAlarmInputBad OBJECT IDENTIFIER
  625.        ::= { upsWellKnownAlarms  6 }
  626.  
  627.    upsAlarmOutputBad OBJECT IDENTIFIER
  628.        ::= { upsWellKnownAlarms  7 }
  629.  
  630.    upsAlarmOutputOverload OBJECT IDENTIFIER
  631.        ::= { upsWellKnownAlarms  8 }
  632.  
  633.    upsAlarmOnBypass OBJECT IDENTIFIER
  634.        ::= { upsWellKnownAlarms  9 }
  635.  
  636.    upsAlarmBypassBad OBJECT IDENTIFIER
  637.        ::= { upsWellKnownAlarms 10 }
  638.  
  639.    upsAlarmOutputOffAsRequested OBJECT IDENTIFIER
  640.        ::= { upsWellKnownAlarms 11 }
  641.  
  642.    upsAlarmUpsOffAsRequested OBJECT IDENTIFIER
  643.        ::= { upsWellKnownAlarms 12 }
  644.  
  645.    upsAlarmChargerFailed OBJECT IDENTIFIER
  646.        ::= { upsWellKnownAlarms 13 }
  647.  
  648.    upsAlarmUpsOutputOff OBJECT IDENTIFIER
  649.        ::= { upsWellKnownAlarms 14 }
  650.  
  651.    upsAlarmUpsSystemOff OBJECT IDENTIFIER
  652.        ::= { upsWellKnownAlarms 15 }
  653.  
  654.    upsAlarmFanFailure OBJECT IDENTIFIER
  655.        ::= { upsWellKnownAlarms 16 }
  656.  
  657.    upsAlarmFuseFailure OBJECT IDENTIFIER
  658.        ::= { upsWellKnownAlarms 17 }
  659.  
  660.    upsAlarmGeneralFault OBJECT IDENTIFIER
  661.        ::= { upsWellKnownAlarms 18 }
  662.  
  663.    upsAlarmDiagnosticTestFailed OBJECT IDENTIFIER
  664.        ::= { upsWellKnownAlarms 19 }
  665.  
  666.    upsAlarmCommunicationsLost OBJECT IDENTIFIER
  667.        ::= { upsWellKnownAlarms 20 }
  668.  
  669.    upsAlarmAwaitingPower OBJECT IDENTIFIER
  670.        ::= { upsWellKnownAlarms 21 }
  671.  
  672.    upsAlarmShutdownPending OBJECT IDENTIFIER
  673.        ::= { upsWellKnownAlarms 22 }
  674.  
  675.    upsAlarmShutdownImminent OBJECT IDENTIFIER
  676.        ::= { upsWellKnownAlarms 23 }
  677.  
  678.    upsAlarmTestInProgress OBJECT IDENTIFIER
  679.        ::= { upsWellKnownAlarms 24 }
  680.  
  681.  
  682.    --
  683.    -- The Test Group
  684.    --
  685.  
  686.    upsTest               OBJECT IDENTIFIER ::= { upsObjects 7 }
  687.  
  688.    upsTestId OBJECT-TYPE
  689.        SYNTAX     OBJECT IDENTIFIER
  690.        ACCESS read-write
  691.        STATUS     mandatory
  692.        DESCRIPTION
  693.         "The test is named by an OBJECT IDENTIFIER which
  694.         allows a standard mechanism for the initiation of
  695.         tests, including the well known tests identified in
  696.         this document as well as those introduced by a
  697.         particular implementation, i.e., as documented in the
  698.         private enterprise MIB definition for the device.
  699.  
  700.         Setting this variable initiates the named test. Sets
  701.         to this variable require the presence of
  702.         upsTestSpinLock in the same SNMP message.
  703.  
  704.         The set request will be rejected with an appropriate
  705.         error message if the requested test cannot be
  706.         performed, including attempts to start a test when
  707.         another test is already in progress.  The status of
  708.         the mandatory or last test is maintained in
  709.         upsTestResultsSummary. Tests in progress may be
  710.         aborted by setting the upsTestId variable to
  711.         upsTestAbortTestInProgress.
  712.  
  713.         Read operations return the value of the name of the
  714.         test in progress if a test is in progress or the name
  715.         of the last test performed if no test is in progress,
  716.         unless no test has been run, in which case the well
  717.         known value upsTestNoTestsInitiated is returned."
  718.        ::= { upsTest 1 }
  719.  
  720.    -- see [6] for more information on the semantics of objects with
  721.    -- syntax of TestAndIncr
  722.  
  723.    upsTestSpinLock OBJECT-TYPE
  724.        SYNTAX     TestAndIncr
  725.        ACCESS read-write
  726.        STATUS     mandatory
  727.        DESCRIPTION
  728.         "A spin lock on the test subsystem.  The spinlock is
  729.         used as follows.
  730.  
  731.         Before starting a test, a manager-station should make
  732.         sure that a test is not in progress as follows:
  733.  
  734.      try_again:
  735.        get (upsTestSpinLock)
  736.        while (upsTestResultsSummary == inProgress) {
  737.          /* loop while a test is running for another
  738.         manager */
  739.          short delay
  740.          get (upsTestSpinLock)
  741.        }
  742.        lock_value = upsTestSpinLock
  743.        /* no test in progress, start the test */
  744.        set (upsTestSpinLock = lock_value, upsTestId =
  745.         requested_test)
  746.        if (error_index == 1) { /* (upsTestSpinLock
  747.         failed) */
  748.          /* if problem is not access control, then
  749.       some other manager slipped in ahead of us
  750.         */
  751.          goto try_again
  752.        }
  753.        if (error_index == 2) { /* (upsTestId) */
  754.          /* cannot perform the test */
  755.          give up
  756.        }
  757.        /* test started ok */
  758.        /* wait for test completion by polling
  759.         upsTestResultsSummary */
  760.        get (upsTestSpinLock, upsTestResultsSummary,
  761.         upsTestResultsDetail)
  762.        while (upsTestResultsSummary == inProgress) {
  763.          short delay
  764.          get (upsTestSpinLock, upsTestResultsSummary,
  765.         upsTestResultsDetail)
  766.        }
  767.        /* when test completes, retrieve any additional
  768.         test results */
  769.        /* if upsTestSpinLock == lock_value + 1, then
  770.         these are our test */
  771.        /* results (as opposed to another manager's */
  772.        The initial value of upsTestSpinLock at agent
  773.         initialization shall
  774.        be 1."
  775.        ::= { upsTest 2 }
  776.  
  777.    upsTestResultsSummary OBJECT-TYPE
  778.        SYNTAX     INTEGER {
  779.     donePass(1),
  780.     doneWarning(2),
  781.     doneError(3),
  782.     aborted(4),
  783.     inProgress(5),
  784.     noTestsInitiated(6)
  785.        }
  786.        ACCESS read-only
  787.        STATUS     mandatory
  788.        DESCRIPTION
  789.         "The results of the mandatory or last UPS diagnostics
  790.         test performed.  The values for donePass(1),
  791.         doneWarning(2), and doneError(3) indicate that the
  792.         test completed either successfully, with a warning, or
  793.         with an error, respectively.  The value aborted(4) is
  794.         returned for tests which are aborted by setting the
  795.         value of upsTestId to upsTestAbortTestInProgress.
  796.         Tests which have not yet concluded are indicated by
  797.         inProgress(5).  The value noTestsInitiated(6)
  798.         indicates that no previous test results are available,
  799.         such as is the case when no tests have been run since
  800.         the last reinitialization of the network management
  801.         subsystem and the system has no provision for non-
  802.         volatile storage of test results."
  803.        ::= { upsTest 3 }
  804.  
  805.    upsTestResultsDetail OBJECT-TYPE
  806.        SYNTAX     DisplayString (SIZE (0..255))
  807.        ACCESS read-only
  808.        STATUS     mandatory
  809.        DESCRIPTION
  810.         "Additional information about upsTestResultsSummary.
  811.         If no additional information available, a zero length
  812.         string is returned."
  813.        ::= { upsTest 4 }
  814.  
  815.    upsTestStartTime OBJECT-TYPE
  816.        SYNTAX     TimeStamp
  817.        ACCESS read-only
  818.        STATUS     mandatory
  819.        DESCRIPTION
  820.         "The value of sysUpTime at the time the test in
  821.         progress was initiated, or, if no test is in progress,
  822.         the time the previous test was initiated.  If the
  823.         value of upsTestResultsSummary is noTestsInitiated(6),
  824.         upsTestStartTime has the value 0."
  825.        ::= { upsTest 5 }
  826.  
  827.    upsTestElapsedTime OBJECT-TYPE
  828.        SYNTAX     TimeInterval
  829.        ACCESS read-only
  830.        STATUS     mandatory
  831.        DESCRIPTION
  832.         "The amount of time, in TimeTicks, since the test in
  833.         progress was initiated, or, if no test is in progress,
  834.         the previous test took to complete.  If the value of
  835.         upsTestResultsSummary is noTestsInitiated(6),
  836.         upsTestElapsedTime has the value 0."
  837.        ::= { upsTest 6 }
  838.  
  839.    --
  840.    -- Well known tests.
  841.    --
  842.  
  843.    upsWellKnownTests     OBJECT IDENTIFIER ::= { upsTest 7 }
  844.  
  845.  
  846.    upsTestNoTestsInitiated OBJECT IDENTIFIER
  847.        ::= { upsWellKnownTests  1 }
  848.  
  849.    upsTestAbortTestInProgress OBJECT IDENTIFIER
  850.        ::= { upsWellKnownTests  2 }
  851.  
  852.    upsTestGeneralSystemsTest OBJECT IDENTIFIER
  853.        ::= { upsWellKnownTests  3 }
  854.  
  855.    upsTestQuickBatteryTest OBJECT IDENTIFIER
  856.        ::= { upsWellKnownTests  4 }
  857.  
  858.    upsTestDeepBatteryCalibration OBJECT IDENTIFIER
  859.        ::= { upsWellKnownTests  5 }
  860.  
  861.  
  862.    --
  863.    -- The Control group.
  864.    --
  865.  
  866.    upsControl            OBJECT IDENTIFIER ::= { upsObjects 8 }
  867.  
  868.    upsShutdownType OBJECT-TYPE
  869.        SYNTAX     INTEGER {
  870.     output(1),
  871.     system(2)
  872.        }
  873.        ACCESS read-write
  874.        STATUS     mandatory
  875.        DESCRIPTION
  876.         "This object determines the nature of the action to be
  877.         taken at the time when the countdown of the
  878.         upsShutdownAfterDelay and upsRebootWithDuration
  879.         objects reaches zero.
  880.  
  881.         Setting this object to output(1) indicates that
  882.         shutdown requests should cause only the output of the
  883.         UPS to turn off.  Setting this object to system(2)
  884.         indicates that shutdown requests will cause the entire
  885.         UPS system to turn off."
  886.        ::= { upsControl 1 }
  887.  
  888.    upsShutdownAfterDelay OBJECT-TYPE
  889.        SYNTAX     INTEGER (-1..2147483648)
  890.        --      "seconds"
  891.        ACCESS read-write
  892.        STATUS     mandatory
  893.        DESCRIPTION
  894.         "Setting this object will shutdown (i.e., turn off)
  895.         either the UPS output or the UPS system (as determined
  896.         by the value of upsShutdownType at the time of
  897.         shutdown) after the indicated number of seconds, or
  898.         less if the UPS batteries become depleted. Setting
  899.         this object to 0 will cause the shutdown to occur
  900.         immediately.  Setting this object to -1 will abort the
  901.         countdown.  If the system is already in the desired
  902.         state at the time the countdown reaches 0, then
  903.         nothing will happen.  That is, there is no additional
  904.         action at that time if upsShutdownType = system and
  905.         the system is already off.  Similarly, there is no
  906.         additional action at that time if upsShutdownType =
  907.         output and the output is already off.  When read,
  908.         upsShutdownAfterDelay will return the number of
  909.         seconds remaining until shutdown, or -1 if no shutdown
  910.         countdown is in effect.  On some systems, if the agent
  911.         is restarted while a shutdown countdown is in effect,
  912.         the countdown may be aborted.  Sets to this object
  913.         override any upsShutdownAfterDelay already in effect."
  914.        ::= { upsControl 2 }
  915.  
  916.    upsStartupAfterDelay OBJECT-TYPE
  917.        SYNTAX     INTEGER (-1..2147483648)
  918.        --      "seconds"
  919.        ACCESS read-write
  920.        STATUS     mandatory
  921.        DESCRIPTION
  922.         "Setting this object will start the output after the
  923.         indicated number of seconds, including starting the
  924.         UPS, if necessary.  Setting this object to 0 will
  925.         cause the startup to occur immediately.  Setting this
  926.         object to -1 will abort the countdown.  If the output
  927.         is already on at the time the countdown reaches 0,
  928.         then nothing will happen.  Sets to this object
  929.         override the effect of any upsStartupAfterDelay
  930.         countdown or upsRebootWithDuration countdown in
  931.         progress.  When read, upsStartupAfterDelay will return
  932.         the number of seconds until startup, or -1 if no
  933.         startup countdown is in effect.  If the countdown
  934.         expires during a utility failure, the startup shall
  935.         not occur until the utility power is restored.  On
  936.         some systems, if the agent is restarted while a
  937.         startup countdown is in effect, the countdown is
  938.         aborted."
  939.        ::= { upsControl 3 }
  940.  
  941.    upsRebootWithDuration OBJECT-TYPE
  942.        SYNTAX     INTEGER (-1..300)
  943.        --      "seconds"
  944.        ACCESS read-write
  945.        STATUS     mandatory
  946.        DESCRIPTION
  947.         "Setting this object will immediately shutdown (i.e.,
  948.         turn off) either the UPS output or the UPS system (as
  949.         determined by the value of upsShutdownType at the time
  950.         of shutdown) for a period equal to the indicated
  951.         number of seconds, after which time the output will be
  952.         started, including starting the UPS, if necessary.  If
  953.         the number of seconds required to perform the request
  954.         is greater than the requested duration, then the
  955.         requested shutdown and startup cycle shall be
  956.         performed in the minimum time possible, but in no case
  957.         shall this require more than the requested duration
  958.         plus 60 seconds.  When read, upsRebootWithDuration
  959.         shall return the number of seconds remaining in the
  960.         countdown, or -1 if no countdown is in progress.  If
  961.         the startup should occur during a utility failure, the
  962.         startup shall not occur until the utility power is
  963.         restored."
  964.        ::= { upsControl 4 }
  965.  
  966.    upsAutoRestart OBJECT-TYPE
  967.        SYNTAX     INTEGER {
  968.     on(1),
  969.     off(2)
  970.        }
  971.        ACCESS read-write
  972.        STATUS     mandatory
  973.        DESCRIPTION
  974.         "Setting this object to 'on' will cause the UPS system
  975.         to restart after a shutdown if the shutdown occurred
  976.         during a power loss as a result of either a
  977.         upsShutdownAfterDelay or an internal battery depleted
  978.         condition.  Setting this object to 'off' will prevent
  979.         the UPS system from restarting after a shutdown until
  980.         an operator manually or remotely explicitly restarts
  981.         it.  If the UPS is in a startup or reboot countdown,
  982.         then the UPS will not restart until that delay has
  983.         been satisfied."
  984.        ::= { upsControl 5 }
  985.  
  986.  
  987.    --
  988.    -- The Configuration group.
  989.    --
  990.  
  991.    upsConfig             OBJECT IDENTIFIER ::= { upsObjects 9 }
  992.  
  993.    upsConfigInputVoltage OBJECT-TYPE
  994.        SYNTAX     NonNegativeInteger
  995.        --      "RMS Volts"
  996.        ACCESS read-write
  997.        STATUS     mandatory
  998.        DESCRIPTION
  999.         "The magnitude of the nominal input voltage.  On those
  1000.         systems which support read-write access to this
  1001.         object, if there is an attempt to set this variable to
  1002.         a value that is not supported, the request must be
  1003.         rejected and the agent shall respond with an
  1004.         appropriate error message, i.e., badValue for SNMPv1,
  1005.         or inconsistentValue for SNMPv2."
  1006.        ::= { upsConfig 1 }
  1007.  
  1008.    upsConfigInputFreq OBJECT-TYPE
  1009.        SYNTAX     NonNegativeInteger
  1010.        --      "0.1 Hertz"
  1011.        ACCESS read-write
  1012.        STATUS     mandatory
  1013.        DESCRIPTION
  1014.         "The nominal input frequency.  On those systems which
  1015.         support read-write access to this object, if there is
  1016.         an attempt to set this variable to a value that is not
  1017.         supported, the request must be rejected and the agent
  1018.         shall respond with an appropriate error message, i.e.,
  1019.         badValue for SNMPv1, or inconsistentValue for SNMPv2."
  1020.        ::= { upsConfig 2 }
  1021.  
  1022.    upsConfigOutputVoltage OBJECT-TYPE
  1023.        SYNTAX     NonNegativeInteger
  1024.        --      "RMS Volts"
  1025.        ACCESS read-write
  1026.        STATUS     mandatory
  1027.        DESCRIPTION
  1028.         "The magnitude of the nominal output voltage.  On
  1029.         those systems which support read-write access to this
  1030.         object, if there is an attempt to set this variable to
  1031.         a value that is not supported, the request must be
  1032.         rejected and the agent shall respond with an
  1033.         appropriate error message, i.e., badValue for SNMPv1,
  1034.         or inconsistentValue for SNMPv2."
  1035.        ::= { upsConfig 3 }
  1036.  
  1037.    upsConfigOutputFreq OBJECT-TYPE
  1038.        SYNTAX     NonNegativeInteger
  1039.        --      "0.1 Hertz"
  1040.        ACCESS read-write
  1041.        STATUS     mandatory
  1042.        DESCRIPTION
  1043.         "The nominal output frequency.  On those systems which
  1044.         support read-write access to this object, if there is
  1045.         an attempt to set this variable to a value that is not
  1046.         supported, the request must be rejected and the agent
  1047.         shall respond with an appropriate error message, i.e.,
  1048.         badValue for SNMPv1, or inconsistentValue for SNMPv2."
  1049.        ::= { upsConfig 4 }
  1050.  
  1051.    upsConfigOutputVA OBJECT-TYPE
  1052.        SYNTAX     NonNegativeInteger
  1053.        --      "Volt-Amps"
  1054.        ACCESS read-only
  1055.        STATUS     mandatory
  1056.        DESCRIPTION
  1057.         "The magnitude of the nominal Volt-Amp rating."
  1058.        ::= { upsConfig 5 }
  1059.  
  1060.    upsConfigOutputPower OBJECT-TYPE
  1061.        SYNTAX     NonNegativeInteger
  1062.        --      "Watts"
  1063.        ACCESS read-only
  1064.        STATUS     mandatory
  1065.        DESCRIPTION
  1066.         "The magnitude of the nominal true power rating."
  1067.        ::= { upsConfig 6 }
  1068.  
  1069.    upsConfigLowBattTime OBJECT-TYPE
  1070.        SYNTAX     NonNegativeInteger
  1071.        --      "minutes"
  1072.        ACCESS read-write
  1073.        STATUS     mandatory
  1074.        DESCRIPTION
  1075.         "The value of upsEstimatedMinutesRemaining at which a
  1076.         lowBattery condition is declared.  For agents which
  1077.         support only discrete (discontinuous) values, then the
  1078.         agent shall round up to the next supported value.  If
  1079.         the requested value is larger than the largest
  1080.         supported value, then the largest supported value
  1081.         shall be selected."
  1082.        ::= { upsConfig 7 }
  1083.  
  1084.    upsConfigAudibleStatus OBJECT-TYPE
  1085.        SYNTAX     INTEGER {
  1086.     disabled(1),
  1087.     enabled(2),
  1088.     muted(3)
  1089.        }
  1090.        ACCESS read-write
  1091.        STATUS     mandatory
  1092.        DESCRIPTION
  1093.         "The requested state of the audible alarm.  When in
  1094.         the disabled state, the audible alarm should never
  1095.         sound.  The enabled state is self-describing.  Setting
  1096.         this object to muted(3) when the audible alarm is
  1097.         sounding shall temporarily silence the alarm.  It will
  1098.         remain muted until it would normally stop sounding and
  1099.         the value returned for read operations during this
  1100.         period shall equal muted(3).  At the end of this
  1101.         period, the value shall revert to enabled(2).  Writes
  1102.         of the value muted(3) when the audible alarm is not
  1103.         sounding shall be accepted but otherwise shall have no
  1104.         effect."
  1105.        ::= { upsConfig 8 }
  1106.  
  1107.    upsConfigLowVoltageTransferPoint OBJECT-TYPE
  1108.        SYNTAX     NonNegativeInteger
  1109.        --      "RMS Volts"
  1110.        ACCESS read-write
  1111.        STATUS     mandatory
  1112.        DESCRIPTION
  1113.         "The minimum input line voltage allowed before the UPS
  1114.         system transfers to battery backup."
  1115.        ::= { upsConfig 9 }
  1116.  
  1117.    upsConfigHighVoltageTransferPoint OBJECT-TYPE
  1118.        SYNTAX     NonNegativeInteger
  1119.        --      "RMS Volts"
  1120.        ACCESS read-write
  1121.        STATUS     mandatory
  1122.        DESCRIPTION
  1123.         "The maximum line voltage allowed before the UPS
  1124.         system transfers to battery backup."
  1125.        ::= { upsConfig 10 }
  1126.  
  1127.  
  1128.    --
  1129.    -- notifications, i.e., traps
  1130.    --
  1131.    upsTraps              OBJECT IDENTIFIER ::= { upsMIB 2 }
  1132.  
  1133.    -- This section defines the well-known notifications sent by
  1134.    -- UPS agents.
  1135.    -- Care must be taken to insure that no particular notification
  1136.    -- is sent to a single receiving entity more often than once
  1137.    -- every five seconds.
  1138.  
  1139.    upsTrapOnBattery TRAP-TYPE
  1140.        ENTERPRISE       upsTraps
  1141.        VARIABLES { upsEstimatedMinutesRemaining, upsSecondsOnBattery,
  1142.    upsConfigLowBattTime }
  1143.        DESCRIPTION
  1144.         "The UPS is operating on battery power.  This trap is
  1145.         persistent and is resent at one minute intervals until
  1146.         the UPS either turns off or is no longer running on
  1147.         battery."
  1148.      ::= 1
  1149.  
  1150.    upsTrapTestCompleted TRAP-TYPE
  1151.        ENTERPRISE       upsTraps
  1152.        VARIABLES { upsTestId, upsTestSpinLock,
  1153.    upsTestResultsSummary, upsTestResultsDetail,
  1154.    upsTestStartTime, upsTestElapsedTime }
  1155.        DESCRIPTION
  1156.         "This trap is sent upon completion of a UPS diagnostic
  1157.         test."
  1158.      ::= 2
  1159.  
  1160.    upsTrapAlarmEntryAdded TRAP-TYPE
  1161.        ENTERPRISE       upsTraps
  1162.        VARIABLES { upsAlarmId, upsAlarmDescr }
  1163.        DESCRIPTION
  1164.         "This trap is sent each time an alarm is inserted into
  1165.         to the alarm table.  It is sent on the insertion of
  1166.         all alarms except for upsAlarmOnBattery and
  1167.         upsAlarmTestInProgress."
  1168.      ::= 3
  1169.  
  1170.    upsTrapAlarmEntryRemoved TRAP-TYPE
  1171.        ENTERPRISE       upsTraps
  1172.        VARIABLES { upsAlarmId, upsAlarmDescr }
  1173.        DESCRIPTION
  1174.         "This trap is sent each time an alarm is removed from
  1175.         the alarm table.  It is sent on the removal of all
  1176.         alarms except for upsAlarmTestInProgress."
  1177.      ::= 4
  1178.  
  1179.  
  1180.    END
  1181.