More cisco state fixes (#16369)

* More cisco state fixes
Turns out it was fetching values as strings.  Swap to SnmpQuery and fetch the data numeric as expected

* Apply fixes from StyleCI

* update MIB too

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
This commit is contained in:
Tony Murray 2024-09-06 18:49:55 -05:00 committed by GitHub
parent 81d6eb57e6
commit f54e38f4fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 155 additions and 143 deletions

View File

@ -10,28 +10,28 @@
* the source code distribution for details.
*/
$role_data = snmpwalk_cache_oid($device, 'cswSwitchRole', [], 'CISCO-STACKWISE-MIB');
$redundant_data = snmp_get($device, 'cswRingRedundant.0', '-OQv', 'CISCO-STACKWISE-MIB');
$role_data = SnmpQuery::walk('CISCO-STACKWISE-MIB::cswSwitchRole')->values();
$redundant_data = SnmpQuery::enumStrings()->get('CISCO-STACKWISE-MIB::cswRingRedundant.0')->value();
$tables = [
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.1.1.6.', 'oid' => 'c3gModemStatus', 'state_name' => 'c3gModemStatus', 'mib' => 'CISCO-WAN-3G-MIB', 'descr' => 'Modem status'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.4.1.1.3.', 'oid' => 'c3gGsmCurrentBand', 'state_name' => 'c3gGsmCurrentBand', 'mib' => 'CISCO-WAN-3G-MIB', 'descr' => 'Current band'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.2.1.5.', 'oid' => 'c3gGsmPacketService', 'state_name' => 'c3gGsmPacketService', 'mib' => 'CISCO-WAN-3G-MIB', 'descr' => 'Packet service'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.2.1.6.', 'oid' => 'c3gGsmCurrentRoamingStatus', 'state_name' => 'c3gGsmCurrentRoamingStatus', 'mib' => 'CISCO-WAN-3G-MIB', 'descr' => 'Roaming status'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.5.1.1.2.', 'oid' => 'c3gGsmSimStatus', 'state_name' => 'c3gGsmSimStatus', 'mib' => 'CISCO-WAN-3G-MIB', 'descr' => 'SIM status'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.2.1.7.', 'oid' => 'ciscoEnvMonVoltageStatusTable', 'state_name' => 'ciscoEnvMonVoltageState', 'mib' => 'CISCO-ENVMON-MIB', 'descr' => 'ciscoEnvMonVoltageStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.3.1.6.', 'oid' => 'ciscoEnvMonTemperatureStatusTable', 'state_name' => 'ciscoEnvMonTemperatureState', 'mib' => 'CISCO-ENVMON-MIB', 'descr' => 'ciscoEnvMonTemperatureStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.4.1.3.', 'oid' => 'ciscoEnvMonFanStatusTable', 'state_name' => 'ciscoEnvMonFanState', 'mib' => 'CISCO-ENVMON-MIB', 'descr' => 'ciscoEnvMonFanStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.5.1.3.', 'oid' => 'ciscoEnvMonSupplyStatusTable', 'state_name' => 'ciscoEnvMonSupplyState', 'mib' => 'CISCO-ENVMON-MIB', 'descr' => 'ciscoEnvMonSupplyStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.117.1.1.2.1.2.', 'oid' => 'cefcFRUPowerStatusTable', 'state_name' => 'cefcFRUPowerOperStatus', 'mib' => 'CISCO-ENTITY-FRU-CONTROL-MIB', 'descr' => 'Sensor Name'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.1.2.', 'oid' => 'cRFStatusUnitState', 'state_name' => 'cRFStatusUnitState', 'mib' => 'CISCO-RF-MIB', 'descr' => 'VSS Device State'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.1.4.', 'oid' => 'cRFStatusPeerUnitState', 'state_name' => 'cRFStatusPeerUnitState', 'mib' => 'CISCO-RF-MIB', 'descr' => 'VSS Peer State'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.2.14.', 'oid' => 'cRFCfgRedundancyOperMode', 'state_name' => 'cRFCfgRedundancyOperMode', 'mib' => 'CISCO-RF-MIB', 'descr' => 'VSS Mode'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.1.3.', 'oid' => 'cswGlobals', 'state_name' => 'cswRingRedundant', 'mib' => 'CISCO-STACKWISE-MIB', 'descr' => 'Stack Ring - Redundant'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.1.1.3.', 'oid' => 'cswSwitchRole', 'state_name' => 'cswSwitchRole', 'mib' => 'CISCO-STACKWISE-MIB', 'descr' => 'Stack Role - Switch#'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.1.1.6.', 'oid' => 'cswSwitchState', 'state_name' => 'cswSwitchState', 'mib' => 'CISCO-STACKWISE-MIB', 'descr' => 'Stack State - Switch#'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.2.1.1.', 'oid' => 'cswStackPortOperStatus', 'state_name' => 'cswStackPortOperStatus', 'mib' => 'CISCO-STACKWISE-MIB', 'descr' => 'Stack Port Status - '],
['num_oid' => '.1.3.6.1.4.1.9.9.601.1.3.1.1.4.', 'oid' => 'crepSegmentComplete', 'state_name' => 'crepSegmentComplete', 'mib' => 'CISCO-RESILIENT-ETHERNET-PROTOCOL-MIB', 'descr' => 'REP State - Segment '],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.1.1.6.', 'oid' => 'CISCO-WAN-3G-MIB::c3gModemStatus', 'state_name' => 'c3gModemStatus', 'descr' => 'Modem status'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.4.1.1.3.', 'oid' => 'CISCO-WAN-3G-MIB::c3gGsmCurrentBand', 'state_name' => 'c3gGsmCurrentBand', 'descr' => 'Current band'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.2.1.5.', 'oid' => 'CISCO-WAN-3G-MIB::c3gGsmPacketService', 'state_name' => 'c3gGsmPacketService', 'descr' => 'Packet service'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.2.1.6.', 'oid' => 'CISCO-WAN-3G-MIB::c3gGsmCurrentRoamingStatus', 'state_name' => 'c3gGsmCurrentRoamingStatus', 'descr' => 'Roaming status'],
['num_oid' => '.1.3.6.1.4.1.9.9.661.1.3.5.1.1.2.', 'oid' => 'CISCO-WAN-3G-MIB::c3gGsmSimStatus', 'state_name' => 'c3gGsmSimStatus', 'descr' => 'SIM status'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.2.1.7.', 'oid' => 'CISCO-ENVMON-MIB::ciscoEnvMonVoltageStatusTable', 'state_name' => 'ciscoEnvMonVoltageState', 'descr' => 'ciscoEnvMonVoltageStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.3.1.6.', 'oid' => 'CISCO-ENVMON-MIB::ciscoEnvMonTemperatureStatusTable', 'state_name' => 'ciscoEnvMonTemperatureState', 'descr' => 'ciscoEnvMonTemperatureStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.4.1.3.', 'oid' => 'CISCO-ENVMON-MIB::ciscoEnvMonFanStatusTable', 'state_name' => 'ciscoEnvMonFanState', 'descr' => 'ciscoEnvMonFanStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.13.1.5.1.3.', 'oid' => 'CISCO-ENVMON-MIB::ciscoEnvMonSupplyStatusTable', 'state_name' => 'ciscoEnvMonSupplyState', 'descr' => 'ciscoEnvMonSupplyStatusDescr'],
['num_oid' => '.1.3.6.1.4.1.9.9.117.1.1.2.1.2.', 'oid' => 'CISCO-ENTITY-FRU-CONTROL-MIB::cefcFRUPowerStatusTable', 'state_name' => 'cefcFRUPowerOperStatus', 'descr' => 'Sensor Name'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.1.2.', 'oid' => 'CISCO-RF-MIB::cRFStatusUnitState', 'state_name' => 'cRFStatusUnitState', 'descr' => 'VSS Device State'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.1.4.', 'oid' => 'CISCO-RF-MIB::cRFStatusPeerUnitState', 'state_name' => 'cRFStatusPeerUnitState', 'descr' => 'VSS Peer State'],
['num_oid' => '.1.3.6.1.4.1.9.9.176.1.2.14.', 'oid' => 'CISCO-RF-MIB::cRFCfgRedundancyOperMode', 'state_name' => 'cRFCfgRedundancyOperMode', 'descr' => 'VSS Mode'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.1.3.', 'oid' => 'CISCO-STACKWISE-MIB::cswGlobals', 'state_name' => 'cswRingRedundant', 'descr' => 'Stack Ring - Redundant'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.1.1.3.', 'oid' => 'CISCO-STACKWISE-MIB::cswSwitchRole', 'state_name' => 'cswSwitchRole', 'descr' => 'Stack Role - Switch#'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.1.1.6.', 'oid' => 'CISCO-STACKWISE-MIB::cswSwitchState', 'state_name' => 'cswSwitchState', 'descr' => 'Stack State - Switch#'],
['num_oid' => '.1.3.6.1.4.1.9.9.500.1.2.2.1.1.', 'oid' => 'CISCO-STACKWISE-MIB::cswStackPortOperStatus', 'state_name' => 'cswStackPortOperStatus', 'descr' => 'Stack Port Status - '],
['num_oid' => '.1.3.6.1.4.1.9.9.601.1.3.1.1.4.', 'oid' => 'CISCO-RESILIENT-ETHERNET-PROTOCOL-MIB::crepSegmentComplete', 'state_name' => 'crepSegmentComplete', 'descr' => 'REP State - Segment '],
];
$swrolenumber = 0;
@ -40,24 +40,24 @@ $repsegmentnumber = 0;
foreach ($tables as $tablevalue) {
//Some switches on 15.x expose this information regardless if they are stacked or not, we try to mitigate that by doing the following.
if (($tablevalue['oid'] == 'cswGlobals' || $tablevalue['oid'] == 'cswSwitchRole' || $tablevalue['oid'] == 'cswSwitchState' || $tablevalue['oid'] == 'cswStackPortOperStatus') && $redundant_data == 'false' && count($role_data) == 1) {
if (($tablevalue['oid'] == 'cswGlobals' || $tablevalue['oid'] == 'cswSwitchRole' || $tablevalue['oid'] == 'cswSwitchState' || $tablevalue['oid'] == 'cswStackPortOperStatus') && $redundant_data == 'false' && count($role_data) <= 1) {
continue;
}
$temp = snmpwalk_cache_multi_oid($device, $tablevalue['oid'], [], $tablevalue['mib']);
$temp = SnmpQuery::hideMib()->walk($tablevalue['oid'])->valuesByIndex();
$cur_oid = $tablevalue['num_oid'];
if (is_array($temp)) {
if ((isset($temp[0][$tablevalue['state_name']]) && $temp[0][$tablevalue['state_name']] == 'nonRedundant') || (isset($temp[0]['cswMaxSwitchNum']) && $temp[0]['cswMaxSwitchNum'] == '1')) {
if (! empty($temp)) {
$state_name = $tablevalue['state_name'];
if ((isset($temp[0][$state_name]) && $temp[0][$state_name] == 'nonRedundant') || (isset($temp[0]['cswMaxSwitchNum']) && $temp[0]['cswMaxSwitchNum'] == '1')) {
break;
}
//Create State Index
$state_name = $tablevalue['state_name'];
//Create State Translation
if ($state_name == 'cRFStatusUnitState' || $state_name == 'cRFStatusPeerUnitState') {
$states = [
$states = match ($state_name) {
'cRFStatusUnitState','cRFStatusPeerUnitState' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'notKnown'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'disabled'],
['value' => 3, 'generic' => 1, 'graph' => 0, 'descr' => 'initialization'],
@ -74,9 +74,8 @@ foreach ($tables as $tablevalue) {
['value' => 14, 'generic' => 0, 'graph' => 0, 'descr' => 'active'],
['value' => 15, 'generic' => 1, 'graph' => 0, 'descr' => 'activeExtraload'],
['value' => 16, 'generic' => 1, 'graph' => 0, 'descr' => 'activeHandback'],
];
} elseif ($state_name == 'cRFCfgRedundancyOperMode') {
$states = [
],
'cRFCfgRedundancyOperMode' => [
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'nonRedundant'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'staticLoadShareNonRedundant'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'dynamicLoadShareNonRedundant'],
@ -85,21 +84,18 @@ foreach ($tables as $tablevalue) {
['value' => 6, 'generic' => 0, 'graph' => 0, 'descr' => 'coldStandbyRedundant'],
['value' => 7, 'generic' => 0, 'graph' => 0, 'descr' => 'warmStandbyRedundant'],
['value' => 8, 'generic' => 0, 'graph' => 0, 'descr' => 'hotStandbyRedundant'],
];
} elseif ($state_name == 'cswRingRedundant') {
$states = [
],
'cswRingRedundant' => [
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'true'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'false'],
];
} elseif ($state_name == 'cswSwitchRole') {
$states = [
],
'cswSwitchRole' => [
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'master'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'member'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'notMember'],
['value' => 4, 'generic' => 0, 'graph' => 0, 'descr' => 'standby'],
];
} elseif ($state_name == 'cswSwitchState') {
$states = [
],
'cswSwitchState' => [
['value' => 1, 'generic' => 1, 'graph' => 0, 'descr' => 'waiting'],
['value' => 2, 'generic' => 1, 'graph' => 0, 'descr' => 'progressing'],
['value' => 3, 'generic' => 1, 'graph' => 0, 'descr' => 'added'],
@ -111,9 +107,8 @@ foreach ($tables as $tablevalue) {
['value' => 9, 'generic' => 1, 'graph' => 0, 'descr' => 'provisioned'],
['value' => 10, 'generic' => 2, 'graph' => 0, 'descr' => 'invalid'],
['value' => 11, 'generic' => 1, 'graph' => 0, 'descr' => 'removed'],
];
} elseif ($state_name == 'cefcFRUPowerOperStatus') {
$states = [
],
'cefcFRUPowerOperStatus' => [
['value' => 1, 'generic' => 2, 'graph' => 0, 'descr' => 'off (other)'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'on'],
['value' => 3, 'generic' => 1, 'graph' => 0, 'descr' => 'off (admin)'],
@ -126,16 +121,14 @@ foreach ($tables as $tablevalue) {
['value' => 10, 'generic' => 2, 'graph' => 0, 'descr' => 'off (cooling)'],
['value' => 11, 'generic' => 2, 'graph' => 0, 'descr' => 'off (connector rating)'],
['value' => 12, 'generic' => 1, 'graph' => 0, 'descr' => 'on (no inline power)'],
];
} elseif ($state_name == 'c3gModemStatus') {
$states = [
],
'c3gModemStatus' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'offline'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'online'],
['value' => 4, 'generic' => 1, 'graph' => 0, 'descr' => 'low power mode'],
];
} elseif ($state_name == 'c3gGsmCurrentBand') {
$states = [
],
'c3gGsmCurrentBand' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'invalid'],
['value' => 3, 'generic' => 3, 'graph' => 0, 'descr' => 'none'],
@ -148,9 +141,8 @@ foreach ($tables as $tablevalue) {
['value' => 10, 'generic' => 0, 'graph' => 0, 'descr' => 'wcdma1900'],
['value' => 11, 'generic' => 0, 'graph' => 0, 'descr' => 'wcdma2100'],
['value' => 12, 'generic' => 0, 'graph' => 0, 'descr' => 'lte band'],
];
} elseif ($state_name == 'c3gGsmPacketService') {
$states = [
],
'c3gGsmPacketService' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 2, 'generic' => 1, 'graph' => 0, 'descr' => 'none'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'gprs'],
@ -161,15 +153,13 @@ foreach ($tables as $tablevalue) {
['value' => 8, 'generic' => 0, 'graph' => 0, 'descr' => 'hspa'],
['value' => 9, 'generic' => 0, 'graph' => 0, 'descr' => 'hspa plus'],
['value' => 10, 'generic' => 0, 'graph' => 0, 'descr' => 'lte'],
];
} elseif ($state_name == 'c3gGsmCurrentRoamingStatus') {
$states = [
],
'c3gGsmCurrentRoamingStatus' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'roaming'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'home'],
];
} elseif ($state_name == 'c3gGsmSimStatus') {
$states = [
],
'c3gGsmSimStatus' => [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'ok'],
['value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'not inserted'],
@ -183,28 +173,26 @@ foreach ($tables as $tablevalue) {
['value' => 11, 'generic' => 2, 'graph' => 0, 'descr' => 'wcchv2Rejecteddma2100'],
['value' => 12, 'generic' => 2, 'graph' => 0, 'descr' => 'mepLocked'],
['value' => 13, 'generic' => 2, 'graph' => 0, 'descr' => 'networkRejected'],
];
} elseif ($state_name == 'crepSegmentComplete') {
$states = [
],
'crepSegmentComplete' => [
['value' => 0, 'generic' => 3, 'graph' => 0, 'descr' => 'unknown'],
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'complete'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'incomplete'],
];
} else {
$states = [
],
default => [
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'normal'],
['value' => 2, 'generic' => 1, 'graph' => 0, 'descr' => 'warning'],
['value' => 3, 'generic' => 2, 'graph' => 0, 'descr' => 'critical'],
['value' => 4, 'generic' => 3, 'graph' => 0, 'descr' => 'shutdown'],
['value' => 5, 'generic' => 3, 'graph' => 0, 'descr' => 'notPresent'],
['value' => 6, 'generic' => 2, 'graph' => 0, 'descr' => 'notFunctioning'],
];
}
],
};
create_state_index($state_name, $states);
foreach ($temp as $index => $entry) {
$state_group = null;
if ($tablevalue['state_name'] == 'ciscoEnvMonTemperatureState' && (empty($entry[$tablevalue['descr']]))) {
if ($state_name == 'ciscoEnvMonTemperatureState' && (empty($entry[$tablevalue['descr']]))) {
d_echo('Invalid sensor, skipping..');
} else {
//Discover Sensors
@ -221,15 +209,15 @@ foreach ($tables as $tablevalue) {
$stack_port_descr = get_port_by_index_cache($device['device_id'], $index);
$descr = $tablevalue['descr'] . $stack_port_descr['ifDescr'];
} elseif ($state_name == 'cefcFRUPowerOperStatus') {
$descr = snmp_get($device, 'entPhysicalName.' . $index, '-Oqv', 'ENTITY-MIB');
$descr = SnmpQuery::get('ENTITY-MIB::entPhysicalName.' . $index)->value();
} elseif ($state_name == 'c3gModemStatus' || $state_name == 'c3gGsmCurrentBand' || $state_name == 'c3gGsmPacketService' || $state_name == 'c3gGsmCurrentRoamingStatus' || $state_name == 'c3gGsmSimStatus') {
$descr = $tablevalue['descr'];
$state_group = snmp_get($device, 'entPhysicalName.' . $index, '-Oqv', 'ENTITY-MIB');
$state_group = SnmpQuery::get('ENTITY-MIB::entPhysicalName.' . $index)->value();
} elseif ($state_name == 'crepSegmentComplete') {
$repsegmentnumber++;
$descr = $tablevalue['descr'] . $repsegmentnumber;
}
discover_sensor(null, 'state', $device, $cur_oid . $index, $index, $state_name, trim($descr), 1, 1, null, null, null, null, $entry[$tablevalue['state_name']], 'snmp', $index, null, null, $state_group);
discover_sensor(null, 'state', $device, $cur_oid . $index, $index, $state_name, trim($descr), 1, 1, null, null, null, null, $entry[$state_name], 'snmp', $index, null, null, $state_group);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);
@ -238,4 +226,4 @@ foreach ($tables as $tablevalue) {
}
}
unset($role_data, $redundant_data);
unset($role_data, $redundant_data, $temp);

View File

@ -1,11 +1,13 @@
-- $Id: CISCO-ENVMON-MIB.my,v 3.2.56.4 1996/06/11 19:38:23 snyder Exp $
-- $Source: /release/112/cvs/Xsys/MIBS/CISCO-ENVMON-MIB.my,v $
-- *****************************************************************
-- CISCO-ENVMON-MIB.my: CISCO Environmental Monitor MIB file
--
-- November 1994 Sandra C. Durham/Jeffrey T. Johnson
--
-- Copyright (c) 1994-2003, 2004 by cisco Systems, Inc.
-- Copyright (c) 1994-2003, 2004, 2018 by cisco Systems, Inc.
-- All rights reserved.
--
--
-- *****************************************************************
--
CISCO-ENVMON-MIB DEFINITIONS ::= BEGIN
@ -30,7 +32,7 @@ IMPORTS
ciscoEnvMonMIB MODULE-IDENTITY
LAST-UPDATED "200312010000Z"
LAST-UPDATED "201803210000Z"
ORGANIZATION "Cisco Systems, Inc."
CONTACT-INFO
" Cisco Systems
@ -43,12 +45,16 @@ ciscoEnvMonMIB MODULE-IDENTITY
Tel: +1 800 553-NETS
E-mail: cs-snmp@cisco.com"
DESCRIPTION
"Added an object ciscoEnvMonTemperatureStatusValueRev1 to
CiscoEnvMonTemperatureStatusEntry for support of negative temperature"
REVISION "201803210000Z"
DESCRIPTION
"The MIB module to describe the status of the Environmental
Monitor on those devices which support one."
REVISION "200312010000Z"
REVISION "200312010000Z"
DESCRIPTION
"Added c37xx (13) and other (14) as values for
"Added c37xx (13) and other (14) as values for
ciscoEnvMonPresent"
REVISION "200311250000Z"
DESCRIPTION
@ -62,8 +68,8 @@ ciscoEnvMonMIB MODULE-IDENTITY
and ciscoEnvMonStatChangeNotifGroup."
REVISION "200202040000Z"
DESCRIPTION
"Added osr7600(11) as values
for ciscoEnvMonPresent"
"Added osr7600(11) as values
for ciscoEnvMonPresent"
REVISION "200108300000Z"
DESCRIPTION
"Added c10000(10) as values for ciscoEnvMonPresent"
@ -72,7 +78,7 @@ ciscoEnvMonMIB MODULE-IDENTITY
"Added cat4000(9) as values for ciscoEnvMonPresent"
REVISION "200105070000Z"
DESCRIPTION
"Added cat6000(7),ubr7200(8)
"Added cat6000(7),ubr7200(8)
as values for ciscoEnvMonPresent"
REVISION "200001310000Z"
DESCRIPTION
@ -80,13 +86,13 @@ ciscoEnvMonMIB MODULE-IDENTITY
"
REVISION "9810220000Z"
DESCRIPTION
"Renamed enumerated value internalRPS(5) as
"Renamed enumerated value internalRPS(5) as
internalRedundant(5) and added description for
ciscoEnvMonSupplySource enumerated values.
"
REVISION "9808050000Z"
DESCRIPTION
"Add enumerated value internalRPS(5) to
"Add enumerated value internalRPS(5) to
ciscoEnvMonSupplySource.
"
REVISION "9611120000Z"
@ -127,7 +133,7 @@ CiscoEnvMonState ::= TEXTUAL-CONVENTION
notPresent(5): the environmental monitor is not present,
such as temperature sensors do not exist.
notFunctioning(6): the environmental monitor does not
notFunctioning(6): the environmental monitor does not
function properly, such as a temperature
sensor generates a abnormal data like
1000 C.
@ -144,9 +150,9 @@ CiscoEnvMonState ::= TEXTUAL-CONVENTION
CiscoSignedGauge ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Represents the current value of an entity, as a signed
"Represents the current value of an entity, as a signed
integer."
SYNTAX Integer32
SYNTAX Integer32
ciscoEnvMonObjects OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 1 }
@ -156,15 +162,18 @@ ciscoEnvMonPresent OBJECT-TYPE
ags (2),
c7000 (3),
ci (4),
cAccessMon (6),
cat6000 (7),
ubr7200 (8),
cat4000 (9),
c10000 (10),
osr7600(11),
c7600 (12),
c37xx (13),
other (14)
c7600(12),
c37xx(13),
other(14),
c7301(15),
c7304(16)
}
MAX-ACCESS read-only
STATUS current
@ -312,7 +321,8 @@ CiscoEnvMonTemperatureStatusEntry ::=
ciscoEnvMonTemperatureStatusValue Gauge32,
ciscoEnvMonTemperatureThreshold Integer32,
ciscoEnvMonTemperatureLastShutdown Integer32,
ciscoEnvMonTemperatureState CiscoEnvMonState
ciscoEnvMonTemperatureState CiscoEnvMonState,
ciscoEnvMonTemperatureStatusValueRev1 Integer32
}
@ -341,9 +351,11 @@ ciscoEnvMonTemperatureStatusValue OBJECT-TYPE
SYNTAX Gauge32
UNITS "degrees Celsius"
MAX-ACCESS read-only
STATUS current
STATUS deprecated
DESCRIPTION
"The current measurement of the testpoint being instrumented."
"The current measurement of the testpoint being instrumented.
The object ciscoEnvMonTemperatureStatusValueRev1 should be
used to read the temperature."
::= { ciscoEnvMonTemperatureStatusEntry 3 }
ciscoEnvMonTemperatureThreshold OBJECT-TYPE
@ -353,7 +365,7 @@ ciscoEnvMonTemperatureThreshold OBJECT-TYPE
STATUS current
DESCRIPTION
"The highest value that the associated instance of the
object ciscoEnvMonTemperatureStatusValue may obtain
object ciscoEnvMonTemperatureStatusValueRev1 may obtain
before an emergency shutdown of the managed device is
initiated."
::= { ciscoEnvMonTemperatureStatusEntry 4 }
@ -365,7 +377,7 @@ ciscoEnvMonTemperatureLastShutdown OBJECT-TYPE
STATUS current
DESCRIPTION
"The value of the associated instance of the object
ciscoEnvMonTemperatureStatusValue at the time an emergency
ciscoEnvMonTemperatureStatusValueRev1 at the time an emergency
shutdown of the managed device was last initiated. This
value is stored in non-volatile RAM and hence is able to
survive the shutdown."
@ -379,7 +391,15 @@ ciscoEnvMonTemperatureState OBJECT-TYPE
"The current state of the testpoint being instrumented."
::= { ciscoEnvMonTemperatureStatusEntry 6 }
ciscoEnvMonTemperatureStatusValueRev1 OBJECT-TYPE
SYNTAX Integer32
UNITS "degrees Celsius"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current measurement of the testpoint being instrumented.It also
accomodates negative temperature values."
::= { ciscoEnvMonTemperatureStatusEntry 7 }
ciscoEnvMonFanStatusTable OBJECT-TYPE
SYNTAX SEQUENCE OF CiscoEnvMonFanStatusEntry
@ -511,7 +531,7 @@ ciscoEnvMonSupplySource OBJECT-TYPE
ac - AC power supply
dc - DC power supply
externalPowerSupply - External power supply
internalRedundant - Internal redundant power supply
internalRedundant - Internal redundant power supply
"
::= { ciscoEnvMonSupplyStatusEntry 4 }
@ -542,8 +562,8 @@ ciscoEnvMonEnableShutdownNotification OBJECT-TYPE
STATUS current
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonShutdownNotification. A false
value will prevent shutdown notifications
produces the ciscoEnvMonShutdownNotification. A false
value will prevent shutdown notifications
from being generated by this system."
DEFVAL { false }
::= { ciscoEnvMonMIBNotificationEnables 1 }
@ -554,8 +574,8 @@ ciscoEnvMonEnableVoltageNotification OBJECT-TYPE
STATUS deprecated
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonVoltageNotification. A false
value will prevent voltage notifications from being
produces the ciscoEnvMonVoltageNotification. A false
value will prevent voltage notifications from being
generated by this system. This object is deprecated
in favour of ciscoEnvMonEnableStatChangeNotif."
DEFVAL { false }
@ -568,9 +588,9 @@ ciscoEnvMonEnableTemperatureNotification OBJECT-TYPE
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonTemperatureNotification.
A false value prevents temperature notifications
from being sent by this entity. This object is
deprecated in favour of
A false value prevents temperature notifications
from being sent by this entity. This object is
deprecated in favour of
ciscoEnvMonEnableStatChangeNotif."
DEFVAL { false }
::= { ciscoEnvMonMIBNotificationEnables 3 }
@ -582,9 +602,9 @@ ciscoEnvMonEnableFanNotification OBJECT-TYPE
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonFanNotification.
A false value prevents fan notifications
from being sent by this entity. This object is
deprecated in favour of
A false value prevents fan notifications
from being sent by this entity. This object is
deprecated in favour of
ciscoEnvMonEnableStatChangeNotif."
DEFVAL { false }
::= { ciscoEnvMonMIBNotificationEnables 4 }
@ -595,10 +615,10 @@ ciscoEnvMonEnableRedundantSupplyNotification OBJECT-TYPE
STATUS deprecated
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonRedundantSupplyNotification.
produces the ciscoEnvMonRedundantSupplyNotification.
A false value prevents redundant supply notifications
from being generated by this system. This object is
deprecated in favour of
deprecated in favour of
ciscoEnvMonEnableStatChangeNotif."
DEFVAL { false }
::= { ciscoEnvMonMIBNotificationEnables 5 }
@ -610,10 +630,10 @@ ciscoEnvMonEnableStatChangeNotif OBJECT-TYPE
DESCRIPTION
"This variable indicates whether the system
produces the ciscoEnvMonVoltStatusChangeNotif,
ciscoEnvMonTempStatusChangeNotif,
ciscoEnvMonFanStatusChangeNotif and
ciscoEnvMonSuppStatusChangeNotif. A false value will
prevent these notifications from being generated by
ciscoEnvMonTempStatusChangeNotif,
ciscoEnvMonFanStatusChangeNotif and
ciscoEnvMonSuppStatusChangeNotif. A false value will
prevent these notifications from being generated by
this system."
DEFVAL { false }
::= { ciscoEnvMonMIBNotificationEnables 6 }
@ -629,7 +649,7 @@ ciscoEnvMonShutdownNotification NOTIFICATION-TYPE
DESCRIPTION
"A ciscoEnvMonShutdownNotification is sent if the environmental
monitor detects a testpoint reaching a critical state
and is about to initiate a shutdown. This notification
and is about to initiate a shutdown. This notification
contains no objects so that it may be encoded and sent in the
shortest amount of time possible. Even so, management
applications should not rely on receiving such a notification
@ -645,12 +665,12 @@ ciscoEnvMonVoltageNotification NOTIFICATION-TYPE
}
STATUS deprecated
DESCRIPTION
"A ciscoEnvMonVoltageNotification is sent if the voltage
measured at a given testpoint is outside the normal range
"A ciscoEnvMonVoltageNotification is sent if the voltage
measured at a given testpoint is outside the normal range
for the testpoint (i.e. is at the warning, critical, or
shutdown stage). Since such a notification is usually
generated before the shutdown state is reached, it can
convey more data and has a better chance of being sent
shutdown stage). Since such a notification is usually
generated before the shutdown state is reached, it can
convey more data and has a better chance of being sent
than does the ciscoEnvMonShutdownNotification.
This notification is deprecated in favour of
ciscoEnvMonVoltStatusChangeNotif."
@ -661,18 +681,19 @@ ciscoEnvMonTemperatureNotification NOTIFICATION-TYPE
OBJECTS {
ciscoEnvMonTemperatureStatusDescr,
ciscoEnvMonTemperatureStatusValue,
ciscoEnvMonTemperatureState
ciscoEnvMonTemperatureState,
ciscoEnvMonTemperatureStatusValueRev1
}
STATUS deprecated
DESCRIPTION
"A ciscoEnvMonTemperatureNotification is sent if the
temperature measured at a given testpoint is outside
the normal range for the testpoint (i.e. is at the warning,
critical, or shutdown stage). Since such a Notification
"A ciscoEnvMonTemperatureNotification is sent if the
temperature measured at a given testpoint is outside
the normal range for the testpoint (i.e. is at the warning,
critical, or shutdown stage). Since such a Notification
is usually generated before the shutdown state is reached,
it can convey more data and has a better chance of being
sent than does the ciscoEnvMonShutdownNotification.
This notification is deprecated in favour of
This notification is deprecated in favour of
ciscoEnvMonTempStatusChangeNotif."
::= { ciscoEnvMonMIBNotifications 3 }
@ -686,9 +707,9 @@ ciscoEnvMonFanNotification NOTIFICATION-TYPE
STATUS deprecated
DESCRIPTION
"A ciscoEnvMonFanNotification is sent if any one of
the fans in the fan array (where extant) fails.
Since such a notification is usually generated before
the shutdown state is reached, it can convey more
the fans in the fan array (where extant) fails.
Since such a notification is usually generated before
the shutdown state is reached, it can convey more
data and has a better chance of being sent
than does the ciscoEnvMonShutdownNotification.
This notification is deprecated in favour of
@ -703,12 +724,12 @@ ciscoEnvMonRedundantSupplyNotification NOTIFICATION-TYPE
STATUS deprecated
DESCRIPTION
"A ciscoEnvMonRedundantSupplyNotification is sent if
the redundant power supply (where extant) fails.
Since such a notification is usually generated before
the shutdown state is reached, it can convey more
the redundant power supply (where extant) fails.
Since such a notification is usually generated before
the shutdown state is reached, it can convey more
data and has a better chance of being sent
than does the ciscoEnvMonShutdownNotification.
This notification is deprecated in favour of
This notification is deprecated in favour of
ciscoEnvMonSuppStatusChangeNotif."
::= { ciscoEnvMonMIBNotifications 5 }
@ -720,7 +741,7 @@ ciscoEnvMonVoltStatusChangeNotif NOTIFICATION-TYPE
}
STATUS current
DESCRIPTION
"A ciscoEnvMonVoltStatusChangeNotif is sent if there is
"A ciscoEnvMonVoltStatusChangeNotif is sent if there is
change in the state of a device being monitored
by ciscoEnvMonVoltageState."
::= { ciscoEnvMonMIBNotifications 6 }
@ -729,11 +750,12 @@ ciscoEnvMonTempStatusChangeNotif NOTIFICATION-TYPE
OBJECTS {
ciscoEnvMonTemperatureStatusDescr,
ciscoEnvMonTemperatureStatusValue,
ciscoEnvMonTemperatureState
ciscoEnvMonTemperatureState,
ciscoEnvMonTemperatureStatusValueRev1
}
STATUS current
DESCRIPTION
"A ciscoEnvMonTempStatusChangeNotif is sent if there
"A ciscoEnvMonTempStatusChangeNotif is sent if there
is change in the state of a device being monitored
by ciscoEnvMonTemperatureState."
::= { ciscoEnvMonMIBNotifications 7 }
@ -745,7 +767,7 @@ ciscoEnvMonFanStatusChangeNotif NOTIFICATION-TYPE
}
STATUS current
DESCRIPTION
"A ciscoEnvMonFanStatusChangeNotif is sent if there
"A ciscoEnvMonFanStatusChangeNotif is sent if there
is change in the state of a device being monitored
by ciscoEnvMonFanState."
::= { ciscoEnvMonMIBNotifications 8 }
@ -757,7 +779,7 @@ ciscoEnvMonSuppStatusChangeNotif NOTIFICATION-TYPE
}
STATUS current
DESCRIPTION
"A ciscoEnvMonSupplyStatChangeNotif is sent if there
"A ciscoEnvMonSupplyStatChangeNotif is sent if there
is change in the state of a device being monitored
by ciscoEnvMonSupplyState."
::= { ciscoEnvMonMIBNotifications 9 }
@ -793,14 +815,14 @@ ciscoEnvMonMIBComplianceRev1 MODULE-COMPLIANCE
GROUP ciscoEnvMonEnableStatChangeGroup
DESCRIPTION
"The ciscoEnvMonEnableStatChangeGroup is optional.
"The ciscoEnvMonEnableStatChangeGroup is optional.
This group is applicable for implementations which
need status change notifications for environmental
monitoring."
GROUP ciscoEnvMonStatChangeNotifGroup
DESCRIPTION
"The ciscoEnvMonStatChangeNotifGroup is optional.
"The ciscoEnvMonStatChangeNotifGroup is optional.
This group is applicable for implementations which
need status change notifications for environmental
monitoring."
@ -825,6 +847,7 @@ ciscoEnvMonMIBGroup OBJECT-GROUP
ciscoEnvMonTemperatureThreshold,
ciscoEnvMonTemperatureLastShutdown,
ciscoEnvMonTemperatureState,
ciscoEnvMonTemperatureStatusValueRev1,
ciscoEnvMonFanStatusDescr,
ciscoEnvMonFanState,
@ -844,8 +867,8 @@ ciscoEnvMonMIBGroup OBJECT-GROUP
}
STATUS deprecated
DESCRIPTION
"A collection of objects providing environmental
monitoring capability to a cisco chassis. This group
"A collection of objects providing environmental
monitoring capability to a cisco chassis. This group
is deprecated in favour of ciscoEnvMonMIBGroupRev."
::= { ciscoEnvMonMIBGroups 1 }
@ -865,6 +888,7 @@ ciscoEnvMonMIBGroupRev OBJECT-GROUP
ciscoEnvMonTemperatureThreshold,
ciscoEnvMonTemperatureLastShutdown,
ciscoEnvMonTemperatureState,
ciscoEnvMonTemperatureStatusValueRev1,
ciscoEnvMonFanStatusDescr,
ciscoEnvMonFanState,
@ -880,7 +904,7 @@ ciscoEnvMonMIBGroupRev OBJECT-GROUP
}
STATUS current
DESCRIPTION
"A collection of objects providing environmental
"A collection of objects providing environmental
monitoring capability to a cisco chassis."
::= { ciscoEnvMonMIBGroups 2 }
@ -891,7 +915,7 @@ ciscoEnvMonEnableStatChangeGroup OBJECT-GROUP
STATUS current
DESCRIPTION
"A collection of objects providing enabling/disabling
of the status change notifications for environmental
of the status change notifications for environmental
monitoring."
::= { ciscoEnvMonMIBGroups 3 }
@ -914,7 +938,7 @@ ciscoEnvMonStatChangeNotifGroup NOTIFICATION-GROUP
}
STATUS current
DESCRIPTION
"A collection of notifications providing the status
"A collection of notifications providing the status
change for environmental monitoring."
::= { ciscoEnvMonMIBGroups 5 }
@ -927,10 +951,10 @@ ciscoEnvMonMIBMiscNotifGroup NOTIFICATION-GROUP
}
STATUS deprecated
DESCRIPTION
"A collection of various notifications for the
"A collection of various notifications for the
enviromental monitoring mib module. The notifications
the group and the group are both in deprecated state.
The notifications in the group were deprecated in
The notifications in the group were deprecated in
favour of notifications in
ciscoEnvMonStatChangeNotifGroup."
::= { ciscoEnvMonMIBGroups 6 }