From a02312eccfbe95b89ed133f3f179bf32ba8c408a Mon Sep 17 00:00:00 2001 From: Rosiak Date: Wed, 27 Jul 2016 18:48:39 +0200 Subject: [PATCH 1/6] Initial commit --- .../discovery/sensors/current/comware.inc.php | 39 ++++++++++++ .../discovery/sensors/dbm/comware.inc.php | 63 +++++++++++++++++++ .../sensors/pre-cache/comware.inc.php | 23 +++++++ .../sensors/temperatures/comware.inc.php | 33 ++++++++-- .../sensors/voltages/comware.inc.php | 39 ++++++++++++ 5 files changed, 193 insertions(+), 4 deletions(-) create mode 100644 includes/discovery/sensors/current/comware.inc.php create mode 100644 includes/discovery/sensors/dbm/comware.inc.php create mode 100644 includes/discovery/sensors/pre-cache/comware.inc.php create mode 100644 includes/discovery/sensors/voltages/comware.inc.php diff --git a/includes/discovery/sensors/current/comware.inc.php b/includes/discovery/sensors/current/comware.inc.php new file mode 100644 index 0000000000..9a3dbe5561 --- /dev/null +++ b/includes/discovery/sensors/current/comware.inc.php @@ -0,0 +1,39 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'comware') { + echo 'Comware '; + + $multiplier = 1; + $divisor = 100000; + $divisor_alarm = 1000000; + foreach ($comware_oids as $index => $entry) { + if (is_numeric($entry['hh3cTransceiverBiasCurrent']) && $entry['hh3cTransceiverBiasCurrent'] != 2147483647) { + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.17.15.' . $index; + $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( + $index, + $device['device_id'] + )); + $limit_low = $entry['hh3cTransceiverBiasLoAlarm'] / $divisor_alarm; + $warn_limit_low = $entry['hh3cTransceiverBiasLoWarn'] / $divisor_alarm; + $limit = $entry['hh3cTransceiverBiasHiAlarm'] / $divisor_alarm; + $warn_limit = $entry['hh3cTransceiverBiasHiWarn'] / $divisor_alarm; + $current = $entry['hh3cTransceiverBiasCurrent'] / $divisor; + $entPhysicalIndex = $index; + $entPhysicalIndex_measured = 'ports'; + foreach ($dbquery as $dbindex => $dbresult) { + $descr = $dbresult['ifDescr'] . ' Bias Current'; + discover_sensor($valid['sensor'], 'current', $device, $oid, 'bias-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + } + } + } +} diff --git a/includes/discovery/sensors/dbm/comware.inc.php b/includes/discovery/sensors/dbm/comware.inc.php new file mode 100644 index 0000000000..ae7aae14e3 --- /dev/null +++ b/includes/discovery/sensors/dbm/comware.inc.php @@ -0,0 +1,63 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'comware') { + echo 'Comware '; + + // Based on 10G_BASE_LR_SFP, as HP does not provide threshold values through snmp + // Alarm thresholds: + // RX power(dBm) TX power(dBm) + // 2.50 3.50 + // -12.30 -11.20 + + $multiplier = 1; + $divisor = 100; + foreach ($comware_oids as $index => $entry) { + if (is_numeric($entry['hh3cTransceiverCurRXPower']) && $entry['hh3cTransceiverCurRXPower'] != 2147483647) { + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.12.' . $index; + $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( + $index, + $device['device_id'] + )); + $limit_low = -30; + $warn_limit_low = -12.3; + $limit = 2.5; + $warn_limit = -3; + $current = $entry['hh3cTransceiverCurRXPower'] / $divisor; + $entPhysicalIndex = $index; + $entPhysicalIndex_measured = 'ports'; + foreach ($dbquery as $dbindex => $dbresult) { + $descr = $dbresult['ifDescr'] . ' Rx Power'; + discover_sensor($valid['sensor'], 'dbm', $device, $oid, 'rx-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + } + } + + if (is_numeric($entry['hh3cTransceiverCurTXPower']) && $entry['hh3cTransceiverCurTXPower'] != 2147483647) { + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.9.' . $index; + $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( + $index, + $device['device_id'] + )); + $limit_low = -30; + $warn_limit_low = -11.2; + $limit = 3.5; + $warn_limit = -3; + $current = $entry['hh3cTransceiverCurTXPower'] / $divisor; + $entPhysicalIndex = $index; + $entPhysicalIndex_measured = 'ports'; + foreach ($dbquery as $dbindex => $dbresult) { + $descr = $dbresult['ifDescr'] . ' Tx Power'; + discover_sensor($valid['sensor'], 'dbm', $device, $oid, 'tx-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + } + } + } +} diff --git a/includes/discovery/sensors/pre-cache/comware.inc.php b/includes/discovery/sensors/pre-cache/comware.inc.php new file mode 100644 index 0000000000..ba6b1b7150 --- /dev/null +++ b/includes/discovery/sensors/pre-cache/comware.inc.php @@ -0,0 +1,23 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'comware') { + + echo 'Pre-cache Comware: '; + + $junos_oids = array(); + echo 'Caching OIDs:'; + + $comware_oids = snmpwalk_cache_multi_oid($device, 'hh3cTransceiverInfoTable', $oids, 'HH3C-TRANSCEIVER-INFO-MIB'); + +} + diff --git a/includes/discovery/sensors/temperatures/comware.inc.php b/includes/discovery/sensors/temperatures/comware.inc.php index eb107cc0f6..03129f74f8 100644 --- a/includes/discovery/sensors/temperatures/comware.inc.php +++ b/includes/discovery/sensors/temperatures/comware.inc.php @@ -11,18 +11,19 @@ */ if ($device['os'] == 'comware') { + echo 'Comware '; $entphydata = dbFetchRows("SELECT `entPhysicalIndex`, `entPhysicalClass`, `entPhysicalName` FROM `entPhysical` WHERE `device_id` = ? AND `entPhysicalClass` REGEXP 'module|sensor' ORDER BY `entPhysicalIndex`", array( $device['device_id'] )); if (!empty($entphydata)) { - - $tempdata = snmpwalk_cache_multi_oid($device, 'hh3cEntityExtTemperature', array(), 'HH3C-ENTITY-EXT-MIB'); - + + $tempdata = snmpwalk_cache_multi_oid($device, 'hh3cEntityExtTemperature', array(), 'HH3C-ENTITY-EXT-MIB'); + foreach ($entphydata as $index) { foreach ($tempdata as $tempindex => $value) { - if ($index['entPhysicalIndex'] == $tempindex) { + if ($index['entPhysicalIndex'] == $tempindex && $value['hh3cEntityExtTemperature'] != 65535) { $cur_oid = '.1.3.6.1.4.1.25506.2.6.1.1.1.1.12.'; discover_sensor($valid['sensor'], 'temperature', $device, $cur_oid . $tempindex, $tempindex, 'comware', $index['entPhysicalName'], '1', '1', null, null, null, null, $value['hh3cEntityExtTemperature'], 'snmp', $index); } @@ -30,4 +31,28 @@ if ($device['os'] == 'comware') { } } + + $multiplier = 1; + $divisor = 1; + $divisor_alarm = 1000; + foreach ($comware_oids as $index => $entry) { + if (is_numeric($entry['hh3cTransceiverTemperature']) && $entry['hh3cTransceiverTemperature'] != 2147483647) { + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.15.' . $index; + $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( + $index, + $device['device_id'] + )); + $limit_low = $entry[' hh3cTransceiverTempLoAlarm'] / $divisor_alarm; + $warn_limit_low = $entry[' hh3cTransceiverTempLoWarn'] / $divisor_alarm; + $limit = $entry[' hh3cTransceiverTempHiAlarm'] / $divisor_alarm; + $warn_limit = $entry[' hh3cTransceiverTempHiWarn'] / $divisor_alarm; + $current = $entry['hh3cTransceiverTemperature']; + $entPhysicalIndex = $index; + $entPhysicalIndex_measured = 'ports'; + foreach ($dbquery as $dbindex => $dbresult) { + $descr = $dbresult['ifDescr'] . ' Temperature'; + discover_sensor($valid['sensor'], 'temperature', $device, $oid, 'rx-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + } + } + } } diff --git a/includes/discovery/sensors/voltages/comware.inc.php b/includes/discovery/sensors/voltages/comware.inc.php new file mode 100644 index 0000000000..39157a8a65 --- /dev/null +++ b/includes/discovery/sensors/voltages/comware.inc.php @@ -0,0 +1,39 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'comware') { + echo 'Comware '; + + $multiplier = 1; + $divisor = 100; + $divisor_alarm = 10000; + foreach ($comware_oids as $index => $entry) { + if (is_numeric($entry['hh3cTransceiverVoltage']) && $entry['hh3cTransceiverVoltage'] != 2147483647) { + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.16.' . $index; + $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( + $index, + $device['device_id'] + )); + $limit_low = $entry['hh3cTransceiverVccLoAlarm'] / $divisor_alarm; + $warn_limit_low = $entry['hh3cTransceiverVccLoWarn'] / $divisor_alarm; + $limit = $entry['hh3cTransceiverVccHiAlarm'] / $divisor_alarm; + $warn_limit = $entry['hh3cTransceiverVccHiWarn'] / $divisor_alarm; + $current = $entry['hh3cTransceiverVoltage'] / $divisor; + $entPhysicalIndex = $index; + $entPhysicalIndex_measured = 'ports'; + foreach ($dbquery as $dbindex => $dbresult) { + $descr = $dbresult['ifDescr'] . ' Voltage'; + discover_sensor($valid['sensor'], 'voltage', $device, $oid, 'volt-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + } + } + } +} From a162fe747ca856aacefae7a783deb2f9f2cd0f71 Mon Sep 17 00:00:00 2001 From: Rosiak Date: Wed, 27 Jul 2016 18:55:38 +0200 Subject: [PATCH 2/6] Add mib --- mibs/HH3C-TRANSCEIVER-INFO-MIB | 635 +++++++++++++++++++++++++++++++++ 1 file changed, 635 insertions(+) create mode 100755 mibs/HH3C-TRANSCEIVER-INFO-MIB diff --git a/mibs/HH3C-TRANSCEIVER-INFO-MIB b/mibs/HH3C-TRANSCEIVER-INFO-MIB new file mode 100755 index 0000000000..4eb17db5a5 --- /dev/null +++ b/mibs/HH3C-TRANSCEIVER-INFO-MIB @@ -0,0 +1,635 @@ +--=========================================================== +-- Copyright (c) 2004-2015 Hangzhou H3C Tech. Co., Ltd. All rights reserved. +-- +-- Description: Transceiver MIB +-- Reference: IF-MIB +-- Version: V1.5 +-- History: +-- V1.0 created by liuhongxu and zoudian. +-- Initial version 2006-01-10 +-- V1.1 2006-06-08 Updated by chenzhaojie +-- Change description of hh3cTransceiverWaveLength +-- V1.2 2009-12-29 Updated by jinyi +-- Add the objects of hh3cTransceiverDiagnostic, hh3cTransceiverCurTXPower, +-- hh3cTransceiverMaxTXPower, hh3cTransceiverMinTXPower, hh3cTransceiverCurRXPower, +-- hh3cTransceiverMaxRXPower, hh3cTransceiverMinRXPower, hh3cTransceiverTemperature, +-- hh3cTransceiverVoltage, hh3cTransceiverBiasCurrent +-- V1.3 2012-06-06 Updated by jixugang +-- Add the objects of hh3cTransceiverTempHiAlarm, hh3cTransceiverTempLoAlarm, +-- hh3cTransceiverTempHiWarn, hh3cTransceiverTempLoWarn, hh3cTransceiverVccHiAlarm, +-- hh3cTransceiverVccLoAlarm, hh3cTransceiverVccHiWarn, hh3cTransceiverVccLoWarn, +-- hh3cTransceiverBiasHiAlarm, hh3cTransceiverBiasLoAlarm, hh3cTransceiverBiasHiWarn, +-- hh3cTransceiverBiasLoWarn, hh3cTransceiverPwrOutHiAlarm, hh3cTransceiverPwrOutLoAlarm, +-- hh3cTransceiverPwrOutHiWarn, hh3cTransceiverPwrOutLoWarn, hh3cTransceiverRcvPwrHiAlarm, +-- hh3cTransceiverRcvPwrLoAlarm, hh3cTransceiverRcvPwrHiWarn, hh3cTransceiverRcvPwrLoWarn, +-- hh3cTransceiverErrors +-- V1.4 2013-06-06 Updated by chenyixian +-- Add hh3cTransceiverChannelTable to transceiver channel statistics. +-- V1.5 2014-08-11 Updated by SongHao +-- Add hh3cTransceiverVendorOUI and hh3cTransceiverRevisionNumber. +--================================================================= +HH3C-TRANSCEIVER-INFO-MIB DEFINITIONS ::= BEGIN +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32 + FROM SNMPv2-SMI + TruthValue + FROM SNMPv2-TC + ifIndex + FROM IF-MIB + hh3cCommon + FROM HH3C-OID-MIB; + + hh3cTransceiver MODULE-IDENTITY + LAST-UPDATED "201408111050Z" + ORGANIZATION + "Hangzhou H3C Technologies Co., Ltd." + CONTACT-INFO + "Platform Team Hangzhou H3C Technologies Co., Ltd. + Hai-Dian District Beijing P.R. China + http://www.h3c.com + Zip:100085" + DESCRIPTION + "The objects in this MIB module are used to display the + information of transceiver on interface." + REVISION "201408111050Z" + DESCRIPTION + "Add hh3cTransceiverVendorOUI and hh3cTransceiverRevisionNumber." + REVISION "201306060000Z" + DESCRIPTION + "Add hh3cTransceiverChannelTable to transceiver channel statistics." + REVISION "201206060000Z" + DESCRIPTION + "Add the objects of hh3cTransceiverTempHiAlarm, hh3cTransceiverTempLoAlarm, + hh3cTransceiverTempHiWarn, hh3cTransceiverTempLoWarn, hh3cTransceiverVccHiAlarm, + hh3cTransceiverVccLoAlarm, hh3cTransceiverVccHiWarn, hh3cTransceiverVccLoWarn, + hh3cTransceiverBiasHiAlarm, hh3cTransceiverBiasLoAlarm, hh3cTransceiverBiasHiWarn, + hh3cTransceiverBiasLoWarn, hh3cTransceiverPwrOutHiAlarm, hh3cTransceiverPwrOutLoAlarm, + hh3cTransceiverPwrOutHiWarn, hh3cTransceiverPwrOutLoWarn, hh3cTransceiverRcvPwrHiAlarm, + hh3cTransceiverRcvPwrLoAlarm, hh3cTransceiverRcvPwrHiWarn, hh3cTransceiverRcvPwrLoWarn, + hh3cTransceiverErrors." + REVISION "200912290000Z" + DESCRIPTION + "Add the objects of hh3cTransceiverDiagnostic, hh3cTransceiverCurTXPower, + hh3cTransceiverMaxTXPower, hh3cTransceiverMinTXPower, hh3cTransceiverCurRXPower, + hh3cTransceiverMaxRXPower, hh3cTransceiverMinRXPower, hh3cTransceiverTemperature, + hh3cTransceiverVoltage, hh3cTransceiverBiasCurrent." + REVISION "200606080000Z" + DESCRIPTION + "Change description of hh3cTransceiverWaveLength." + REVISION "200601100000Z" + DESCRIPTION + "The initial revision of this MIB module." + ::= { hh3cCommon 70 } + + hh3cTransceiverInfoAdm OBJECT IDENTIFIER ::= { hh3cTransceiver 1 } + + hh3cTransceiverInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF Hh3cTransceiverInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table shows transceiver information on an interface." + ::= { hh3cTransceiverInfoAdm 1 } + + hh3cTransceiverInfoEntry OBJECT-TYPE + SYNTAX Hh3cTransceiverInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry of the hh3cTransceiverInfoTable." + INDEX { ifIndex } + ::= { hh3cTransceiverInfoTable 1 } + + Hh3cTransceiverInfoEntry ::= + SEQUENCE { + hh3cTransceiverHardwareType OCTET STRING, + hh3cTransceiverType OCTET STRING, + hh3cTransceiverWaveLength Integer32, + hh3cTransceiverVendorName OCTET STRING, + hh3cTransceiverSerialNumber OCTET STRING, + hh3cTransceiverFiberDiameterType INTEGER, + hh3cTransceiverTransferDistance Integer32, + hh3cTransceiverDiagnostic TruthValue, + hh3cTransceiverCurTXPower Integer32, + hh3cTransceiverMaxTXPower Integer32, + hh3cTransceiverMinTXPower Integer32, + hh3cTransceiverCurRXPower Integer32, + hh3cTransceiverMaxRXPower Integer32, + hh3cTransceiverMinRXPower Integer32, + hh3cTransceiverTemperature Integer32, + hh3cTransceiverVoltage Integer32, + hh3cTransceiverBiasCurrent Integer32, + hh3cTransceiverTempHiAlarm Integer32, + hh3cTransceiverTempLoAlarm Integer32, + hh3cTransceiverTempHiWarn Integer32, + hh3cTransceiverTempLoWarn Integer32, + hh3cTransceiverVccHiAlarm Integer32, + hh3cTransceiverVccLoAlarm Integer32, + hh3cTransceiverVccHiWarn Integer32, + hh3cTransceiverVccLoWarn Integer32, + hh3cTransceiverBiasHiAlarm Integer32, + hh3cTransceiverBiasLoAlarm Integer32, + hh3cTransceiverBiasHiWarn Integer32, + hh3cTransceiverBiasLoWarn Integer32, + hh3cTransceiverPwrOutHiAlarm Integer32, + hh3cTransceiverPwrOutLoAlarm Integer32, + hh3cTransceiverPwrOutHiWarn Integer32, + hh3cTransceiverPwrOutLoWarn Integer32, + hh3cTransceiverRcvPwrHiAlarm Integer32, + hh3cTransceiverRcvPwrLoAlarm Integer32, + hh3cTransceiverRcvPwrHiWarn Integer32, + hh3cTransceiverRcvPwrLoWarn Integer32, + hh3cTransceiverErrors BITS, + hh3cTransceiverVendorOUI OCTET STRING, + hh3cTransceiverRevisionNumber OCTET STRING + } + + hh3cTransceiverHardwareType OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hardware type of the interface, such as SM(single mode)." + ::= { hh3cTransceiverInfoEntry 1 } + + hh3cTransceiverType OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of the interface, such as SFP/XFP/GBIC." + ::= { hh3cTransceiverInfoEntry 2 } + + hh3cTransceiverWaveLength OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Wave length of the interface, measured in nanometer." + ::= { hh3cTransceiverInfoEntry 3 } + + hh3cTransceiverVendorName OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Vendor name of the interface." + ::= { hh3cTransceiverInfoEntry 4 } + + hh3cTransceiverSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the interface." + ::= { hh3cTransceiverInfoEntry 5 } + + hh3cTransceiverFiberDiameterType OBJECT-TYPE + SYNTAX INTEGER + { + fiber9(1), + fiber50(2), + fiber625(3), + copper(4), + unknown(65535) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The diameter of the fiber, measured in micron. + fiber9 - 9 micron multi-mode fiber + fiber50 - 50 micron multi-mode fiber + fiber625 - 62.5 micron multi-mode fiber + copper - copper cable." + ::= { hh3cTransceiverInfoEntry 6 } + + hh3cTransceiverTransferDistance OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum distance which the interface can transmit, + measured in meter." + ::= { hh3cTransceiverInfoEntry 7 } + + hh3cTransceiverDiagnostic OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the digital diagnostic monitoring function." + ::= { hh3cTransceiverInfoEntry 8 } + + hh3cTransceiverCurTXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current transmitted power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 9 } + + hh3cTransceiverMaxTXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the maximum transmitted power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 10 } + + hh3cTransceiverMinTXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the minimum transmitted power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 11 } + + hh3cTransceiverCurRXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current received power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 12 } + + hh3cTransceiverMaxRXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the maximum received power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 13 } + + hh3cTransceiverMinRXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the minimum received power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverInfoEntry 14 } + + hh3cTransceiverTemperature OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current temperature. + The unit is Celsius centigrade." + ::= { hh3cTransceiverInfoEntry 15 } + + hh3cTransceiverVoltage OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current voltage. + The unit is in hundredths of V" + ::= { hh3cTransceiverInfoEntry 16 } + + hh3cTransceiverBiasCurrent OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current bias electric current. + The unit is in hundredths of mA" + ::= { hh3cTransceiverInfoEntry 17 } + + hh3cTransceiverTempHiAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver temperature high alarm threshold + limit in thousandths of degrees Celsius. + As an example: 49120 is 49.120 degrees Celsius." + ::= { hh3cTransceiverInfoEntry 18 } + + hh3cTransceiverTempLoAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver temperature low alarm threshold + limit in thousandths of degrees Celsius. + As an example: 49120 is 49.120 degrees Celsius." + ::= { hh3cTransceiverInfoEntry 19 } + + hh3cTransceiverTempHiWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver temperature high warning threshold + limit in thousandths of degrees Celsius. + As an example: 49120 is 49.120 degrees Celsius." + ::= { hh3cTransceiverInfoEntry 20 } + + hh3cTransceiverTempLoWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver temperature low warning threshold + limit in thousandths of degrees Celsius. + As an example: 49120 is 49.120 degrees Celsius." + ::= { hh3cTransceiverInfoEntry 21 } + + hh3cTransceiverVccHiAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver VCC high alarm threshold + limit in hundreds of microvolts. + As an example: 32928 is 3.2928 volts. + Returns zero if not supported on the transceiver." + ::= { hh3cTransceiverInfoEntry 22 } + + hh3cTransceiverVccLoAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver VCC low alarm threshold + limit in hundreds of microvolts. + As an example: 32928 is 3.2928 volts. + Returns zero if not supported on the transceiver." + ::= { hh3cTransceiverInfoEntry 23 } + + hh3cTransceiverVccHiWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver VCC high warning threshold + limit in hundreds of microvolts. + As an example: 32928 is 3.2928 volts. + Returns zero if not supported on the transceiver." + ::= { hh3cTransceiverInfoEntry 24 } + + hh3cTransceiverVccLoWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver VCC low warning threshold + limit in hundreds of microvolts. + As an example: 32928 is 3.2928 volts. + Returns zero if not supported on the transceiver." + ::= { hh3cTransceiverInfoEntry 25 } + + hh3cTransceiverBiasHiAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver bias high alarm threshold limit in microamps." + ::= { hh3cTransceiverInfoEntry 26 } + + hh3cTransceiverBiasLoAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver bias low alarm threshold limit in microamps." + ::= { hh3cTransceiverInfoEntry 27 } + + hh3cTransceiverBiasHiWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver bias high warning threshold limit in microamps." + ::= { hh3cTransceiverInfoEntry 28 } + + hh3cTransceiverBiasLoWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver bias low warning threshold limit in microamps." + ::= { hh3cTransceiverInfoEntry 29 } + + hh3cTransceiverPwrOutHiAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver transmit power high alarm + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 30 } + + hh3cTransceiverPwrOutLoAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver transmit power low alarm + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 31 } + + hh3cTransceiverPwrOutHiWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver transmit power high warning + threshold limit in tenths of microwatts + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 32 } + + hh3cTransceiverPwrOutLoWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver transmit power low warning + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 33 } + + hh3cTransceiverRcvPwrHiAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver receive power high alarm + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 34 } + + hh3cTransceiverRcvPwrLoAlarm OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver receive power low alarm + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 35 } + + hh3cTransceiverRcvPwrHiWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver receive power high warning + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 36 } + + hh3cTransceiverRcvPwrLoWarn OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transceiver receive power low warning + threshold limit in tenths of microwatts. + As an example: 10000 is 1 milliwatt." + ::= { hh3cTransceiverInfoEntry 37 } + + hh3cTransceiverErrors OBJECT-TYPE + SYNTAX BITS + { + xcvrIOError(0), + xcvrChecksum(1), + xcvrTypeAndPortConfigMismatch(2), + xcvrTypeNotSupported(3), + wisLocalFault(4), + rcvOpticalPowerFault(5), + pmapmdReceiverLocalFault(6), + pcsReceiveLocalFault(7), + phyXSReceiveLocalFault(8), + laserBiasCurrentFault(9), + laserTemperatureFault(10), + laserOutputPowerFault(11), + txFault(12), + pmapmdTransmitterLocalFault(13), + pcsTransmitLocalFault(14), + phyXSTransmitLocalFault(15), + rxLossOfSignal(16) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bitmask indicating transceiver errors. + Transceiver information I/O error(0) + Transceiver information checksum error(1) + Transceiver type and port configuration mismatch(2) + Transceiver type not supported by port hardware(3) + WIS local fault(4) + Receive optical power fault(5) + PMA/PMD receiver local fault(6) + PCS receive local fault(7) + PHY XS receive local fault(8) + Laser bias current fault(9) + Laser temperature fault(10) + Laser output power fault(11) + TX fault(12) + PMA/PMD transmitter local fault(13) + PCS transmit local fault(14) + PHY XS Transmit Local Fault(15) + RX loss of signal(16) + Unused(17-31)" + ::= { hh3cTransceiverInfoEntry 38 } + + hh3cTransceiverVendorOUI OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Vendor OUI of the interface." + ::= { hh3cTransceiverInfoEntry 39 } + + hh3cTransceiverRevisionNumber OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Revision number of the interface." + ::= { hh3cTransceiverInfoEntry 40 } + + +-- Transceiver Channel Table + + hh3cTransceiverChannelTable OBJECT-TYPE + SYNTAX SEQUENCE OF Hh3cTransceiverChannelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table provides statistics about transceiver with multi-channel." + ::= { hh3cTransceiverInfoAdm 2 } + + hh3cTransceiverChannelEntry OBJECT-TYPE + SYNTAX Hh3cTransceiverChannelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry of the hh3cTransceiverChannelTable." + INDEX { ifIndex, hh3cTransceiverChannelIndex } + ::= { hh3cTransceiverChannelTable 1 } + + Hh3cTransceiverChannelEntry ::= + SEQUENCE { + hh3cTransceiverChannelIndex Integer32, + hh3cTransceiverChannelCurTXPower Integer32, + hh3cTransceiverChannelCurRXPower Integer32, + hh3cTransceiverChannelTemperature Integer32, + hh3cTransceiverChannelBiasCurrent Integer32 + } + + hh3cTransceiverChannelIndex OBJECT-TYPE + SYNTAX Integer32(1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The channel index of transceiver. + Indicating one channel of the interface." + ::= { hh3cTransceiverChannelEntry 1 } + + hh3cTransceiverChannelCurTXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current transmission power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverChannelEntry 2 } + + hh3cTransceiverChannelCurRXPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current received power. + The unit is in hundredths of dBM." + ::= { hh3cTransceiverChannelEntry 3 } + + hh3cTransceiverChannelTemperature OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current temperature. + The unit is Celsius centigrade." + ::= { hh3cTransceiverChannelEntry 4 } + + hh3cTransceiverChannelBiasCurrent OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicating the current bias electric current. + The unit is in hundredths of mA." + ::= { hh3cTransceiverChannelEntry 5 } + +END From d83ed6b6beadce00a813b92add31ffaaa49e3c47 Mon Sep 17 00:00:00 2001 From: Rosiak Date: Wed, 27 Jul 2016 19:00:47 +0200 Subject: [PATCH 3/6] Wrong bias did used --- includes/discovery/sensors/current/comware.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/sensors/current/comware.inc.php b/includes/discovery/sensors/current/comware.inc.php index 9a3dbe5561..50bd5c5ccf 100644 --- a/includes/discovery/sensors/current/comware.inc.php +++ b/includes/discovery/sensors/current/comware.inc.php @@ -18,7 +18,7 @@ if ($device['os'] == 'comware') { $divisor_alarm = 1000000; foreach ($comware_oids as $index => $entry) { if (is_numeric($entry['hh3cTransceiverBiasCurrent']) && $entry['hh3cTransceiverBiasCurrent'] != 2147483647) { - $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.17.15.' . $index; + $oid = '.1.3.6.1.4.1.25506.2.70.1.1.1.17.' . $index; $dbquery = dbFetchRows("SELECT `ifDescr` FROM `ports` WHERE `ifIndex`= ? AND `device_id` = ? AND `ifAdminStatus` = 'up'", array( $index, $device['device_id'] From b8dfdc1cf7a2d42eb42745aa26db1fac1f7486a1 Mon Sep 17 00:00:00 2001 From: Rosiak Date: Wed, 27 Jul 2016 19:09:35 +0200 Subject: [PATCH 4/6] copy paste duh --- includes/discovery/sensors/pre-cache/comware.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/sensors/pre-cache/comware.inc.php b/includes/discovery/sensors/pre-cache/comware.inc.php index ba6b1b7150..60c2fb6cb6 100644 --- a/includes/discovery/sensors/pre-cache/comware.inc.php +++ b/includes/discovery/sensors/pre-cache/comware.inc.php @@ -14,7 +14,7 @@ if ($device['os'] == 'comware') { echo 'Pre-cache Comware: '; - $junos_oids = array(); + $comware_oids = array(); echo 'Caching OIDs:'; $comware_oids = snmpwalk_cache_multi_oid($device, 'hh3cTransceiverInfoTable', $oids, 'HH3C-TRANSCEIVER-INFO-MIB'); From d63db16d31f94ce0cce78f575e0cc9d2ae124665 Mon Sep 17 00:00:00 2001 From: Rosiak Date: Wed, 27 Jul 2016 20:49:37 +0200 Subject: [PATCH 5/6] Fix offset crash --- includes/discovery/sensors/pre-cache/comware.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/sensors/pre-cache/comware.inc.php b/includes/discovery/sensors/pre-cache/comware.inc.php index 60c2fb6cb6..ecfeabe095 100644 --- a/includes/discovery/sensors/pre-cache/comware.inc.php +++ b/includes/discovery/sensors/pre-cache/comware.inc.php @@ -17,7 +17,7 @@ if ($device['os'] == 'comware') { $comware_oids = array(); echo 'Caching OIDs:'; - $comware_oids = snmpwalk_cache_multi_oid($device, 'hh3cTransceiverInfoTable', $oids, 'HH3C-TRANSCEIVER-INFO-MIB'); + $comware_oids = snmpwalk_cache_multi_oid($device, 'hh3cTransceiverInfoTable', array(), 'HH3C-TRANSCEIVER-INFO-MIB'); } From cfb737f4b87f6e5132ba42d90b442ad7b9b5eba5 Mon Sep 17 00:00:00 2001 From: Rosiak Date: Thu, 28 Jul 2016 10:39:46 +0200 Subject: [PATCH 6/6] Minor stuff --- .../discovery/sensors/temperatures/comware.inc.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/includes/discovery/sensors/temperatures/comware.inc.php b/includes/discovery/sensors/temperatures/comware.inc.php index 03129f74f8..dbb7f0a059 100644 --- a/includes/discovery/sensors/temperatures/comware.inc.php +++ b/includes/discovery/sensors/temperatures/comware.inc.php @@ -25,7 +25,7 @@ if ($device['os'] == 'comware') { foreach ($tempdata as $tempindex => $value) { if ($index['entPhysicalIndex'] == $tempindex && $value['hh3cEntityExtTemperature'] != 65535) { $cur_oid = '.1.3.6.1.4.1.25506.2.6.1.1.1.1.12.'; - discover_sensor($valid['sensor'], 'temperature', $device, $cur_oid . $tempindex, $tempindex, 'comware', $index['entPhysicalName'], '1', '1', null, null, null, null, $value['hh3cEntityExtTemperature'], 'snmp', $index); + discover_sensor($valid['sensor'], 'temperature', $device, $cur_oid . $tempindex, 'temp-' . $tempindex, 'comware', $index['entPhysicalName'], '1', '1', null, null, null, null, $value['hh3cEntityExtTemperature'], 'snmp', $index); } } @@ -42,16 +42,16 @@ if ($device['os'] == 'comware') { $index, $device['device_id'] )); - $limit_low = $entry[' hh3cTransceiverTempLoAlarm'] / $divisor_alarm; - $warn_limit_low = $entry[' hh3cTransceiverTempLoWarn'] / $divisor_alarm; - $limit = $entry[' hh3cTransceiverTempHiAlarm'] / $divisor_alarm; - $warn_limit = $entry[' hh3cTransceiverTempHiWarn'] / $divisor_alarm; + $limit_low = $entry['hh3cTransceiverTempLoAlarm'] / $divisor_alarm; + $warn_limit_low = $entry['hh3cTransceiverTempLoWarn'] / $divisor_alarm; + $limit = $entry['hh3cTransceiverTempHiAlarm'] / $divisor_alarm; + $warn_limit = $entry['hh3cTransceiverTempHiWarn'] / $divisor_alarm; $current = $entry['hh3cTransceiverTemperature']; $entPhysicalIndex = $index; $entPhysicalIndex_measured = 'ports'; foreach ($dbquery as $dbindex => $dbresult) { $descr = $dbresult['ifDescr'] . ' Temperature'; - discover_sensor($valid['sensor'], 'temperature', $device, $oid, 'rx-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); + discover_sensor($valid['sensor'], 'temperature', $device, $oid, 'temp-trans-' . $index, 'comware', $descr, $divisor, $multiplier, $limit_low, $warn_limit_low, $warn_limit, $limit, $current, 'snmp', $entPhysicalIndex, $entPhysicalIndex_measured); } } }