EATON-PDU-MIB DEFINITIONS ::= BEGIN

IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE,  
        Integer32
           FROM SNMPv2-SMI
      DisplayString, TEXTUAL-CONVENTION
           FROM SNMPv2-TC
      MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF
      pduAgent
           FROM EATON-OIDS;

eatonPduMIB MODULE-IDENTITY
    LAST-UPDATED "200701080000Z"
    ORGANIZATION "Eaton Corporation"
    CONTACT-INFO
        "Eaton Power Quality Technical Support (PQTS) group
            www.eaton.com/powerxpert 
            Technical Resource Center phone numbers 
			United States:  1.800.843.9433 or 919.870.3028
			Canada:  1.800.461.9166 ext. 260
			All other countries:  Call your local service representative." 
    DESCRIPTION
        "The MIB module for Eaton PDUs (Power Distribution Units).

         Copyright (C) Eaton Corporation (2007)."

    REVISION        "200701080000Z"
    DESCRIPTION
        "Initial Version of eatonPduMIB.
         Provides objects for PDU, Panel, and Breaker levels."

    ::= { pduAgent 4 }

-- eatonPduMIB { iso org(3) dod(6) internet(1) private(4)
--       enterprises(1) eaton(534) products(6) pduAgent(6) (4) }

-- Textual Context defintions:
-- PositiveInteger and NonNegativeInteger are borrowed from RFC1628
   PositiveInteger ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "This data type is a non-zero and non-negative value."
       SYNTAX       Integer32 (1..2147483647)

   NonNegativeInteger ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "This data type is a non-negative value."
       SYNTAX       Integer32 (0..2147483647)



eatonPduMIBObjects OBJECT IDENTIFIER ::= { eatonPduMIB 1 }

-- eatonPduMIB contains these groups:
-- Correspond to the three levels of the device hierarchy
-- mainPdu
--      -> pduPanel(s)
--              -> pduBreaker(s)
mainPdu    OBJECT IDENTIFIER ::= { eatonPduMIBObjects 1 }
pduPanel   OBJECT IDENTIFIER ::= { eatonPduMIBObjects 2 }
pduBreaker OBJECT IDENTIFIER ::= { eatonPduMIBObjects 3 }


--
-- mainPdu group
-- Objects that describe the main power distribution unit of the system
-- There is just one mainPdu in the system, 
--    at the root of the device hierarchy
-- This group has 3 subgroups, the Nameplate Ratings group, and the
--    Input and Output Meters groups.  The latter two each contain
--    a table of meters by phase (normally 3 phase)
-- *Very* similar to corresponding UPS MIB Input and Output group objects
--

--
-- Nameplate Ratings subgroup (under mainPdu group)
-- Objects that provide the nominal rating values for the PDU
-- 
pduNameplate    OBJECT IDENTIFIER ::= { mainPdu 1 }

pduRatingVA OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "volt-amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The full VA rating of this PDU (for all phases)."
    ::= { pduNameplate 1 }

pduNominalOutputVoltage OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "Volts RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The nominal Output Voltage of this PDU (as distributed
         to the panels).  May differ from the nominal Input Voltage 
         if the PDU has an input transformer.
         This is either Line-to-Line or Line-to-Neutral,
         as indicated in pduOutputVoltageUnits."
    ::= { pduNameplate 2 }

pduNumPhases OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of lines (phases) for this PDU.
         The number of Input phases must equal the number 
         of Output phases."
    ::= { pduNameplate 3 }

pduNumPanels OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of panels or subfeeds contained in this PDU system.
         This determines the number of rows found in the panel tables."
    ::= { pduNameplate 4 }



--
-- Input Meters SubGroup (of mainPdu group)
--

pduInput              OBJECT IDENTIFIER ::= { mainPdu 2 }

pduFrequency OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present frequency reading for the full PDU."
    ::= { pduInput 1 }

pduInputVA OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "VA"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present VA input demand of the full PDU system."
    ::= { pduInput 2 }

pduInputPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present input power demand of the full PDU system."
    ::= { pduInput 3 }

pduInputPowerFactor OBJECT-TYPE
    SYNTAX     Integer32 (-100..100)
    UNITS      "pf * 100"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The input power factor for the full PDU system.
         Varies from -1.00 to 1.00, multiplied by 100.
         If negative values are used, they indicate lagging pf."
    ::= { pduInput 4 }

pduGroundCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present current in the PDU's ground phase.
         Ideally, this value stays at 0."
    ::= { pduInput 5 }

pduInputVoltageUnits OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..31))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates whether the pduInputPhaseVoltage readings are 
         'Vrms Line-Line' or 'Vrms Line-Neutral'."
    ::= { pduInput 6 }

pduInputNumPhases OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of input phases for this PDU.
         This variable indicates the number of rows in the pduInputTable."
    ::= { pduInput 7 }

pduInputTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PduInputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of input table entries.  The number of entries
         is given by the value of pduInputNumPhases."
    ::= { pduInput 8 }

pduInputEntry OBJECT-TYPE
    SYNTAX     PduInputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing information applicable to a
         particular input phase."
    INDEX { pduInputPhaseIndex }
    ::= { pduInputTable 1 }

PduInputEntry ::= SEQUENCE {
    pduInputPhaseIndex        PositiveInteger,
    pduInputPhaseVoltage      NonNegativeInteger,
    pduInputPhaseCurrent      NonNegativeInteger,
    pduInputPhasePercentLoad  Integer32
    }

pduInputPhaseIndex OBJECT-TYPE
   SYNTAX     PositiveInteger
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
           "The input line identifier."
   ::= { pduInputEntry 1 }

pduInputPhaseVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Volts RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present input voltage for this phase."
    ::= { pduInputEntry 2 }

pduInputPhaseCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present input current for this phase."
   ::= { pduInputEntry 3 }

pduInputPhasePercentLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The percentage of the pdu power capacity presently
         being used on this line, normally based on the 
         ratio of pduInputPhaseCurrent to the rated input current."
    ::= { pduInputEntry 4 }


--
-- The Output Meters subgroup (of mainPdu group).
--

pduOutput OBJECT IDENTIFIER ::= { mainPdu 3 }

pduOutputKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hour value for the full PDU system
         since the last reset."
    ::= { pduOutput 1 }

pduOutputVA OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "VA"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present VA output of the full PDU system."
    ::= { pduOutput 2 }

pduOutputPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present output power of the full PDU system."
    ::= { pduOutput 3 }

pduOutputPowerFactor OBJECT-TYPE
    SYNTAX     Integer32 (-100..100)
    UNITS      "pf * 100"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The output power factor for the full PDU system.
         Varies from -1.00 to 1.00, multiplied by 100.
         If negative values are used, they indicate lagging pf."
    ::= { pduOutput 4 }

pduNeutralCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present current in the PDU's output neutral phase.
         Ideally, this value stays at 0."
    ::= { pduOutput 5 }

pduRatedOutputCurrent OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The rated current value for one PDU Output phase 
         at full load (100%)."
    ::= { pduOutput 6 }

pduOutputVoltageUnits OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..31))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates whether the pduOutputPhaseVoltage readings are 
         'Vrms Line-Line' or 'Vrms Line-Neutral'."
    ::= { pduOutput 7 }

pduOutputNumPhases OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of output phases for this PDU.
         This variable indicates the number of rows in the pduOutputTable."
    ::= { pduOutput 8 }

pduOutputTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PduOutputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of output table entries.  The number of
         entries is given by the value of pduOutputNumPhases."
    ::= { pduOutput 9 }

pduOutputEntry OBJECT-TYPE
    SYNTAX     PduOutputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing information applicable to a
         particular output phase."
    INDEX { pduOutputPhaseIndex }
    ::= { pduOutputTable 1 }

PduOutputEntry ::= SEQUENCE {
    pduOutputPhaseIndex       PositiveInteger,
    pduOutputPhaseVoltage     NonNegativeInteger,
    pduOutputPhaseCurrent     NonNegativeInteger,
    pduOutputPhasePercentLoad Integer32
    }

