added new sensors to mes23xx (#13671)

* added new sensors to mes23xx

* ci

* copy/paste error

* ci

* cleanup + testdata

* yaml

* yamlnew

* added [no_bulk] for PoE discovery

* fully qualified OID name
This commit is contained in:
Peca Nesovanovic 2022-01-20 15:41:47 +01:00 committed by GitHub
parent 0fc2f9e4c9
commit fb90b1813f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 98786 additions and 2064 deletions

View File

@ -1,4 +1,4 @@
mib: RADLAN-Physicaldescription-MIB:RADLAN-HWENVIROMENT:RADLAN-PHY-MIB:RADLAN-rndMng:ELTEX-MES-HWENVIROMENT-MIB
mib: RADLAN-Physicaldescription-MIB:RADLAN-HWENVIROMENT:RADLAN-PHY-MIB:RADLAN-rndMng:ELTEX-MES-HWENVIROMENT-MIB:MARVELL-POE-MIB
modules:
os:
features: RADLAN-Physicaldescription-MIB::rlPhdUnitGenParamSoftwareVersion.1
@ -18,6 +18,11 @@ modules:
descr: 'System Memory'
sensors:
pre-cache:
data:
-
oid:
- rlPhdUnitEnvParamEntry
state:
data:
-
@ -25,7 +30,7 @@ modules:
value: rlEnvMonFanState
num_oid: '.1.3.6.1.4.1.89.83.1.1.1.3.{{ $index }}'
descr: '{{ rlEnvMonFanStatusDescr }} status'
group: 'Switch fan'
group: 'Chassis FAN'
index: 'mesFanStatus.{{ $index }}'
states:
- { value: 1, descr: OK, graph: 1, generic: 0 }
@ -35,8 +40,8 @@ modules:
value: eltEnvMonBatteryState
num_oid: '.1.3.6.1.4.1.35265.1.23.11.1.1.2.{{ $index }}'
descr: 'Backup battery status'
group: 'Chassis PSU'
index: 'mesBattStatus.{{ $index }}'
skip_values: 255
states:
- { value: 1, descr: Charged, graph: 1, generic: 0 }
- { value: 2, descr: Discharged, graph: 1, generic: 2 }
@ -44,12 +49,72 @@ modules:
- { value: 5, descr: Missing, graph: 1, generic: 3 }
- { value: 6, descr: BattFuseError, graph: 1, generic: 2 }
- { value: 7, descr: Charging, graph: 1, generic: 1 }
-
oid: rlPhdUnitEnvParamEntry
value: rlPhdUnitEnvParamMonitorTemperatureStatus
num_oid: '.1.3.6.1.4.1.89.53.15.1.16.{{ $index }}'
group: 'Chassis TEMP'
descr: 'Chassis#{{ $index }} TEMP status'
index: 'mesChassisTempStatus.{{ $index }}'
states:
- { value: 1, descr: Normal, graph: 1, generic: 0 }
- { value: 2, descr: Warning, graph: 1, generic: 1 }
- { value: 3, descr: Critical, graph: 1, generic: 2 }
-
oid: rlPhdUnitEnvParamEntry
value: rlPhdUnitEnvParamMainPSStatus
num_oid: '.1.3.6.1.4.1.89.53.15.1.2.{{ $index }}'
descr: 'Chassis#{{ $index }} PSU#1 status'
group: 'Chassis PSU'
index: 'mesMainPsuStatus.{{ $index }}'
states:
- { value: 1, descr: Normal, graph: 1, generic: 0 }
- { value: 2, descr: Warning, graph: 1, generic: 1 }
- { value: 3, descr: Critical, graph: 1, generic: 2 }
- { value: 4, descr: Shutdown, graph: 1, generic: 2 }
- { value: 5, descr: notPresent, graph: 1, generic: 3 }
- { value: 6, descr: notFunctioning, graph: 1, generic: 3 }
- { value: 7, descr: restore, graph: 1, generic: 2 }
- { value: 8, descr: notAvailable, graph: 1, generic: 3 }
- { value: 9, descr: backingUp, graph: 1, generic: 1 }
-
oid: rlPhdUnitEnvParamEntry
value: rlPhdUnitEnvParamRedundantPSStatus
num_oid: '.1.3.6.1.4.1.89.53.15.1.3.{{ $index }}'
group: 'Chassis PSU'
descr: 'Chassis#{{ $index }} PSU#2 status'
index: 'mesBackupPsuStatus.{{ $index }}'
states:
- { value: 1, descr: Normal, graph: 1, generic: 0 }
- { value: 2, descr: Warning, graph: 1, generic: 1 }
- { value: 3, descr: Critical, graph: 1, generic: 2 }
- { value: 4, descr: Shutdown, graph: 1, generic: 2 }
- { value: 5, descr: notPresent, graph: 1, generic: 3 }
- { value: 6, descr: notFunctioning, graph: 1, generic: 3 }
- { value: 7, descr: restore, graph: 1, generic: 2 }
- { value: 8, descr: notAvailable, graph: 1, generic: 3 }
- { value: 9, descr: backingUp, graph: 1, generic: 1 }
temperature:
data:
-
oid: rlPhdUnitEnvParamEntry
value: rlPhdUnitEnvParamTempSensorValue
num_oid: '.1.3.6.1.4.1.89.53.15.1.10.{{ $index }}'
descr: 'Chassis #{{ $index }} Temp'
group: 'Chassis'
descr: 'Chassis#{{ $index }} Temp'
index: 'mesChassisTemp.{{ $index }}'
-
oid: rlPethPowerPseEntry
value: rlPethPowerPseTemperatureSensor
num_oid: '.1.3.6.1.4.1.89.108.3.1.6.{{ $index }}'
group: 'PoE'
descr: 'Chassis#{{ $index }} PoE Temp'
index: 'mesChassisPoeTemp.{{ $index }}'
skip_value_lt: 1
count:
data:
-
oid: rlPhdNumberOfUnits
num_oid: '.1.3.6.1.4.1.89.53.8.{{ $index }}'
descr: 'Stacked Chassis'
group: 'Chassis Count'

View File

@ -11,7 +11,8 @@ over:
discovery:
-
sysObjectID:
- .1.3.6.1.4.1.35265.1.43
- .1.3.6.1.4.1.35265.1.24 #mes3124
- .1.3.6.1.4.1.35265.1.43 #mes2124
mib_dir: eltexmes21xx
group: radlan

View File

@ -11,9 +11,14 @@ over:
discovery:
-
sysObjectID:
- .1.3.6.1.4.1.35265.1.112
- .1.3.6.1.4.1.35265.1.83
- .1.3.6.1.4.1.35265.1.78
- .1.3.6.1.4.1.35265.1.112 #MES 2308R
- .1.3.6.1.4.1.35265.1.107 #MES 2348P
- .1.3.6.1.4.1.35265.1.96 #MES 3348
- .1.3.6.1.4.1.35265.1.83 #MES 2324B
- .1.3.6.1.4.1.35265.1.81 #MES 3324F
- .1.3.6.1.4.1.35265.1.80 #MES 3324
- .1.3.6.1.4.1.35265.1.78 #MES 2324FB AC
- .1.3.6.1.4.1.35265.1.74 #MES 5324
mib_dir: eltexmes23xx
group: radlan
@ -22,3 +27,8 @@ bad_iftype:
- tunnel
- softwareLoopback
- propPointToPointSerial
oids:
no_bulk:
- MARVELL-POE-MIB::rlPethPsePortOutputPower
- MARVELL-POE-MIB::rlPethPsePortPowerLimit

View File

@ -0,0 +1,112 @@
<?php
/*
* LibreNMS discovery module for Eltex-MES23xx SFP inventory items
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
echo "\nCaching OIDs:";
$entity_array = [];
echo ' ELTEX-MES23xx';
$trans = snmpwalk_cache_multi_oid($device, 'eltPhdTransceiverInfoEntry', [], 'ELTEX-MES-PHYSICAL-DESCRIPTION-MIB');
echo ' entAliasMappingIdentifier';
$mapping = snmpwalk_cache_multi_oid($device, 'entAliasMappingIdentifier', [], 'ENTITY-MIB:IF-MIB');
function normData($par = null)
{
$tmp = str_replace([':', ' '], '', trim(strtoupper($par)));
$ret = preg_match('/^[0-9A-F]+$/', $tmp) ? hex2str($tmp) : $par; //if string is pure hex, convert to ascii
return $ret;
}
foreach ($trans as $index => $data) {
unset($connectedto);
foreach ($mapping as $ekey => $edata) {
if ($edata['entAliasMappingIdentifier'] == 'ifIndex.' . $index) {
$connectedto = explode('.', $ekey)[0];
}
}
if ($connectedto) {
$entity_array[] = [
'entPhysicalIndex' => $index,
'entPhysicalDescr' => $data['eltPhdTransceiverInfoType'],
'entPhysicalClass' => 'sfp-cage',
'entPhysicalName' => strtoupper($data['eltPhdTransceiverInfoConnectorType']),
'entPhysicalModelName' => normData($data['eltPhdTransceiverInfoPartNumber']),
'entPhysicalSerialNum' => $data['eltPhdTransceiverInfoSerialNumber'],
'entPhysicalContainedIn' => $connectedto,
'entPhysicalMfgName' => $data['eltPhdTransceiverInfoVendorName'],
'entPhysicalHardwareRev' => normData($data['eltPhdTransceiverInfoVendorRev']),
'entPhysicalIsFRU' => 'true',
];
}
}
foreach ($entity_array as $entPhysicalIndex => $entry) {
$entPhysicalIndex = $entry['entPhysicalIndex'] ?? '';
$entPhysicalDescr = $entry['entPhysicalDescr'] ?? '';
$entPhysicalClass = $entry['entPhysicalClass'] ?? '';
$entPhysicalName = $entry['entPhysicalName'] ?? '';
$entPhysicalModelName = $entry['entPhysicalModelName'] ?? '';
$entPhysicalSerialNum = $entry['entPhysicalSerialNum'] ?? '';
$entPhysicalContainedIn = $entry['entPhysicalContainedIn'] ?? '';
$entPhysicalMfgName = $entry['entPhysicalMfgName'] ?? '';
$entPhysicalParentRelPos = $entry['entPhysicalParentRelPos'] ?? '';
$entPhysicalVendorType = $entry['entPhysicalVendorType'] ?? '';
$entPhysicalHardwareRev = $entry['entPhysicalHardwareRev'] ?? '';
$entPhysicalFirmwareRev = $entry['entPhysicalFirmwareRev'] ?? '';
$entPhysicalSoftwareRev = $entry['entPhysicalSoftwareRev'] ?? '';
$entPhysicalIsFRU = $entry['entPhysicalIsFRU'] ?? '';
$entPhysicalAlias = $entry['entPhysicalAlias'] ?? '';
$entPhysicalAssetID = $entry['entPhysicalAssetID'] ?? '';
$ifIndex = $entry['ifIndex'] ?? '';
discover_entity_physical(
$valid,
$device,
$entPhysicalIndex,
$entPhysicalDescr,
$entPhysicalClass,
$entPhysicalName,
$entPhysicalModelName,
$entPhysicalSerialNum,
$entPhysicalContainedIn,
$entPhysicalMfgName,
$entPhysicalParentRelPos,
$entPhysicalVendorType,
$entPhysicalHardwareRev,
$entPhysicalFirmwareRev,
$entPhysicalSoftwareRev,
$entPhysicalIsFRU,
$entPhysicalAlias,
$entPhysicalAssetID,
$ifIndex
);
}//end foreach
echo "\n";
unset(
$modules_array,
$entry,
$entity_array,
$trans,
$mapping
);

View File

@ -18,9 +18,10 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2021 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$oids = snmp_walk($device, 'eltEnvMonBatteryStatusCharge', '-Osqn', 'ELTEX-MES-HWENVIROMENT-MIB');
$oids = trim($oids);
@ -31,15 +32,16 @@ if ($oids) {
$oid = trim(explode(' ', $data)[0]);
$value = trim(explode(' ', $data)[1]);
$index = trim(explode('.', $oid)[14]);
if ($value <= 100) { // value > 100 if there is no battery connected
$type = 'eltex-mes23xx';
$limit = 101;
$limitwarn = 100;
$lowlimit = 0;
$lowwarnlimit = 10;
$descr = 'Battery Charge';
$type = 'eltex-mes23xx';
$limit = 101;
$limitwarn = 100;
$lowlimit = 0;
$lowwarnlimit = 10;
$descr = 'Battery Charge';
discover_sensor($valid['sensor'], 'charge', $device, $oid, $index, $type, $descr, 1, 1, $lowlimit, $lowwarnlimit, $limitwarn, $limit, $value);
discover_sensor($valid['sensor'], 'charge', $device, $oid, $index, $type, $descr, 1, 1, $lowlimit, $lowwarnlimit, $limitwarn, $limit, $value);
}
}
}
}

View File

@ -18,30 +18,44 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$low_limit = $low_warn_limit = 15;
$high_warn_limit = $high_limit = 0;
$divisor = 1000000;
$oids = $pre_cache['eltex-mes23xx_rlPhyTestGetResult'];
if ($oids) {
d_echo('Eltex-MES SFP txBias');
foreach (explode("\n", $oids) as $data) {
if ($data) {
$split = trim(explode(' ', $data)[0]);
$value = trim(explode(' ', $data)[1]);
$ifIndex = explode('.', $split)[13];
$type = explode('.', $split)[14];
//type 7 = bias
if ($type == 7) {
$value = $value / $divisor;
$multiplier = 1;
if ($pre_cache['eltex-mes23xx-sfp']) {
foreach ($pre_cache['eltex-mes23xx-sfp'] as $ifIndex => $data) {
if (isset($data['rlPhyTestTableTxBias']['rlPhyTestGetResult'])) {
$value = $data['rlPhyTestTableTxBias']['rlPhyTestGetResult'] / $divisor;
if ($value) {
$high_limit = $data['txBias']['eltPhdTransceiverThresholdHighAlarm'] / $divisor;
$high_warn_limit = $data['txBias']['eltPhdTransceiverThresholdHighWarning'] / $divisor;
$low_warn_limit = $data['txBias']['eltPhdTransceiverThresholdLowWarning'] / $divisor;
$low_limit = $data['txBias']['eltPhdTransceiverThresholdLowAlarm'] / $divisor;
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.90.1.2.1.3.' . $ifIndex . '.7';
discover_sensor(
$valid['sensor'], 'current', $device, $split, 'txbias' . $ifIndex, 'rlPhyTestTableTxBias', 'SfpTxBias-' . $descr, $divisor, '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit, $value
$valid['sensor'],
'current',
$device,
$oid,
'SfpTxBias' . $ifIndex,
'rlPhyTestTableTxBias',
'SfpTxBias-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'Transceiver'
);
}
}

View File

@ -18,40 +18,79 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$low_limit = $low_warn_limit = -15;
$high_warn_limit = $high_limit = 0;
$divisor = 1000;
$multiplier = 1;
$oids = $pre_cache['eltex-mes23xx_rlPhyTestGetResult'];
if ($oids) {
d_echo('Eltex-MES SFP dBm');
foreach (explode("\n", $oids) as $data) {
if ($data) {
$split = trim(explode(' ', $data)[0]);
$value = trim(explode(' ', $data)[1]);
$ifIndex = explode('.', $split)[13];
$type = explode('.', $split)[14];
//type8 = tx dBm
if ($type == 8) {
$value = $value / $divisor;
if ($pre_cache['eltex-mes23xx-sfp']) {
foreach ($pre_cache['eltex-mes23xx-sfp'] as $ifIndex => $data) {
if (isset($data['rlPhyTestTableTxOutput']['rlPhyTestGetResult'])) {
$value = $data['rlPhyTestTableTxOutput']['rlPhyTestGetResult'] / $divisor;
if ($value) {
$high_limit = $data['txOutput']['eltPhdTransceiverThresholdHighAlarm'] / $divisor;
$high_warn_limit = $data['txOutput']['eltPhdTransceiverThresholdHighWarning'] / $divisor;
$low_warn_limit = $data['txOutput']['eltPhdTransceiverThresholdLowWarning'] / $divisor;
$low_limit = $data['txOutput']['eltPhdTransceiverThresholdLowAlarm'] / $divisor;
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.90.1.2.1.3.' . $ifIndex . '.8';
discover_sensor(
$valid['sensor'], 'dbm', $device, $split, 'txdbm' . $ifIndex, 'rlPhyTestTableTxOutput', 'SfpTxdBm-' . $descr, $divisor, '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit, $value
$valid['sensor'],
'dbm',
$device,
$oid,
'SfpTxDbm' . $ifIndex,
'rlPhyTestTableTxOutput',
'SfpTxDbm-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'Transceiver TX'
);
}
}
//type9 = rx dBm
if ($type == 9) {
$value = $value / $divisor;
if (isset($data['rlPhyTestTableRxOpticalPower']['rlPhyTestGetResult'])) {
$value = $data['rlPhyTestTableRxOpticalPower']['rlPhyTestGetResult'] / $divisor;
if ($value) {
$high_limit = $data['rxOpticalPower']['eltPhdTransceiverThresholdHighAlarm'] / $divisor;
$high_warn_limit = $data['rxOpticalPower']['eltPhdTransceiverThresholdHighWarning'] / $divisor;
$low_warn_limit = $data['rxOpticalPower']['eltPhdTransceiverThresholdLowWarning'] / $divisor;
$low_limit = $data['rxOpticalPower']['eltPhdTransceiverThresholdLowAlarm'] / $divisor;
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.90.1.2.1.3.' . $ifIndex . '.9';
discover_sensor(
$valid['sensor'], 'dbm', $device, $split, 'rxdbm' . $ifIndex, 'rlPhyTestTableRxOpticalPower', 'SfpRxdBm-' . $descr, $divisor, '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit, $value
$valid['sensor'],
'dbm',
$device,
$oid,
'SfpRxDbm' . $ifIndex,
'rlPhyTestTableRxOpticalPower',
'SfpRxDbm-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'Transceiver RX'
);
}
}

View File

@ -0,0 +1,64 @@
<?php
/*
* LibreNMS discovery module for Eltex-MES23xx PoE power
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$divisor = 1000;
$multiplier = 1;
if ($pre_cache['eltex-mes23xx-poe']) {
foreach ($pre_cache['eltex-mes23xx-poe'] as $index => $data) {
if (isset($data['rlPethPsePortOutputPower'])) {
$value = $data['rlPethPsePortOutputPower'] / $divisor;
if ($value) {
$high_limit = $data['rlPethPsePortPowerLimit'] / $divisor;
$high_warn_limit = ($data['rlPethPsePortPowerLimit'] / $divisor) * 0.8;
$low_warn_limit = 0;
$low_limit = 0;
[$unit, $ifIndex] = explode('.', $index);
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.108.1.1.5.' . $unit . '.' . $ifIndex;
discover_sensor(
$valid['sensor'],
'power',
$device,
$oid,
'Poe' . $index, //unit.index
'rlPethPsePortOutputPower',
'PoE-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'PoE'
);
}
}
}
}

View File

@ -18,8 +18,30 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2021 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
echo 'eltPhdTransceiverThresholdTable ';
$oide = snmp_walk($device, 'eltPhdTransceiverThresholdTable', '-OsQ', 'ELTEX-MES-PHYSICAL-DESCRIPTION-MIB');
echo 'rlPhyTestGetResult ';
$pre_cache['eltex-mes23xx_rlPhyTestGetResult'] = snmp_walk($device, 'rlPhyTestGetResult', '-Osqn', 'RADLAN-PHY-MIB');
$oidr = snmp_walk($device, 'rlPhyTestGetResult', '-OsQ', 'RADLAN-PHY-MIB');
$oids = trim($oide . "\n" . $oidr);
if ($oids) {
foreach (explode("\n", $oids) as $data) {
if ($data) {
$split = explode('=', $data);
$value = trim($split[1]);
$name = trim(explode('.', $split[0])[0]);
$index = trim(explode('.', $split[0])[1]);
$type = trim(explode('.', $split[0])[2]);
$pre_cache['eltex-mes23xx-sfp'][$index][$type][$name] = $value;
}
}
}
echo 'rlPethPsePortPowerLimit ';
$oidpl = snmpwalk_cache_multi_oid($device, 'MARVELL-POE-MIB::rlPethPsePortPowerLimit', [], 'MARVELL-POE-MIB');
echo 'rlPethPsePortOutputPower ';
$pre_cache['eltex-mes23xx-poe'] = snmpwalk_cache_multi_oid($device, 'MARVELL-POE-MIB::rlPethPsePortOutputPower', $oidpl, 'MARVELL-POE-MIB');

View File

@ -18,30 +18,44 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$low_limit = $low_warn_limit = 5;
$high_warn_limit = $high_limit = 70;
$divisor = 1;
$oids = $pre_cache['eltex-mes23xx_rlPhyTestGetResult'];
if ($oids) {
d_echo('Eltex-MES SFP temperature');
foreach (explode("\n", $oids) as $data) {
if ($data) {
$split = trim(explode(' ', $data)[0]);
$value = trim(explode(' ', $data)[1]);
$ifIndex = explode('.', $split)[13];
$type = explode('.', $split)[14];
//type5 = temperature
if ($type == 5) {
$value = $value / $divisor;
$multiplier = 1;
if ($pre_cache['eltex-mes23xx-sfp']) {
foreach ($pre_cache['eltex-mes23xx-sfp'] as $ifIndex => $data) {
if (isset($data['rlPhyTestTableTransceiverTemp']['rlPhyTestGetResult'])) {
$value = $data['rlPhyTestTableTransceiverTemp']['rlPhyTestGetResult'] / $divisor;
if ($value) {
$high_limit = $data['temperature']['eltPhdTransceiverThresholdHighAlarm'] / $divisor;
$high_warn_limit = $data['temperature']['eltPhdTransceiverThresholdHighWarning'] / $divisor;
$low_warn_limit = $data['temperature']['eltPhdTransceiverThresholdLowWarning'] / $divisor;
$low_limit = $data['temperature']['eltPhdTransceiverThresholdLowAlarm'] / $divisor;
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.90.1.2.1.3.' . $ifIndex . '.5';
discover_sensor(
$valid['sensor'], 'temperature', $device, $split, 'SfpTemp' . $ifIndex, 'rlPhyTestTableTransceiverTemp', 'SfpTemp-' . $descr, $divisor, '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit, $value
$valid['sensor'],
'temperature',
$device,
$oid,
'SfpTemp' . $ifIndex,
'rlPhyTestTableTransceiverTemp',
'SfpTemp-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'Transceiver'
);
}
}

View File

@ -18,30 +18,44 @@
* @package LibreNMS
* @link https://www.librenms.org
*
* @copyright 2022 Peca Nesovanovic
*
* @author Peca Nesovanovic <peca.nesovanovic@sattrakt.com>
*/
$low_limit = $low_warn_limit = 3;
$high_warn_limit = $high_limit = 4;
$divisor = 1000000;
$oids = $pre_cache['eltex-mes23xx_rlPhyTestGetResult'];
if ($oids) {
d_echo('Eltex-MES SFP voltage');
foreach (explode("\n", $oids) as $data) {
if ($data) {
$split = trim(explode(' ', $data)[0]);
$value = trim(explode(' ', $data)[1]);
$ifIndex = explode('.', $split)[13];
$type = explode('.', $split)[14];
// type6 = voltage
if ($type == 6) {
$value = $value / $divisor;
$multiplier = 1;
if ($pre_cache['eltex-mes23xx-sfp']) {
foreach ($pre_cache['eltex-mes23xx-sfp'] as $ifIndex => $data) {
if (isset($data['rlPhyTestTableTransceiverSupply']['rlPhyTestGetResult'])) {
$value = $data['rlPhyTestTableTransceiverSupply']['rlPhyTestGetResult'] / $divisor;
if ($value) {
$high_limit = $data['supply']['eltPhdTransceiverThresholdHighAlarm'] / $divisor;
$high_warn_limit = $data['supply']['eltPhdTransceiverThresholdHighWarning'] / $divisor;
$low_warn_limit = $data['supply']['eltPhdTransceiverThresholdLowWarning'] / $divisor;
$low_limit = $data['supply']['eltPhdTransceiverThresholdLowAlarm'] / $divisor;
$tmp = get_port_by_index_cache($device['device_id'], $ifIndex);
$descr = $tmp['ifName'];
$oid = '.1.3.6.1.4.1.89.90.1.2.1.3.' . $ifIndex . '.6';
discover_sensor(
$valid['sensor'], 'voltage', $device, $split, 'SfpVolt' . $ifIndex, 'rlPhyTestTableTransceiverSupply', 'SfpVolt-' . $descr, $divisor, '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit, $value
$valid['sensor'],
'voltage',
$device,
$oid,
'SfpVolt' . $ifIndex,
'rlPhyTestTableTransceiverSupply',
'SfpVolt-' . $descr,
$divisor,
$multiplier,
$low_limit,
$low_warn_limit,
$high_warn_limit,
$high_limit,
$value,
'snmp',
null,
null,
null,
'Transceiver'
);
}
}

View File

@ -0,0 +1,564 @@
ELTEX-MES-PHYSICAL-DESCRIPTION-MIB DEFINITIONS ::= BEGIN
-- Version: 2.3
-- Date: 04-Aug-2021
IMPORTS
OBJECT-TYPE, MODULE-IDENTITY, TimeTicks,
NOTIFICATION-TYPE, Integer32 FROM SNMPv2-SMI
DisplayString, PhysAddress, RowStatus, TruthValue FROM SNMPv2-TC
JackType FROM MAU-MIB
InterfaceIndexOrZero,ifIndex,InterfaceIndex FROM IF-MIB
eltMes FROM ELTEX-MES
rlPhdUnitGenParamEntry, rlCascadeEntry, rlCascadeAdminEntry
FROM RADLAN-Physicaldescription-MIB
;
eltMesPhysicalDescription MODULE-IDENTITY
LAST-UPDATED "202108040000Z"
ORGANIZATION "Eltex Ltd."
CONTACT-INFO
"eltex.nsk.ru"
DESCRIPTION
"The private MIB module definition for physical
device configuration and information."
REVISION "202108040000Z"
DESCRIPTION
"Added eltCascadeAdminTable, added field eltCascadeFecOperMode
to eltCascadeEntry."
REVISION "201804240000Z"
DESCRIPTION
"Added eltPhdTransceiverThresholdTable."
REVISION "201711110000Z"
DESCRIPTION
"Added fields eltPhdTransceiverInfoPartNumber and
eltPhdTransceiverInfoVendorRev to eltPhdTransceiverInfoTable"
REVISION "201509140000Z"
DESCRIPTION
"Added eltPhdUnitGenParamTable."
REVISION "201303210000Z"
DESCRIPTION
"Initial revision."
::= { eltMes 53 }
eltMesPhdTransceiver OBJECT IDENTIFIER ::= { eltMesPhysicalDescription 1 }
eltPhdTransceiverInfoTable OBJECT-TYPE
SYNTAX SEQUENCE OF EltPhdTransceiverInfoEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table show the information of transceiver on interface."
::= { eltMesPhdTransceiver 1 }
eltPhdTransceiverInfoEntry OBJECT-TYPE
SYNTAX EltPhdTransceiverInfoEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The entry of the eltPhdTransceiverInfoTable."
INDEX { ifIndex }
::= { eltPhdTransceiverInfoTable 1 }
EltPhdTransceiverInfoEntry ::=
SEQUENCE {
eltPhdTransceiverInfoConnectorType INTEGER,
eltPhdTransceiverInfoType INTEGER,
eltPhdTransceiverInfoComplianceCode OCTET STRING,
eltPhdTransceiverInfoWaveLength Integer32,
eltPhdTransceiverInfoVendorName OCTET STRING,
eltPhdTransceiverInfoSerialNumber OCTET STRING,
eltPhdTransceiverInfoFiberDiameterType INTEGER,
eltPhdTransceiverInfoTransferDistance Integer32,
eltPhdTransceiverInfoDiagnostic TruthValue,
eltPhdTransceiverInfoPartNumber OCTET STRING,
eltPhdTransceiverInfoVendorRev OCTET STRING
}
eltPhdTransceiverInfoConnectorType OBJECT-TYPE
SYNTAX INTEGER
{
unknown(0),
sc(1),
fibre-ch-st1(2),
fibre-ch-st2(3),
bnc-tnc(4),
fibre-ch-coaxial-headers(5),
fibrejack(6),
lc(7),
mt-rj(8),
mu(9),
sg(10),
optical-pigtail(11),
mpo-parallel-optic(12),
hssdc-ii(32),
copper-pigtail(33),
rj45(34),
no-separable-connector(35),
unallocated(127),
vendorspec(255)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Connector type of the interface."
::= { eltPhdTransceiverInfoEntry 1 }
eltPhdTransceiverInfoType OBJECT-TYPE
SYNTAX INTEGER
{
unknown(0),
gbic(1),
sff(2),
sfp-sfpplus(3),
xbi-300-pin(4),
xenpak(5),
xfp(6),
xff(7),
xfp-e(8),
xpak(9),
x2(10),
dwdm-sfp(11),
qsfp(12),
qsfpplus(13),
reserved(127),
vendorspec(255)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Type of the interface, such as SFP/XFP/GBIC."
::= { eltPhdTransceiverInfoEntry 2 }
eltPhdTransceiverInfoComplianceCode OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Compliance code read from the transceiver."
::= { eltPhdTransceiverInfoEntry 3 }
eltPhdTransceiverInfoWaveLength OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Wave length of the interface, measured in nanometer."
::= { eltPhdTransceiverInfoEntry 4 }
eltPhdTransceiverInfoVendorName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Vendor name of the interface."
::= { eltPhdTransceiverInfoEntry 5 }
eltPhdTransceiverInfoSerialNumber OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Serial number of the interface."
::= { eltPhdTransceiverInfoEntry 6 }
eltPhdTransceiverInfoFiberDiameterType 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."
::= { eltPhdTransceiverInfoEntry 7 }
eltPhdTransceiverInfoTransferDistance OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximal distance which the interface could transmit,
measured in meter."
::= { eltPhdTransceiverInfoEntry 8 }
eltPhdTransceiverInfoDiagnostic OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicating whether the digital diagnostic monitoring function is supported or not."
::= { eltPhdTransceiverInfoEntry 9 }
eltPhdTransceiverInfoPartNumber OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Part number provided by SFP vendor."
::= { eltPhdTransceiverInfoEntry 10 }
eltPhdTransceiverInfoVendorRev OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Revision level for part number provided by vendor."
::= { eltPhdTransceiverInfoEntry 11 }
--
-- eltPhdUnitGenParamTable
--
eltPhdUnitGenParamTable OBJECT-TYPE
SYNTAX SEQUENCE OF EltPhdUnitGenParamEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"For each module (board) there is an entry describing it in this
module"
::= { eltMesPhysicalDescription 2 }
eltPhdUnitGenParamEntry OBJECT-TYPE
SYNTAX EltPhdUnitGenParamEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table augments existing RADLAN table rlPhdUnitGenParamTable"
AUGMENTS { rlPhdUnitGenParamEntry }
::= { eltPhdUnitGenParamTable 1 }
EltPhdUnitGenParamEntry ::= SEQUENCE {
eltPhdUnitGenParamCommitHash DisplayString,
eltPhdUnitGenParamBuildTag DisplayString,
eltPhdUnitGenParamBuildNumber DisplayString
}
eltPhdUnitGenParamCommitHash OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Hash of current commit."
::= { eltPhdUnitGenParamEntry 1 }
eltPhdUnitGenParamBuildTag OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Build branch."
::= { eltPhdUnitGenParamEntry 2 }
eltPhdUnitGenParamBuildNumber OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Build describe number."
::= { eltPhdUnitGenParamEntry 3 }
--
-- eltCascadeTable
--
eltCascadeTable OBJECT-TYPE
SYNTAX SEQUENCE OF EltCascadeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table augments existing RADLAN table rlCascadeTable."
::= { eltMesPhysicalDescription 3 }
eltCascadeEntry OBJECT-TYPE
SYNTAX EltCascadeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry of this table specifies a cascaded link information in a unit"
AUGMENTS { rlCascadeEntry }
::= { eltCascadeTable 1 }
EltCascadeEntry ::= SEQUENCE {
eltCascadeLastChange TimeTicks,
eltCascadeOperStatus INTEGER,
eltCascadeDuplexOperMode INTEGER,
eltCascadeOperSpeedDuplexAutoNegotiation INTEGER,
eltCascadeOperMdix INTEGER,
eltCascadeTransceiverType INTEGER,
eltCascadeIfType INTEGER,
eltCascadeFecOperMode INTEGER
}
eltCascadeLastChange OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime at the time the cascade interface
entered its current operational state."
::= { eltCascadeEntry 1 }
eltCascadeOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the state of this interface."
::= { eltCascadeEntry 2 }
eltCascadeDuplexOperMode OBJECT-TYPE
SYNTAX INTEGER {
half(1),
full(2),
hybrid(3),
unknown(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates whether this interface operates in half
duplex or full duplex mode."
::= { eltCascadeEntry 3 }
eltCascadeOperSpeedDuplexAutoNegotiation OBJECT-TYPE
SYNTAX INTEGER {
enabled(1),
disabled(2),
hybrid(3),
unknown(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"If enabled the speed and duplex are determined by the device through
the autonegotiation process."
::= { eltCascadeEntry 4 }
eltCascadeOperMdix OBJECT-TYPE
SYNTAX INTEGER {
normal(1),
cross(2),
auto(3),
unknown(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"cross - The interface is in crossover mode.
normal - The interface is not in crossover mode.
unknown - Only for port that its operative status is not present
or down."
::= { eltCascadeEntry 5 }
eltCascadeTransceiverType OBJECT-TYPE
SYNTAX INTEGER {
regular(1),
fiberOptics(2),
comboRegular(3),
comboFiberOptics(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the transceiver type of this interface."
::= { eltCascadeEntry 6 }
eltCascadeIfType OBJECT-TYPE
SYNTAX INTEGER {
eth10M(1),
eth100M(2),
eth1000M(3),
eth10G(4),
eth20G(5),
eth40G(6),
eth100G(7),
unknown(8)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable specifies the type of interface."
::= { eltCascadeEntry 7 }
eltCascadeFecOperMode OBJECT-TYPE
SYNTAX INTEGER {
disabled(0),
auto(1),
cl74(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the actual Forward Error Correction (FEC) mode
that currently in use on the port."
::= { eltCascadeEntry 8 }
--
-- eltPhdTransceiverThresholdTable
--
eltPhdTransceiverThresholdTable OBJECT-TYPE
SYNTAX SEQUENCE OF EltPhdTransceiverThresholdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains the threshold information of transceiver."
::= { eltMesPhdTransceiver 2 }
eltPhdTransceiverThresholdEntry OBJECT-TYPE
SYNTAX EltPhdTransceiverThresholdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The entry of the eltPhdTransceiverThresholdTable."
INDEX { ifIndex, eltPhdTransceiverThresholdType }
::= { eltPhdTransceiverThresholdTable 1 }
EltPhdTransceiverThresholdEntry ::=
SEQUENCE {
eltPhdTransceiverThresholdType INTEGER,
eltPhdTransceiverThresholdAction INTEGER,
eltPhdTransceiverThresholdHighAlarm INTEGER,
eltPhdTransceiverThresholdHighWarning INTEGER,
eltPhdTransceiverThresholdLowWarning INTEGER,
eltPhdTransceiverThresholdLowAlarm INTEGER
}
eltPhdTransceiverThresholdType OBJECT-TYPE
SYNTAX INTEGER
{
temperature(0),
supply(1),
txBias(2),
txOutput(3),
rxOpticalPower(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A value indicating the threshold to configure.
temperature - degree (Celsius) -127-127, voltage - microVolt 0-6550000,
current - microAmper 0-131000, output power or input power - microWatt 0-6553"
::= { eltPhdTransceiverThresholdEntry 1 }
eltPhdTransceiverThresholdAction OBJECT-TYPE
SYNTAX INTEGER
{
none(0),
log(1),
send-trap(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"What action to perform when value is bad."
::= { eltPhdTransceiverThresholdEntry 2 }
eltPhdTransceiverThresholdHighAlarm OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"See eltPhdTransceiverThresholdType for details"
::= { eltPhdTransceiverThresholdEntry 3 }
eltPhdTransceiverThresholdHighWarning OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"See eltPhdTransceiverThresholdType for details"
::= { eltPhdTransceiverThresholdEntry 4 }
eltPhdTransceiverThresholdLowWarning OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"See eltPhdTransceiverThresholdType for details"
::= { eltPhdTransceiverThresholdEntry 5 }
eltPhdTransceiverThresholdLowAlarm OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"See eltPhdTransceiverThresholdType for details"
::= { eltPhdTransceiverThresholdEntry 6 }
--
-- eltMesPhdNsf
--
eltMesPhdNsf OBJECT IDENTIFIER ::= { eltMesPhysicalDescription 4 }
eltPhdNsfEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Enable Non-Stop Forwarding during the stack master switchover."
DEFVAL { false }
::= { eltMesPhdNsf 1 }
eltPhdNsfTime OBJECT-TYPE
SYNTAX INTEGER (60..600)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Set the time period in which protocols wait for the new master to complete initialization.
The port states set by the former master is preserved during this time."
DEFVAL {120}
::= { eltMesPhdNsf 2 }
--
-- eltCascadeAdminTable
--
eltCascadeAdminTable OBJECT-TYPE
SYNTAX SEQUENCE OF EltCascadeAdminEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table augments existing RADLAN table rlCascadeAdminTable."
::= { eltMesPhysicalDescription 6 }
eltCascadeAdminEntry OBJECT-TYPE
SYNTAX EltCascadeAdminEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry of this table specifies a cascaded information in a unit after reset"
AUGMENTS { rlCascadeAdminEntry }
::= { eltCascadeAdminTable 1 }
EltCascadeAdminEntry ::= SEQUENCE {
eltCascadeAdminFec INTEGER
}
eltCascadeAdminFec OBJECT-TYPE
SYNTAX INTEGER {
disabled(0),
auto(1),
cl74(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable controls the Forward Error Correction (FEC) mode on the port."
::= { eltCascadeAdminEntry 1 }
END

View File

@ -0,0 +1,542 @@
MARVELL-POE-MIB DEFINITIONS ::= BEGIN
-- Title: Marvell LOCALIZATION ROS
-- This Private MIB is enhancement for rfc3621.txt - Power Ethernet Mib
-- Version: 7.50
-- Date: 28 Nov 2005
IMPORTS
rnd FROM RADLAN-MIB
DisplayString, TruthValue FROM SNMPv2-TC
InterfaceIndex FROM IF-MIB
OBJECT-TYPE, MODULE-IDENTITY, Unsigned32 FROM SNMPv2-SMI;
rlPoe MODULE-IDENTITY
LAST-UPDATED "200911260000Z"
ORGANIZATION "Marvell."
CONTACT-INFO
"Marvell.com"
DESCRIPTION
"Add a new field in the PoE MIB to indicate Max power allocation allowed"
REVISION "201006020000Z"
DESCRIPTION
"The private MIB module definition for Power Over Ethernet."
REVISION "200911260000Z"
DESCRIPTION
"Initial revision."
::= { rnd 108 }
RlPoeType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION "PoE types:
1 - none: no PoE, unknown type;
2 - PoE: Standard AF PoE
3 - PoE Plus: Standard AT PoE
4 - 60 W: 60W poe port "
SYNTAX INTEGER {
none(1),
poe(2),
poeplus(3),
poe60w(4)
}
rlPethPsePortTable OBJECT-TYPE
SYNTAX SEQUENCE OF RlPethPsePortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" The table listing additional information for Power Over Ethernet ports."
::= {rlPoe 1 }
rlPethPsePortEntry OBJECT-TYPE
SYNTAX RlPethPsePortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" An entry in the rlPethPsePortTable."
INDEX { rlPethPsePortGroupIndex , rlPethPsePortIndex }
::= {rlPethPsePortTable 1 }
RlPethPsePortEntry ::= SEQUENCE {
rlPethPsePortGroupIndex INTEGER,
rlPethPsePortIndex INTEGER,
rlPethPsePortOutputVoltage INTEGER,
rlPethPsePortOutputCurrent INTEGER,
rlPethPsePortOutputPower INTEGER,
rlPethPsePortPowerLimit INTEGER,
rlPethPsePortStatus INTEGER,
rlPethPsePortStatusDescription DisplayString,
rlPethPsePortOperPowerLimit INTEGER,
rlPethPsePortTimeRangeName DisplayString,
rlPethPsePortOperStatus TruthValue,
rlPethPsePortMaxPowerAllocAllowed INTEGER,
rlPethPsePortSupportPoeType RlPoeType,
rlPethPsePortLinkPartnerPoeType RlPoeType,
rlPethPsePortFourPairForced INTEGER,
rlPethPsePortFourPairEnabled INTEGER,
rlPethPsePortNegotiationAllocatedPower INTEGER,
rlPethPsePortNegotiationProtocolOwner INTEGER
}
rlPethPsePortGroupIndex OBJECT-TYPE
SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This variable uniquely identifies the group
containing the port to which a power Ethernet PSE is
connected. Group means box in the stack, module in a
rack and the value 1 MUST be used for non-modular devices.
Furthermore, the same value MUST be used in this variable,
pethMainPseGroupIndex, and pethNotificationControlGroupIndex
to refer to a given box in a stack or module in the rack."
::= { rlPethPsePortEntry 1 }
rlPethPsePortIndex OBJECT-TYPE
SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This variable uniquely identifies the power Ethernet PSE
port within group pethPsePortGroupIndex to which the
power Ethernet PSE entry is connected."
::= { rlPethPsePortEntry 2 }
rlPethPsePortOutputVoltage OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates on the output voltage level in milli volts from rlPethPsePortIndex."
::= { rlPethPsePortEntry 3 }
rlPethPsePortOutputCurrent OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates on the output current level in milli amper from rlPethPsePortIndex."
::= { rlPethPsePortEntry 4 }
rlPethPsePortOutputPower OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates on the output power level in milli watts from rlPethPsePortIndex."
::= { rlPethPsePortEntry 5 }
rlPethPsePortPowerLimit OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates on the user configured power level in milli watts which is available from rlPethPsePortIndex."
::= { rlPethPsePortEntry 6 }
rlPethPsePortStatus OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates on the hardware status of rlPethPsePortIndex."
::= { rlPethPsePortEntry 7 }
rlPethPsePortStatusDescription OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..80))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the description of the hardware status of rlPethPsePortIndex."
::= { rlPethPsePortEntry 8 }
rlPethPsePortOperPowerLimit OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the maximum power level in milli watts which is available from rlPethPsePortIndex."
::= { rlPethPsePortEntry 9 }
rlPethPsePortTimeRangeName OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..32))
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable is used to bind PoE port to time range."
::= { rlPethPsePortEntry 10 }
rlPethPsePortOperStatus OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This Read-Only variable indicates PoE port current status affected by time range active/inactive and admin status."
::= { rlPethPsePortEntry 11 }
rlPethPsePortMaxPowerAllocAllowed OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the maximum power allocation allowed per port (including wire power loses) in milli-watts which is available from rlPethPsePortIndex."
::= { rlPethPsePortEntry 12 }
rlPethPsePortSupportPoeType OBJECT-TYPE
SYNTAX RlPoeType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the supported type of the PoE port"
::= { rlPethPsePortEntry 13 }
rlPethPsePortLinkPartnerPoeType OBJECT-TYPE
SYNTAX RlPoeType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the link partner PoE type."
::= { rlPethPsePortEntry 14 }
rlPethPsePortFourPairForced OBJECT-TYPE
SYNTAX INTEGER {
forcedEnable(0),
forcedDisable(1)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable enabled the spare pair ALT_B in 60W port to force 4 pair enable."
::= { rlPethPsePortEntry 15 }
rlPethPsePortFourPairEnabled OBJECT-TYPE
SYNTAX INTEGER {
fourPairEnable(1),
fourPairDisable(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates that spare pair ALT_B is enable."
::= { rlPethPsePortEntry 16 }
rlPethPsePortNegotiationAllocatedPower OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the power allocation in milli watts from power negotiation"
::= { rlPethPsePortEntry 17 }
rlPethPsePortNegotiationProtocolOwner OBJECT-TYPE
SYNTAX INTEGER {
protocolOwnerNone(0),
protocolOwnerCDP(1),
protocolOwnerLLDP(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the protocol owner on power management negotiation protocol"
::= { rlPethPsePortEntry 18 }
rlPethMainPseTable OBJECT-TYPE
SYNTAX SEQUENCE OF RlPethMainPseEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" The table listing additional read - only information for Power Over Ethernet."
::= {rlPoe 2 }
rlPethMainPseEntry OBJECT-TYPE
SYNTAX RlPethMainPseEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" An entry in the rlPethMainPseTable."
INDEX { rlPethMainPseGroupIndex }
::= {rlPethMainPseTable 1 }
RlPethMainPseEntry ::= SEQUENCE {
rlPethMainPseGroupIndex INTEGER,
rlPethMainPseSwVersion DisplayString,
rlPethMainPseHwVersion DisplayString,
rlPethMainPseHwType INTEGER,
rlPethMainPsePowerGuardBand INTEGER
}
rlPethMainPseGroupIndex OBJECT-TYPE
SYNTAX INTEGER (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This variable uniquely identifies the group
containing the port to which a power Ethernet PSE is
connected. Group means box in the stack, module in a
rack and the value 1 MUST be used for non-modular devices.
Furthermore, the same value MUST be used in this variable,
pethMainPseGroupIndex, and pethNotificationControlGroupIndex
to refer to a given box in a stack or module in the rack."
::= { rlPethMainPseEntry 1 }
rlPethMainPseSwVersion OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..20))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable identifies the MCU SW version."
::= { rlPethMainPseEntry 2 }
rlPethMainPseHwVersion OBJECT-TYPE
SYNTAX DisplayString(SIZE(0..20))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable identifies the MCU HW version."
::= { rlPethMainPseEntry 3 }
rlPethMainPseHwType OBJECT-TYPE
SYNTAX INTEGER {
enhanced(1),
plus(2),
auto(3),
nonPoe(4),
enhancedPlus(5),
poe60w(6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable identifies the MCU HW type (enhanced, plus, none)."
::= { rlPethMainPseEntry 4 }
rlPethMainPsePowerGuardBand OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable identifies the guard band in [W] for not connecting
additional ports."
::= { rlPethMainPseEntry 5 }
rlPethPowerPseTable OBJECT-TYPE
SYNTAX SEQUENCE OF RlPethPowerPseEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" The table listing additional read-write information for Power Over Ethernet - PSE side."
::= {rlPoe 3 }
rlPethPowerPseEntry OBJECT-TYPE
SYNTAX RlPethPowerPseEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" An entry in the rlPethPowerPseTable."
INDEX { rlPethPowerPseGroupIndex }
::= {rlPethPowerPseTable 1 }
RlPethPowerPseEntry ::= SEQUENCE {
rlPethPowerPseGroupIndex INTEGER,
rlPethPowerPsePower INTEGER,
rlPethPowerPseRpsPower INTEGER,
rlPethPowerPsePowerManagementMode INTEGER,
rlPethPowerPsedisconnectMethod INTEGER,
rlPethPowerPseTemperatureSensor INTEGER,
rlPethPowerPseInrushTestEnabled INTEGER,
rlPethPowerPseLegacyDisabled INTEGER
}
rlPethPowerPseGroupIndex OBJECT-TYPE
SYNTAX INTEGER (1..8)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This variable uniquely identifies the group
containing the port to which a power Ethernet PSE is
connected. Group means box in the stack, module in a
rack and the value 1 MUST be used for non-modular devices.
Furthermore, the same value MUST be used in this variable,
PethPowerPseGroupIndex, and pethNotificationControlGroupIndex
to refer to a given box in a stack or module in the rack."
::= { rlPethPowerPseEntry 1 }
-- depricated
rlPethPowerPsePower OBJECT-TYPE
SYNTAX INTEGER {
none(0),
ps1(1),
ps2(2),
ps3(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies the maximum power in [W] supplied by PSE."
::= { rlPethPowerPseEntry 2 }
-- depricated
rlPethPowerPseRpsPower OBJECT-TYPE
SYNTAX INTEGER {
none(0),
rps1(1),
rps2(2),
rps3(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies the maximum power in [W] supplied by PSE + RPS."
::= { rlPethPowerPseEntry 3 }
rlPethPowerPsePowerManagementMode OBJECT-TYPE
SYNTAX INTEGER {
portlimit(0),
classlimit(5),
maxlimit(6)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies power management mode."
::= { rlPethPowerPseEntry 4 }
rlPethPowerPsedisconnectMethod OBJECT-TYPE
SYNTAX INTEGER {
lowestpriority(0),
nextport(1)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies disconnect method. "
::= { rlPethPowerPseEntry 5 }
rlPethPowerPseTemperatureSensor OBJECT-TYPE
SYNTAX INTEGER (-200..200)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable identifies the pd temperature sensor. "
::= { rlPethPowerPseEntry 6 }
rlPethPowerPseInrushTestEnabled OBJECT-TYPE
SYNTAX INTEGER {
enabled(0),
disabled(1)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies if HW inrush test will be disabled.
by default HW inrush test is enabled."
::= { rlPethPowerPseEntry 7 }
rlPethPowerPseLegacyDisabled OBJECT-TYPE
SYNTAX INTEGER {
enabled(0),
disabled(1)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable identifies poe Legacy global configuration mode"
::= { rlPethPowerPseEntry 8 }
--rlPethPdPortTable
rlPethPdPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF RlPethPdPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" The table listing additional read-write information for Power Over Ethernet - PD side."
::= {rlPoe 4 }
rlPethPdPortEntry OBJECT-TYPE
SYNTAX RlPethPdPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
" An entry in the rlPethPdPortTable."
INDEX { rlPethPdPortIndex }
::= {rlPethPdPortTable 1}
RlPethPdPortEntry ::= SEQUENCE {
rlPethPdPortIndex InterfaceIndex,
rlPethPdPortSupportPoeType RlPoeType,
rlPethPdPortOperPoeType RlPoeType,
rlPethPdPortPowerRequest Unsigned32,
rlPethPdPortPowerAvailable Unsigned32,
rlPethPdPortForcedMode RlPoeType,
rlPethPdPortNegotiationProtocolOwner INTEGER
}
rlPethPdPortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This variable uniquely identifies the power Ethernet PD
port within group rlPethPdPortGroupIndex to which the
power Ethernet PSE entry is connected."
::= { rlPethPdPortEntry 1 }
rlPethPdPortSupportPoeType OBJECT-TYPE
SYNTAX RlPoeType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the PoE type of the PD port (AF/AT/60W)"
::= { rlPethPdPortEntry 2 }
rlPethPdPortOperPoeType OBJECT-TYPE
SYNTAX RlPoeType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the operational PoE status of the PD port"
::= { rlPethPdPortEntry 3 }
rlPethPdPortPowerRequest OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the requested power the PD port request from the PSE in mili-Watts"
::= { rlPethPdPortEntry 4 }
rlPethPdPortPowerAvailable OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the available power the PSE port offers to the PD port in mili-Watts"
::= { rlPethPdPortEntry 5 }
rlPethPdPortForcedMode OBJECT-TYPE
SYNTAX RlPoeType
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This variable indicates the powered PD port forced mode"
::= { rlPethPdPortEntry 6 }
rlPethPdPortNegotiationProtocolOwner OBJECT-TYPE
SYNTAX INTEGER {
protocolOwnerNone(0),
protocolOwnerCDP(1),
protocolOwnerLLDP(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This variable indicates the protocol owner on power management negotiation protocol"
::= { rlPethPdPortEntry 7 }
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff