Update Dell MIBs (#16120)

* Update Dell MIBs
tidy up some related code a bit too to make it more readable

* handle extra data correctly (discard it)
This commit is contained in:
Tony Murray 2024-06-14 22:33:51 -05:00 committed by GitHub
parent 449b53d7fc
commit 04a70d2fda
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 6486 additions and 1622 deletions

View File

@ -22,13 +22,12 @@ $tables = [
['batteryTable', '.1.3.6.1.4.1.674.10893.1.20.130.15.1.4.', 'batteryState', 'batteryName', 'StorageManagement-MIB', 'dell'],
];
foreach ($tables as $tablevalue) {
$temp = snmpwalk_cache_multi_oid($device, $tablevalue[0], [], $tablevalue[4], $tablevalue[5]);
$cur_oid = $tablevalue[1];
foreach ($tables as [$table, $num_oid, $value_oid, $descr_oid, $mib, $mib_dir]) {
$temp = snmpwalk_cache_multi_oid($device, $table, [], $mib, $mib_dir);
if (is_array($temp)) {
//Create State Index
$state_name = 'dell.' . $tablevalue[2];
$state_name = 'dell.' . $value_oid;
if ($state_name == 'dell.processorDeviceStatusStatus' || $state_name == 'dell.memoryDeviceStatus' || $state_name == 'dell.powerSupplyStatus' || $state_name == 'dell.intrusionStatus') {
$states = [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'other'],
@ -107,18 +106,18 @@ foreach ($tables as $tablevalue) {
create_state_index($state_name, $states);
foreach ($temp as $index => $entry) {
if (strpos($index, '54.') === false) { //Because Dell is buggy
if (array_key_exists($value_oid, $entry)) { // ward against extra data from newer MIBs
if ($state_name == 'dell.intrusionStatus') {
$descr = $tablevalue[3];
$descr = $descr_oid;
} elseif ($state_name == 'dell.batteryState') {
$descr = str_replace('"', '', snmp_get($device, 'batteryConnectionControllerName.' . $index . '', '-Ovqn', $tablevalue[4])) . ' - ' . $temp[$index][$tablevalue[3]];
$descr = str_replace('"', '', snmp_get($device, 'batteryConnectionControllerName.' . $index, '-Ovqn', $mib)) . ' - ' . $entry[$descr_oid];
} elseif ($state_name == 'dell.arrayDiskState') {
$descr = str_replace('"', '', snmp_get($device, 'arrayDiskEnclosureConnectionEnclosureName.' . $index . '', '-Ovqn', $tablevalue[4])) . ' - ' . $temp[$index][$tablevalue[3]];
$descr = str_replace('"', '', snmp_get($device, 'arrayDiskEnclosureConnectionEnclosureName.' . $index, '-Ovqn', $mib)) . ' - ' . $entry[$descr_oid];
} else {
$descr = strip_tags($temp[$index][$tablevalue[3]]); // Use clean as virtualDiskDeviceName is user defined
$descr = strip_tags($entry[$descr_oid]); // Use clean as virtualDiskDeviceName is user defined
}
//Discover Sensors
discover_sensor($valid['sensor'], 'state', $device, $cur_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $temp[$index][$tablevalue[2]], 'snmp', $index);
discover_sensor($valid['sensor'], 'state', $device, $num_oid . $index, $index, $state_name, $descr, 1, 1, null, null, null, null, $entry[$value_oid], 'snmp', $index);
//Create Sensor To State Index
create_sensor_to_state_index($device, $state_name, $index);

View File

@ -20,8 +20,7 @@ $tables = [
['systemBatteryTable', '.1.3.6.1.4.1.674.10892.5.4.600.50.1.5.', 'systemBatteryStatus', 'systemBatteryLocationName'],
];
foreach ($tables as $tablevalue) {
[$table_oid, $num_oid, $value_oid, $descr_oid] = $tablevalue;
foreach ($tables as [$table_oid, $num_oid, $value_oid, $descr_oid]) {
$temp = snmpwalk_cache_multi_oid($device, $table_oid, [], 'IDRAC-MIB-SMIv2', null, '-OQUse');
// '-OQUsetX'

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
--
-- dcstorag.mib
-- MIB generated by MG-SOFT Visual MIB Builder Version 7.0 Build 240
-- Monday, September 02, 2013 at 16:26:07
-- Release Date: December 2022
--
-- Copyright (c) 2002 Dell
-- Copyright (c) 2000-2022 Dell Inc.
-- Module Name: dcstorag.mib
-- Abstract:
-- Defines the Dell OpenManage Storage Management SNMP interface.
@ -925,7 +925,10 @@
md1000(8),
md1120(9),
md1200(10),
md1220(11)
md1220(11),
md1400(12),
md1420(13),
mx5016s(14)
}
ACCESS read-only
STATUS mandatory
@ -941,8 +944,10 @@
7: Dell PV660F / PV224F
8: Dell MD1000
9: Dell MD1120
10: Dell MD1200
11: Dell MD1220"
11: Dell MD1220
12: Dell MD1400
13: Dell MD1420
14: Dell MX5016S"
::= { enclosureEntry 16 }
@ -1300,6 +1305,22 @@
arrayDiskMaxLinkWidth
INTEGER,
arrayDiskNegotiatedLinkWidth
INTEGER,
nonRAIDdiskCachePolicy
DisplayString,
arraydiskCachePolicy
DisplayString,
arraydiskISECapable
INTEGER,
arraydiskWWN
DisplayString,
arraydiskEncryptionProtocol
INTEGER,
arraydiskErrorRecoverable
INTEGER,
arraydiskErrorDescription
DisplayString,
arraydiskAvailableSpare
INTEGER
}
@ -1352,6 +1373,7 @@
rebuild(24),
noMedia(25),
formatting(26),
unusable(27),
diagnostics(28),
predictiveFailure(34),
initializing(35),
@ -1382,6 +1404,7 @@
24: Rebuild
25: No Media - CD-ROM or removable disk has no media.
26: Formatting - In the process of formatting.
27: Unusable - INIT error drive
28: Diagnostics - Diagnostics are running.
34: Predictive failure
35: Initializing: Applies only to virtual disks on PERC, PERC 2/SC, and PERC 2/DC controllers.
@ -1996,6 +2019,87 @@
Possible values are: 0 - 8."
::= { arrayDiskEntry 53 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.54
nonRAIDdiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy of the NonRAID disk.
Possible values are: Enabled - Disabled."
::= { arrayDiskEntry 54 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.55
arraydiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy of the array disk.
Possible values are: Enabled - Disabled - Default."
::= { arrayDiskEntry 55 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.56
arraydiskISECapable OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"A boolean value depicitng if the disk is Instant Secure Erase Capable or not."
::= { arrayDiskEntry 56 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.57
arraydiskWWN OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays WWN for a disk."
::= { arrayDiskEntry 57 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.58
arraydiskEncryptionProtocol OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays Encrption Protocol for a disk.
Possible Values:
0: No encryption
1: TCG Enterprise SSC
2: TCG Opal SSC"
::= { arrayDiskEntry 58 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.59
arraydiskErrorRecoverable OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates if INIT error drive is recoverable.
Values: 1- Yes, 0 - No, 99 - Not available / Not applicable."
::= { arrayDiskEntry 59 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.60
arraydiskErrorDescription OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays description of INIT error."
::= { arrayDiskEntry 60 }
-- 1.3.6.1.4.1.674.10893.1.20.130.4.1.61
arraydiskAvailableSpare OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays Available Spare for a PCIe SSD.
Possible Values: 0-100 %
Note: A value of 9999 indicates Not Applicable or Not Available"
::= { arrayDiskEntry 61 }
-- 1.3.6.1.4.1.674.10893.1.20.130.5
arrayDiskEnclosureConnectionTable OBJECT-TYPE
SYNTAX SEQUENCE OF ArrayDiskEnclosureConnectionEntry
@ -4135,7 +4239,13 @@
frontChassisSlot
INTEGER,
controllerInstance
INTEGER
INTEGER,
controllerNonRAIDdiskCachePolicy
DisplayString,
controllerAutoconfigureBehavior
DisplayString
-- controllerSupportedInterface
-- INTEGER,
}
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.1
@ -4663,6 +4773,7 @@
STATUS mandatory
DESCRIPTION
"The PCI slot number or embedded number for controllers on the motherboard.
For Modular or NGM controllers, the PCI Slot Designation or Embedded is displayed.
"
::= { controllerEntry 42 }
@ -4920,7 +5031,7 @@
STATUS mandatory
DESCRIPTION
"Indicates the current encryption mode of the controller.
Value: 0 - No Encryption, 1 - Local Key Management (LKM), 2 - Dell Key Management (DKM), 99 - Not Applicable
Value: 0 - No Encryption, 1 - Local Key Management (LKM), 2 - Secure Enterprise Key Management (SEKM), 99 - Not Applicable
"
::= { controllerEntry 63 }
@ -5030,6 +5141,47 @@
"Shows the current instance of the controller for stash ."
::= { controllerEntry 73 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.74
controllerNonRAIDdiskCachePolicy OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current disk write cache policy for Non-RAID disks."
::= { controllerEntry 74 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.75
controllerAutoconfigureBehavior OBJECT-TYPE
SYNTAX DisplayString
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Displays the current auto configure behavior mode on controller."
::= { controllerEntry 75 }
-- 1.3.6.1.4.1.674.10893.1.20.130.1.1.75
-- controllerSupportedInterfaces OBJECT-TYPE
-- SYNTAX INTEGER
-- {
-- sata(7),
-- sas(8),
-- pcie(9)
-- sas, sata (10)
-- sas, sata, pcie (11)
-- }
-- ACCESS read-only
-- STATUS mandatory
-- DESCRIPTION
-- "The supported device protocol on controller.
-- Possible values:
-- 7: SATA
-- 8: SAS
-- 9: PCIe
-- 10: SAS, SATA
-- 11: SAS, SATA, PCIE"
-- ::= { controllerEntry 75 }
-- 1.3.6.1.4.1.674.10893.1.20.130.17
tapeDriveTable OBJECT-TYPE
SYNTAX SEQUENCE OF TapeDriveEntry
@ -5243,7 +5395,9 @@
nvmeAdapterNegotiatedLinkWidth
INTEGER,
nvmeAdapterSubVendor
DisplayString
DisplayString,
nvmeAdapterAvailableSpare
INTEGER
}
@ -5518,6 +5672,14 @@
"Sub vendor of the NVMe Adapter device."
::= { nvmeAdapterEntry 28}
-- 1.3.6.1.4.1.674.10893.1.20.130.18.1.29
nvmeAdapterAvailableSpare OBJECT-TYPE
SYNTAX INTEGER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The remaining available spare space on the NVME device"
::= { nvmeAdapterEntry 29 }
-- 1.3.6.1.4.1.674.10893.1.20.140
logicalDevices OBJECT IDENTIFIER ::= { storageManagement 140 }
@ -5873,7 +6035,8 @@
writeBack(3),
writeThrough(4),
enabledAlways(5),
enabledAlwaysSAS(6),
forceWriteback(6),
enabledAlwaysSAS(7),
notApplicable(9)
}
ACCESS read-only
@ -5887,7 +6050,8 @@
3: LSI Write Back
4: LSI Write Through
5: Enabled Always - Adaptec only
6: Enabled Always - SAS only
6: Force write back
7: Enabled Always - SAS only
9: Not Applicable"
::= { virtualDiskEntry 10 }
@ -6097,6 +6261,7 @@
sata(2),
scsi(3),
ide(4),
pcie(5),
unknown(99)
}
ACCESS read-only
@ -6108,6 +6273,7 @@
2: SATA
3: SCSI
4: IDE
5: PCIE
99: Unknown
"
::= { virtualDiskEntry 22 }
@ -6149,11 +6315,18 @@
-- 1.3.6.1.4.1.674.10893.1.20.140.1.1.26
virtualDiskDiskCachePolicy OBJECT-TYPE
SYNTAX INTEGER
{
unchanged(1),
enabled(2),
disabled(4),
default(8),
undetermined(10)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"Indicates disk cache policy of the logical device.
Value: 1 - Enabled, 2 - Disabled, 99 - Undetermined"
Value: 1 - Unchanged, 2 - Enabled, 4 - Disabled, 8 - Default, 10 - Undetermined"
::= { virtualDiskEntry 26 }
@ -6519,6 +6692,8 @@
SYNTAX SEQUENCE OF FluidCacheDiskEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"Indicates the Disk Table of the fludicache component"
::= { logicalDevices 5 }
@ -6527,6 +6702,8 @@
SYNTAX FluidCacheDiskEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"Indicates the Disk Number of the fludicache component"
INDEX { fluidCacheDiskNumber }
::= { fluidCacheDiskTable 1 }
@ -6683,6 +6860,8 @@
SYNTAX SEQUENCE OF FluidCachePoolEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"Indicates the Pool Table of the fludicache component"
::= { logicalDevices 6 }
@ -6691,6 +6870,8 @@
SYNTAX FluidCachePoolEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"Indicates the Pool Number of the fludicache component"
INDEX { fluidCachePoolNumber }
::= { fluidCachePoolTable 1 }
@ -8963,6 +9144,35 @@
--#STATUS MANDATORY
::= 170400
alertRRWEThresholdSASSATASSD TRAP-TYPE
ENTERPRISE storageManagementEvent
VARIABLES { messageIDEvent, descriptionEvent }
DESCRIPTION
"Storage Management Information
There is no global status change associated with this trap."
--#TYPE "Storage Management Event: Storage Management Information"
--#SEVERITY INFORMATIONAL
--#SUMMARY "Alert message ID: %s, The Remaining Rated Write Endurance Threshold for SAS and SATA SSDs is set to. %s"
--#ARGUMENTS { 0, 1 }
--#CATEGORY "Status Events"
--#STATE OPERATIONAL
--#STATUS MANDATORY
::= 170401
alertRRWEThresholdPCIeSSD TRAP-TYPE
ENTERPRISE storageManagementEvent
VARIABLES { messageIDEvent, descriptionEvent }
DESCRIPTION
"Storage Management Information
There is no global status change associated with this trap."
--#TYPE "Storage Management Event: Storage Management Information"
--#SEVERITY INFORMATIONAL
--#SUMMARY "Alert message ID: %s, The Remaining Rated Write Endurance Threshold for PCIe SSDs is set to. %s"
--#ARGUMENTS { 0, 1 }
--#CATEGORY "Status Events"
--#STATE OPERATIONAL
--#STATUS MANDATORY
::= 170402
END
--

File diff suppressed because it is too large Load Diff