pduOutputPhaseIndex OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The output line identifier."
    ::= { pduOutputEntry 1 }

pduOutputPhaseVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Volts RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present output voltage for this phase."
    ::= { pduOutputEntry 2 }

pduOutputPhaseCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present output current for this phase."
    ::= { pduOutputEntry 3 }

pduOutputPhasePercentLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The percentage of the pdu power capacity presently
         being used on this line, normally based on the 
         ratio of pduOutputPhaseCurrent to pduRatedOutputCurrent."
    ::= { pduOutputEntry 4 }


--
-- The Panel Ratings Table
-- Indexed by the panel number, this table provides the nominal
--    values for each panel.  
-- The same panel number, panelNumber, is used as the index for 
--    the Panel Meters Table.
--

panelRatingsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PanelRatingsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially numbered) 
         table of ratings for each panel.  The number of
         entries is given by the value of pduNumPanels."
    ::= { pduPanel 1 }

panelRatingsEntry OBJECT-TYPE
    SYNTAX     PanelRatingsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing information applicable to a
         particular output phase."
    INDEX { panelNumber }
    ::= { panelRatingsTable 1 }

PanelRatingsEntry ::= SEQUENCE {
    panelNumber               PositiveInteger,
    panelRatedVoltage         PositiveInteger,
    panelRatedBreakerCurrent  PositiveInteger,
    panelNumPhases            PositiveInteger,
    panelNumBreakers          PositiveInteger,
    panelVoltageUnits         DisplayString 
    }

panelNumber OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Index for the Panel Ratings and Meters tables.
         Corresponds to the physical panel number in the
         PDU system.  
         There must be a #1.  The maximum value is 16.  
         Panels are not required to be numbered sequentially."
    ::= { panelRatingsEntry 1 }

panelRatedVoltage OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "Volts RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The nominal Voltage of this panel (as distributed 
         to the breakers or subfeeds).  
         This is either Line-to-Line or Line-to-Neutral,
         as indicated in panelVoltageUnits."
    ::= { panelRatingsEntry 2 }

panelRatedBreakerCurrent OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The rated current value for one panel (input) phase 
         at full load (100%).  This is set by the panel's 
         input breaker; if there is no input breaker for this
         panel, then this object is not accessible."
    ::= { panelRatingsEntry 3 }

panelNumPhases OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of lines (phases) for this panel."
    ::= { panelRatingsEntry 4 }

panelNumBreakers OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of breakers contained in this panel.
         This determines the number of rows found in the breaker tables."
    ::= { panelRatingsEntry 5 }

panelVoltageUnits OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..31))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Indicates whether the panelPhaseVoltage readings are 
         'Vrms Line-Line' or 'Vrms Line-Neutral'."
    ::= { panelRatingsEntry 6 }


--
-- The Panel Meters Table
-- Indexed by the panel number, this table provides the meters
--    for each panel that are not dependent on an individual phase.
-- panelNumber is used as the index for the Panel Meters Table.
--

panelMetersTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PanelMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially numbered) 
         table of ratings for each panel.  The number of
         entries is given by the value of pduNumPanels."
    ::= { pduPanel 2 }

panelMetersEntry OBJECT-TYPE
    SYNTAX     PanelMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing meter readings applicable to a
         particular panel."
    INDEX { panelNumber }
    ::= { panelMetersTable 1 }

PanelMetersEntry ::= SEQUENCE {
    panelTotalKilowattHours     NonNegativeInteger,
    panelMonthlyKilowattHours   NonNegativeInteger,
    panelYtdKilowattHours       NonNegativeInteger,
    panelVA                     NonNegativeInteger,
    panelPower                  NonNegativeInteger,
    panelPowerFactor            Integer32,
    panelNeutralCurrent         NonNegativeInteger
    }

panelTotalKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this panel
         since it was commissioned and put into service,
         or since the last reset of the system KHW measures."
    ::= { panelMetersEntry 1 }

panelMonthlyKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this panel
         since the beginning of this calendar month,
         or since the last reset of the system KHW measures."
    ::= { panelMetersEntry 2 }

panelYtdKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this panel
         since the beginning of this calendar year (YTD),
         or since the last reset of the system KHW measures."
    ::= { panelMetersEntry 3 }

panelVA OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "VA"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present VA (input) demand of this panel."
    ::= { panelMetersEntry 4 }

panelPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present power (input) demand of this panel."
    ::= { panelMetersEntry 5 }

panelPowerFactor OBJECT-TYPE
    SYNTAX     Integer32 (-100..100)
    UNITS      "pf * 100"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The input power factor for this panel.
         Varies from -1.00 to 1.00, multiplied by 100.
         If negative values are used, they indicate lagging pf."
    ::= { panelMetersEntry 6 }

panelNeutralCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present neutral phase current for this panel."
    ::= { panelMetersEntry 7 }



--
-- The Panel Phase Meters Table
-- Indexed by the panel number and phase, this table provides the meters
--    for each panel by phase.
--

panelPhaseMetersTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PanelPhaseMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially panel numbered) 
         table of ratings for each panel.  The number of
         entries is given by the sum of panelNumPhases for pduNumPanels."
    ::= { pduPanel 3 }

panelPhaseMetersEntry OBJECT-TYPE
    SYNTAX     PanelPhaseMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing meter readings applicable to a
         particular phase of a particular panel."
    INDEX { panelNumber, panelPhaseIndex }
    ::= { panelPhaseMetersTable 1 }

PanelPhaseMetersEntry ::= SEQUENCE {
    panelPhaseIndex        PositiveInteger,
    panelPhaseVoltage      NonNegativeInteger,
    panelPhaseCurrent      NonNegativeInteger,
    panelPhasePercentLoad  Integer32
    }

panelPhaseIndex OBJECT-TYPE
   SYNTAX     PositiveInteger
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
           "The line or phase identifier."
   ::= { panelPhaseMetersEntry 1 }

panelPhaseVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Volts RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present voltage for this phase."
    ::= { panelPhaseMetersEntry 2 }

panelPhaseCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present current for this phase."
   ::= { panelPhaseMetersEntry 3 }

panelPhasePercentLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The percentage of the panel power capacity presently
         being used on this line, normally based on the 
         ratio of panelPhaseCurrent to the rated phase current."
    ::= { panelPhaseMetersEntry 4 }



--
-- The Breaker Ratings Table
-- Indexed by the panel and breaker numbers, this table provides 
--    the nominal values for each breaker.  
-- The same breaker number, breakerNumber, is used as the index for 
--    the Breaker Meters Table.
-- The breaker number corresponds to the first physical panel 
--    position (slot) it occupies; for example, a 3 phase breaker at  
--    positions 2, 4, and 6 would have a breakerNumber of 2.
--

breakerRatingsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BreakerRatingsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially numbered) 
         table of ratings and fixed values for each breaker.  
         The number of entries is given by the value of 
         panelNumBreakers for this panel."
    ::= { pduBreaker 1 }

breakerRatingsEntry OBJECT-TYPE
    SYNTAX     BreakerRatingsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing information applicable to a
         particular output phase."
    INDEX { panelNumber, breakerNumber }
    ::= { breakerRatingsTable 1 }

BreakerRatingsEntry ::= SEQUENCE {
    breakerNumber         PositiveInteger,
    breakerName           DisplayString,
    breakerRatedCurrent   PositiveInteger,
    breakerNumPhases      PositiveInteger
    }

breakerNumber OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Index for the Breaker Ratings and Meters tables.
         Corresponds to the physical breaker number in the
         PDU system.  
         Breakers are not required to be numbered sequentially."
    ::= { breakerRatingsEntry 1 }

breakerName OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0..31))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Name given by the administrator to identify this breaker."
    ::= { breakerRatingsEntry 2 }

breakerRatedCurrent OBJECT-TYPE
    SYNTAX     PositiveInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The rated current value of this breaker (for one phase)
         at full load (100%)."
    ::= { breakerRatingsEntry 3 }

