-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Trend Micro, Inc.
-- Copyright information is in the DESCRIPTION section of the MODULE-IDENTITY.
-- 
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

TPT-HEALTH-MIB

DEFINITIONS ::= BEGIN

IMPORTS
  MODULE-IDENTITY, OBJECT-TYPE, 
  Unsigned32
    FROM SNMPv2-SMI

  TEXTUAL-CONVENTION
    FROM SNMPv2-TC

  tpt-tpa-objs
    FROM TPT-TPAMIBS-MIB
  ;

tpt-health-objs MODULE-IDENTITY
  LAST-UPDATED "201605251854Z" -- May 25, 2016
  ORGANIZATION "Trend Micro, Inc."
  CONTACT-INFO "www.trendmicro.com"
  DESCRIPTION
    "Health information: temperatures, fan speeds, and voltage levels.

     Copyright (C) 2016 Trend Micro Incorporated. All Rights Reserved.
     
     Trend Micro makes no warranty of any kind with regard to this material,
     including, but not limited to, the implied warranties of merchantability
     and fitness for a particular purpose. Trend Micro shall not be liable for
     errors contained herein or for incidental or consequential damages in
     connection with the furnishing, performance, or use of this material. This
     document contains proprietary information, which is protected by copyright. No
     part of this document may be photocopied, reproduced, or translated into
     another language without the prior written consent of Trend Micro. The
     information is provided 'as is' without warranty of any kind and is subject to
     change without notice. The only warranties for Trend Micro products and
     services are set forth in the express warranty statements accompanying such
     products and services. Nothing herein should be construed as constituting an
     additional warranty. Trend Micro shall not be liable for technical or editorial
     errors or omissions contained herein. TippingPoint(R), the TippingPoint logo, and
     Digital Vaccine(R) are registered trademarks of Trend Micro. All other company
     and product names may be trademarks of their respective holders. All rights
     reserved. This document contains confidential information, trade secrets or
     both, which are the property of Trend Micro. No part of this documentation may
     be reproduced in any form or by any means or used to make any derivative work
     (such as translation, transformation, or adaptation) without written permission
     from Trend Micro or one of its subsidiaries. All other company and product
     names may be trademarks of their respective holders.
    "

  REVISION "201605251854Z" -- May 25, 2016 
  DESCRIPTION "Updated copyright information. Minor MIB syntax fixes."
  
  ::= { tpt-tpa-objs 13 }

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Textual conventions for health objects
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HealthSeverity ::= TEXTUAL-CONVENTION
  STATUS      current
  DESCRIPTION 
    "A qualitative description of the state of a health value."
  SYNTAX      INTEGER { normal(0), info(1), minor(2), major(3), critical(4) }

HealthThresholdType ::= TEXTUAL-CONVENTION
  STATUS      current
  DESCRIPTION 
    "How to apply thresholds to see if a value is operating correctly:
      - minimum: value should not go below thresholds.
      - range:   value should be within nominal plus or minus thresholds.
      - maximum: value should not go above thresholds."
  SYNTAX      INTEGER { minimum(1), range(2), maximum(3) }

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Table of temperatures
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

healthTempTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF HealthTempEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Table of temperatures at various places inside the device."
  ::= { tpt-health-objs 1 }  

healthTempEntry OBJECT-TYPE
  SYNTAX      HealthTempEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the temperature table.
     Rows cannot be created or deleted."
  INDEX       { healthTempIndex }
  ::= { healthTempTable 1 }

HealthTempEntry ::= SEQUENCE {
  healthTempIndex           Unsigned32,
  healthTempChannel         OCTET STRING (SIZE (0..64)),
  healthTempValue           Unsigned32,
  healthTempSeverity        HealthSeverity,
  healthTempThresholdType   HealthThresholdType,
  healthTempMajor           Unsigned32,
  healthTempCritical        Unsigned32
}

healthTempIndex OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Index into the temperature table, starting with 1."
  ::= { healthTempEntry 1 }

healthTempChannel OBJECT-TYPE
  SYNTAX      OCTET STRING (SIZE (0..64))
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "String description of the location of this temperature sensor."
  ::= { healthTempEntry 2 }

healthTempValue OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The temperature in degrees centigrade at this sensor."
  ::= { healthTempEntry 3 }

healthTempSeverity OBJECT-TYPE
  SYNTAX      HealthSeverity
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Whether this temperature is normal or too hot."
  ::= { healthTempEntry 4 }

healthTempThresholdType OBJECT-TYPE
  SYNTAX      HealthThresholdType
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "How to apply thresholds to see if this value is within operating range."
  ::= { healthTempEntry 5 }

healthTempMajor OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The major threshold temperature (degrees C)."
  ::= { healthTempEntry 6 }

healthTempCritical OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The critical threshold temperature (degrees C)."
  ::= { healthTempEntry 7 }

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Table of fans
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

healthFanTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF HealthFanEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Table of fans for the device."
  ::= { tpt-health-objs 2 }  

healthFanEntry OBJECT-TYPE
  SYNTAX      HealthFanEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the fan table.
     Rows cannot be created or deleted."
  INDEX       { healthFanIndex }
  ::= { healthFanTable 1 }

HealthFanEntry ::= SEQUENCE {
  healthFanIndex           Unsigned32,
  healthFanChannel         OCTET STRING (SIZE (0..64)),
  healthFanValue           Unsigned32,
  healthFanSeverity        HealthSeverity,
  healthFanThresholdType   HealthThresholdType,
  healthFanMajor           Unsigned32,
  healthFanCritical        Unsigned32
}

healthFanIndex OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Index into the fan table, starting with 1."
  ::= { healthFanEntry 1 }

healthFanChannel OBJECT-TYPE
  SYNTAX      OCTET STRING (SIZE (0..64))
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "Identifier of this fan."
  ::= { healthFanEntry 2 }

healthFanValue OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The speed of this fan in RPM."
  ::= { healthFanEntry 3 }

healthFanSeverity OBJECT-TYPE
  SYNTAX      HealthSeverity
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Whether this fan speed is normal or too slow."
  ::= { healthFanEntry 4 }

healthFanThresholdType OBJECT-TYPE
  SYNTAX      HealthThresholdType
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "How to apply thresholds to see if this value is within operating range."
  ::= { healthFanEntry 5 }

healthFanMajor OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The major threshold fan speed (RPM)."
  ::= { healthFanEntry 6 }

healthFanCritical OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The critical threshold fan speed (RPM)."
  ::= { healthFanEntry 7 }

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Table of voltages
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

healthVoltageTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF HealthVoltageEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Table of voltages at various places inside the device."
  ::= { tpt-health-objs 3 }  

healthVoltageEntry OBJECT-TYPE
  SYNTAX      HealthVoltageEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the voltage table.
     Rows cannot be created or deleted."
  INDEX       { healthVoltageIndex }
  ::= { healthVoltageTable 1 }

HealthVoltageEntry ::= SEQUENCE {
  healthVoltageIndex           Unsigned32,
  healthVoltageChannel         OCTET STRING (SIZE (0..64)),
  healthVoltageValue           Unsigned32,
  healthVoltageSeverity        HealthSeverity,
  healthVoltageThresholdType   HealthThresholdType,
  healthVoltageMajor           Unsigned32,
  healthVoltageCritical        Unsigned32,
  healthVoltageNominal         Unsigned32
}

healthVoltageIndex OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Index into the voltage table, starting with 1."
  ::= { healthVoltageEntry 1 }

healthVoltageChannel OBJECT-TYPE
  SYNTAX      OCTET STRING (SIZE (0..64))
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "String description of the location of this voltage sensor."
  ::= { healthVoltageEntry 2 }

healthVoltageValue OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The voltage reading in millivolts at this sensor."
  ::= { healthVoltageEntry 3 }

healthVoltageSeverity OBJECT-TYPE
  SYNTAX      HealthSeverity
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Whether this voltage is within the normal operating range or not."
  ::= { healthVoltageEntry 4 }

healthVoltageThresholdType OBJECT-TYPE
  SYNTAX      HealthThresholdType
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "How to apply thresholds to see if this value is within operating range."
  ::= { healthVoltageEntry 5 }

healthVoltageMajor OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The major threshold voltage (mV) delta (above or below nominal)."
  ::= { healthVoltageEntry 6 }

healthVoltageCritical OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The critical threshold voltage (mV) delta (above or below nominal)."
  ::= { healthVoltageEntry 7 }

healthVoltageNominal OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "What the voltage (mV) reading at this sensor should be."
  ::= { healthVoltageEntry 8 }

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- Table of I2C bus timeouts
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

healthI2CTable OBJECT-TYPE
  SYNTAX      SEQUENCE OF HealthI2CEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Table of I2C bus timsouts."
  ::= { tpt-health-objs 4 }  

healthI2CEntry OBJECT-TYPE
  SYNTAX      HealthI2CEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "An entry in the I2C bus table.
     Rows cannot be created or deleted."
  INDEX       { healthI2CIndex }
  ::= { healthI2CTable 1 }

HealthI2CEntry ::= SEQUENCE {
  healthI2CIndex           Unsigned32,
  healthI2CChannel         OCTET STRING (SIZE (0..64)),
  healthI2CValue           Unsigned32,
  healthI2CSeverity        HealthSeverity,
  healthI2CThresholdType   HealthThresholdType,
  healthI2CMajor           Unsigned32,
  healthI2CCritical        Unsigned32
}

healthI2CIndex OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION 
    "Index into the I2C bus table, starting with 1."
  ::= { healthI2CEntry 1 }

healthI2CChannel OBJECT-TYPE
  SYNTAX      OCTET STRING (SIZE (0..64))
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION 
    "String description of this I2C bus."
  ::= { healthI2CEntry 2 }

healthI2CValue OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The number of timeouts on this I2C bus since boot."
  ::= { healthI2CEntry 3 }

healthI2CSeverity OBJECT-TYPE
  SYNTAX      HealthSeverity
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Whether this number of I2C bus timeouts is acceptable or excessive."
  ::= { healthI2CEntry 4 }

healthI2CThresholdType OBJECT-TYPE
  SYNTAX      HealthThresholdType
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "How to apply thresholds to see if this value is within operating range."
  ::= { healthI2CEntry 5 }

healthI2CMajor OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The major threshold number of I2C bus timeouts."
  ::= { healthI2CEntry 6 }

healthI2CCritical OBJECT-TYPE
  SYNTAX      Unsigned32
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "The critical threshold number of I2C bus timeouts."
  ::= { healthI2CEntry 7 }


END