breakerNumPhases OBJECT-TYPE
    SYNTAX     PositiveInteger
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of lines (phases) for this breaker."
    ::= { breakerRatingsEntry 4 }


--
-- The Breaker Meters Table
-- Indexed by the panel and breaker number, this table provides 
--    the meters for each breaker that are not dependent on an 
--    individual phase.
-- panelNumber and breakerNumber are used as the indices for the 
--    Breaker Meters Table.
--

breakerMetersTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BreakerMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially numbered) 
         table of ratings for each breaker.  The number of
         entries is given by the value of panelNumBreakers
         for this panel."
    ::= { pduBreaker 2 }

breakerMetersEntry OBJECT-TYPE
    SYNTAX     BreakerMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing meter readings applicable to a
         particular breaker."
    INDEX { panelNumber, breakerNumber }
    ::= { breakerMetersTable 1 }

BreakerMetersEntry ::= SEQUENCE {
    breakerTotalKilowattHours   NonNegativeInteger,
    breakerMonthlyKilowattHours NonNegativeInteger,
    breakerYtdKilowattHours     NonNegativeInteger
    }

breakerTotalKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this breaker
         since it was commissioned and put into service,
         or since the last reset of the panel KHW measures."
    ::= { breakerMetersEntry 1 }

breakerMonthlyKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this breaker
         since the beginning of this calendar month,
         or since the last reset of the panel KHW measures."
    ::= { breakerMetersEntry 2 }

breakerYtdKilowattHours OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "KWH"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The accumulated kilowatt-hours for this breaker
         since the beginning of this calendar year (YTD),
         or since the last reset of the panel KHW measures."
    ::= { breakerMetersEntry 3 }




--
-- The Breaker Phase Meters Table
-- Indexed by the panel number, breaker number and phase, this table 
--    provides the meters for each breaker of a panel by phase.
--

breakerPhaseMetersTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BreakerPhaseMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A sparsely populated (ie, not sequentially breaker numbered) 
         table of ratings for each breaker.  The number of
         entries is given by the sum of breakerNumPhases for 
         panelNumBreakers for all panels (pduNumPanels)."
    ::= { pduBreaker 3 }

breakerPhaseMetersEntry OBJECT-TYPE
    SYNTAX     BreakerPhaseMetersEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing meter readings applicable to a particular
         phase of a particular breaker on a particular panel."
    INDEX { panelNumber, breakerNumber, breakerPhaseIndex }
    ::= { breakerPhaseMetersTable 1 }

BreakerPhaseMetersEntry ::= SEQUENCE {
    breakerPhaseIndex          PositiveInteger,
    breakerPhaseVA             NonNegativeInteger,
    breakerPhasePower          NonNegativeInteger,
    breakerPhasePowerFactor    Integer32,
    breakerPhaseCurrent        NonNegativeInteger,
    breakerPhasePercentLoad    Integer32
    }

breakerPhaseIndex OBJECT-TYPE
   SYNTAX     PositiveInteger
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
           "The line or phase identifier."
   ::= { breakerPhaseMetersEntry 1 }

breakerPhaseVA OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "VA"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present VA (input) demand of this phase on 
         this breaker."
    ::= { breakerPhaseMetersEntry 2 }

breakerPhasePower OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present power (input) demand of phase on 
         this breaker."
    ::= { breakerPhaseMetersEntry 3 }

breakerPhasePowerFactor OBJECT-TYPE
    SYNTAX     Integer32 (-100..100)
    UNITS      "pf * 100"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The input power factor for this phase on this breaker.
         Varies from -1.00 to 1.00, multiplied by 100.
         If negative values are used, they indicate lagging pf."
    ::= { breakerPhaseMetersEntry 4 }

breakerPhaseCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger
    UNITS      "0.1 Amps RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The present current for this phase of this breaker."
   ::= { breakerPhaseMetersEntry 5 }

breakerPhasePercentLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The percentage of the breaker power capacity presently
         being used on this line, normally based on the 
         ratio of breakerPhaseCurrent to the breakerRatedCurrent."
    ::= { breakerPhaseMetersEntry 6 }



--
-- Conformance-related definitions
--
eatonPduConformance OBJECT IDENTIFIER ::= { eatonPduMIB 2 }

pduNameplateGroup  OBJECT-GROUP
    OBJECTS { pduNumPhases, pduNominalOutputVoltage, pduRatingVA, 
              pduNumPanels }
    STATUS  current
    DESCRIPTION
        "The pduNameplate subgroup objects."
    ::= { eatonPduConformance 1 }

pduInputGroup  OBJECT-GROUP
    OBJECTS { pduFrequency, pduInputVA, pduInputPower, 
              pduInputPowerFactor, pduGroundCurrent, 
              pduInputVoltageUnits, pduInputNumPhases,
              pduInputPhaseVoltage, pduInputPhaseCurrent,
              pduInputPhasePercentLoad }
    STATUS  current
    DESCRIPTION
        "The pduInput Meters subgroup objects."
    ::= { eatonPduConformance 2 }

pduOutputGroup  OBJECT-GROUP
    OBJECTS { pduOutputKilowattHours, pduOutputVA, pduOutputPower,
              pduOutputPowerFactor, pduNeutralCurrent, 
              pduRatedOutputCurrent, pduOutputVoltageUnits, 
              pduOutputNumPhases,
              pduOutputPhaseVoltage, pduOutputPhaseCurrent, 
              pduOutputPhasePercentLoad }
    STATUS  current
    DESCRIPTION
        "The pduOutput Meters subgroup objects."
    ::= { eatonPduConformance 3 }

panelRatingsGroup  OBJECT-GROUP
    OBJECTS { panelRatedVoltage, panelRatedBreakerCurrent, 
              panelNumPhases, panelNumBreakers, panelVoltageUnits }
    STATUS  current
    DESCRIPTION
        "The panelRatings table objects."
    ::= { eatonPduConformance 4 }

panelMetersGroup  OBJECT-GROUP
    OBJECTS { panelTotalKilowattHours, panelMonthlyKilowattHours, 
              panelYtdKilowattHours, panelVA, panelPower, 
              panelPowerFactor, panelNeutralCurrent }
    STATUS  current
    DESCRIPTION
        "The BreakerMeters Table objects."
    ::= { eatonPduConformance 5 }

panelPhaseMetersGroup  OBJECT-GROUP
    OBJECTS { panelPhaseVoltage, panelPhaseCurrent, panelPhasePercentLoad }
    STATUS  current
    DESCRIPTION
        "The BreakerPhaseMeters Table objects."
    ::= { eatonPduConformance 6 }

breakerRatingsGroup  OBJECT-GROUP
    OBJECTS { breakerName, breakerRatedCurrent, breakerNumPhases }
    STATUS  current
    DESCRIPTION
        "The breakerRatings table objects."
    ::= { eatonPduConformance 7 }
    
breakerMetersGroup  OBJECT-GROUP
    OBJECTS { breakerTotalKilowattHours, breakerMonthlyKilowattHours, 
              breakerYtdKilowattHours }
    STATUS  current
    DESCRIPTION
        "The breakerMeters table objects."
    ::= { eatonPduConformance 8 }

breakerPhaseMetersGroup  OBJECT-GROUP
    OBJECTS { breakerPhaseVA, breakerPhasePower, breakerPhasePowerFactor,
              breakerPhaseCurrent, breakerPhasePercentLoad }
    STATUS  current
    DESCRIPTION
        "The breakerPhaseMeters table objects."
    ::= { eatonPduConformance 9 }

    

pdu3phaseCompliance MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION
       "The compliance statement for a normal 3-phase PDU, which implements 
        the full set of objects."
    MODULE -- this module
       MANDATORY-GROUPS  { pduNameplateGroup, pduInputGroup, pduOutputGroup,
                           panelRatingsGroup, panelMetersGroup, 
                           panelPhaseMetersGroup,
                           breakerRatingsGroup, breakerMetersGroup,
                           breakerPhaseMetersGroup  }
    ::= { eatonPduConformance 10 }



END

