# Dell Switch Sensor Discovery - LibreNMS vs Towerops Comparison

**Analysis Date**: 2026-02-11
**Status**: ⚠️ Significant Gaps - Network switch platforms need attention

## Executive Summary

Dell sensor coverage varies dramatically by platform type:
- **Dell OS10**: 100% parity (excellent coverage)
- **Dell rPDU**: 100% parity (excellent coverage)
- **Dell UPS**: 80% parity (missing power sensor)
- **Dell OME-M**: 100% parity (excellent coverage)
- **Dell Compellent**: 100% parity (excellent coverage)
- **Dell PowerVault**: 20% parity (CRITICAL - missing all sensors)
- **Dell PowerConnect/DNOS**: 0% parity (CRITICAL - no sensor profile)
- **Dell Force10 FTOS**: 0% parity (CRITICAL - no sensor profile)
- **Dell SONiC**: 0% parity (CRITICAL - detected but no sensors)
- **Dell Enterprise Servers (10892)**: 0% parity (CRITICAL - no profile)

**Overall Assessment**: Excellent coverage for storage and infrastructure (OS10, rPDU, OME-M, Compellent), but **network switches are severely underserved**.

---

## Platform Coverage Overview

| Device Category | LibreNMS | Towerops | Gap |
|-----------------|----------|----------|-----|
| **OS10 Switches** | Good | Excellent | None |
| **rPDU** | Good | Excellent | None |
| **UPS** | Power + State | State only | Missing power |
| **OME-M** | Good | Excellent | None |
| **Compellent Storage** | Good | Excellent | None |
| **PowerVault Storage** | Temp, Voltage, Current, Charge, State | Hardware/Serial only | **CRITICAL** |
| **PowerConnect/DNOS Switches** | Temperature | None | **CRITICAL** |
| **Force10 FTOS Switches** | Temperature | None | **CRITICAL** |
| **SONiC Switches** | Temp, Fan, PSU State | Detected, no sensors | **CRITICAL** |
| **Quanta Switches** | Temp, Fan, PSU State | Basic only | Missing sensors |
| **Dell Servers (10892)** | Temp, Power, Voltage, Fan, State | None | **CRITICAL** |

---

## Detailed Platform Analysis

### 1. Dell OS10 Switches ✅

**LibreNMS Discovery:** Generic ENTITY-SENSOR-MIB support

**Towerops YAML Profile (`dell-os10.yaml`):**
- ✅ **Temperature**: Chassis temperature (os10ChassisTempSensorValue), Card temperature (os10CardTempSensorValue)
- ✅ **State**: Fan state (os10FanTrayOperStatus), Fan tray state (os10FanTrayOperStatus), PSU state (os10PowerSupplyOperStatus)

**Gap Analysis:**
- ✅ **Excellent parity** - Comprehensive coverage
- Uses Dell Enterprise MIB (DELLEMC-OS10-CHASSIS-MIB)
- **Severity**: None

---

### 2. Dell rPDU (Rack Power Distribution Units) ✅

**Towerops YAML Profile (`dell-rpdu.yaml`):**
- ✅ **Current**: Load current (apcRPMCurrent)
- ✅ **Power**: Load power (apcRPMPower)
- ✅ **Voltage**: Phase voltage (apcRPMVoltage)
- ✅ **State**: Load state (apcRPMStatusLoad), Phase state (apcRPMStatusPhase)
- ✅ **Temperature**: Ambient temperature (apcRPMTemperature)
- ✅ **Humidity**: Ambient humidity (apcRPMHumidity)

**Gap Analysis:**
- ✅ **Excellent parity** - Very comprehensive
- Uses DellrPDU-MIB
- **Severity**: None

---

### 3. Dell UPS ⚠️

**LibreNMS Discovery Modules:**
- `power/dell-ups.inc.php` - Physical output power consumption (OID `1.3.6.1.4.1.674.10902.2.120.2.6.0`)

**Towerops YAML Profile (`dell-ups.yaml`):**
- ✅ **State**: Global status (upsBaseStatus)
- ✅ **Count**: Estimated runtime (upsEstimatedMinutesRemaining)
- ❌ **Missing**: Power consumption sensor

**Gap Analysis:**
- **Minor Gap**: Missing power consumption sensor
- OID needed: `1.3.6.1.4.1.674.10902.2.120.2.6.0` (physicalOutputPresentConsumption)
- **Impact**: Can't track UPS load in watts
- **Severity**: MEDIUM (nice to have for capacity planning)
- **Fix Effort**: LOW (1 hour - add single power sensor)

---

### 4. Dell OME-M (OpenManage Enterprise Modular) ✅

**Towerops YAML Profile (`dell-ome-m.yaml`):**
- ✅ **State**: Extensive state monitoring (chassis, PSU, fan, IOM, BOSS, PCIe, fabric, server)
- ✅ **Temperature**: Chassis temperature sensors
- ✅ **Power**: PSU power output
- ✅ **Voltage**: PSU voltage

**Gap Analysis:**
- ✅ **Excellent parity** - Very comprehensive
- Uses DELL-MM-MIB-SMIv2
- **Severity**: None

---

### 5. Dell Compellent Storage ✅

**Towerops YAML Profile (`dell-compellent.yaml`):**
- ✅ **Count**: Various count sensors
- ✅ **FanSpeed**: Fan RPM
- ✅ **State**: Extensive state monitoring (system, controller, disk, PSU, fan, IO, cache, enclosure, UPS)
- ✅ **Temperature**: Temperature sensors
- ✅ **Voltage**: Voltage sensors

**Gap Analysis:**
- ✅ **Excellent parity** - Very comprehensive
- Uses DELL-STORAGE-SC-MIB
- **Severity**: None

---

### 6. Dell PowerVault Storage ❌

**LibreNMS Discovery Modules:**
- `temperature/dell-powervault.inc.php` - Parses text sensor messages
- `voltage/dell-powervault.inc.php` - Parses text sensor messages
- `current/dell-powervault.inc.php` - Parses text sensor messages
- `charge/dell-powervault.inc.php` - Parses text sensor messages (battery %)
- `state/dell-powervault.inc.php` - Status parsing

**LibreNMS Discovery Method:** Unique text-based parsing
- Uses `FCMGMT-MIB` (OID `1.3.6.1.3.94.1.8.1.6.*`)
- Parses sensor messages in format: `"Sensor Name: Value Unit"`
- Temperature regex: `/^ ([0-9]+) C ([0-9]+\.[0-9]+)F$/`
- Voltage regex: `/^ ([0-9]+\.[0-9]+)V$/`
- Current regex: `/^ ([0-9]+\.[0-9]+)A$/`
- Charge regex: `/^ ([0-9]+)%$/`

**Towerops YAML Profile (`dell-powervault.yaml`):**
- ✅ **Hardware**: Serial number, firmware version
- ❌ **No sensor discovery**

**Gap Analysis:**
- **CRITICAL Gap**: Missing all sensor discovery
- LibreNMS discovers 5 sensor types via text parsing
- **Impact**: No temperature, voltage, current, battery, or status monitoring
- **Severity**: CRITICAL (complete absence of monitoring)
- **Fix Effort**: HIGH (3-4 hours - requires implementing text parsing logic in vendor module)

**Implementation Note:**
- Cannot use YAML-based discovery (requires parsing text messages)
- Must implement in `lib/towerops/snmp/profiles/vendors/powervault.ex`
- Similar pattern to Arista post-processing

---

### 7. Dell PowerConnect/DNOS Switches ❌

**LibreNMS Discovery Modules:**
- `temperature/powerconnect.inc.php` - CPU temperature
- OID: `1.3.6.1.4.1.674.10895.5000.2.6132.1.1.43.1.8.1.5` (FASTPATH-BOXSERVICES-PRIVATE-MIB)
- Model-specific OID: `1.3.6.1.4.1.89.53.15.1.9.1` (for PC5548, PC3548, PC3548P, PC2848)

**Known Models:**
- PC5548 (sysObjectID: `1.3.6.1.4.1.674.10895.3031`)
- PC3548 (sysObjectID: `1.3.6.1.4.1.674.10895.3017`)
- PC3548P (sysObjectID: `1.3.6.1.4.1.674.10895.3019`)
- PC2848 (sysObjectID: `1.3.6.1.4.1.674.10895.3028`)

**Towerops Coverage:**
- ✅ **OS Detection**: Various PowerConnect models detected in `dell-powerconnect.yaml`
- ❌ **No sensor discovery profile exists**

**Gap Analysis:**
- **CRITICAL Gap**: No sensor discovery for PowerConnect switches
- LibreNMS discovers CPU temperature
- **Impact**: No temperature monitoring on network switches
- **Severity**: CRITICAL (common enterprise switch platform)
- **Fix Effort**: MEDIUM (2-3 hours - create YAML sensor profile)

**OIDs Needed:**
```
CPU Temperature: 1.3.6.1.4.1.674.10895.5000.2.6132.1.1.43.1.8.1.5
Alt Temperature (specific models): 1.3.6.1.4.1.89.53.15.1.9.1
MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB
Divisor: 1
```

---

### 8. Dell Force10 FTOS Switches ❌

**LibreNMS Discovery Modules:**

**S-Series (Stack Unit):**
- MIB: `F10-S-SERIES-CHASSIS-MIB`
- Temperature OID: `1.3.6.1.4.1.6027.3.10.1.2.2.1.14` (chStackUnitTemp)
- Model OID: `1.3.6.1.4.1.6027.3.10.1.2.2.1.3` (chStackUnitSysType)

**C-Series (Card/Slot):**
- MIB: `F10-C-SERIES-CHASSIS-MIB`
- Temperature OID: `1.3.6.1.4.1.6027.3.8.1.2.1.1.5` (chSysCardTemp)

**E-Series (Advanced):**
- MIB: `F10-CHASSIS-MIB`
- Upper Temp OID: `1.3.6.1.4.1.6027.3.1.1.2.3.1.8` (chSysCardUpperTemp)
- Lower Temp OID: `1.3.6.1.4.1.6027.3.1.1.2.3.1.9` (chSysCardLowerTemp)

**Towerops Coverage:**
- ✅ **OS Detection**: `ftos.yaml` detects Force10 switches
- ❌ **No sensor discovery profile exists**

**Gap Analysis:**
- **CRITICAL Gap**: No sensor discovery for Force10 FTOS switches
- LibreNMS discovers temperature for 3 series (S/C/E)
- **Impact**: No temperature monitoring on Force10 switches
- **Severity**: CRITICAL (common data center switch platform)
- **Fix Effort**: MEDIUM-HIGH (3-4 hours - needs 3 series variants)

---

### 9. Dell SONiC Switches ❌

**LibreNMS Discovery:** Uses Quanta/NetGear MIB

**MIB:** `NETGEAR-BOXSERVICES-PRIVATE-MIB` (OID base: `1.3.6.1.4.1.4413.1.1.43.1.*`)

**Sensor Types:**
- **Temperature**: `1.3.6.1.4.1.4413.1.1.43.1.8.1.4` (boxServicesTempSensorState)
- **Fan Speed**: `1.3.6.1.4.1.4413.1.1.43.1.6.1.4` (boxServicesFanSpeed)
- **PSU State**: `1.3.6.1.4.1.4413.1.1.43.1.7.1.3` (boxServicesPowSupplyItemState)
  - States: 0=other, 1=not present, 2=operational, 3=failed, 4=powering, 5=no power, 6=not powering, 7=incompatible

**Towerops Coverage:**
- ✅ **OS Detection**: `dell-sonic.yaml` detects by sysObjectID `1.3.6.1.4.1.4413.1.2.1.2.*`
- ❌ **No sensor discovery profile exists**
- Note: Generic `quanta.yaml` exists but `dell-sonic.yaml` has no sensor definitions

**Gap Analysis:**
- **CRITICAL Gap**: OS detected but zero sensor discovery
- LibreNMS discovers 3 sensor types (temp, fan, PSU state)
- **Impact**: No hardware monitoring for Dell SONiC switches
- **Severity**: CRITICAL (modern data center switch platform)
- **Fix Effort**: MEDIUM (2-3 hours - add sensors to existing YAML)

---

### 10. Dell Enterprise Servers (iDRAC/OpenManage) ❌

**LibreNMS Discovery Modules:**
- `temperature/dell.inc.php` - Temperature probes (MIB-Dell-10892)
- `power/dell.inc.php` - System wattage (amperageProbeTypeIsSystemWatts)
- `voltage/dell.inc.php` - Voltage probes
- `fanspeed/dell.inc.php` - Cooling device RPM
- `state/dell.inc.php` - CPU, memory, PSU, intrusion, storage controller/disk/battery status

**MIB:** `MIB-Dell-10892` (OID base: `1.3.6.1.4.1.674.10892.*`)

**OIDs:**
```
Temperature: .1.3.6.1.4.1.674.10892.1.700.20.1.6 (temperatureProbeTable)
Power: .1.3.6.1.4.1.674.10892.1.600.30.1.6 (amperageProbeTable)
Voltage: .1.3.6.1.4.1.674.10892.1.600.20.1.6 (voltageProbeTable)
Fan Speed: .1.3.6.1.4.1.674.10892.1.700.12.1.6 (coolingDeviceTable)
PSU State: .1.3.6.1.4.1.674.10892.1.600.12.1.5 (powerSupplyTable)
CPU State: .1.3.6.1.4.1.674.10892.1.1100.30.1.5 (processorDeviceStatusTable)
Memory State: .1.3.6.1.4.1.674.10892.1.1100.50.1.5 (memoryDeviceTable)
```

**Towerops Coverage:**
- ❌ **No Dell server/iDRAC profile exists**

**Gap Analysis:**
- **CRITICAL Gap**: No sensor discovery for Dell enterprise servers
- LibreNMS discovers 7+ sensor types
- **Impact**: Cannot monitor Dell rack servers, blades, or workstations via iDRAC
- **Severity**: CRITICAL (very common enterprise server platform)
- **Fix Effort**: HIGH (4-6 hours - comprehensive profile with many sensor types)

---

### 11. Quanta Network Switches ⚠️

**Note:** Dell SONiC uses Quanta hardware/MIB

**Towerops YAML Profile (`quanta.yaml`):**
- ✅ **Basic**: Some sensor definitions exist
- ⚠️ **Incomplete**: Not comprehensive compared to what's available

**Gap Analysis:**
- **MEDIUM Gap**: Partial coverage, needs completion
- Should match SONiC sensor requirements
- **Severity**: MEDIUM (affects both Quanta-branded and Dell SONiC)

---

## MIB Mapping Reference

### Dell Enterprise Servers (iDRAC/OpenManage)
```
MIB: MIB-Dell-10892
Temperature: .1.3.6.1.4.1.674.10892.1.700.20.1.6
Power: .1.3.6.1.4.1.674.10892.1.600.30.1.6
Voltage: .1.3.6.1.4.1.674.10892.1.600.20.1.6
Fans: .1.3.6.1.4.1.674.10892.1.700.12.1.6
PSU State: .1.3.6.1.4.1.674.10892.1.600.12.1.5
```

### PowerConnect/DNOS
```
MIB: FASTPATH-BOXSERVICES-PRIVATE-MIB
CPU Temperature: .1.3.6.1.4.1.674.10895.5000.2.6132.1.1.43.1.8.1.5
Alt Temperature: .1.3.6.1.4.1.89.53.15.1.9.1 (specific models)
Divisor: 1
```

### Force10 FTOS S-Series
```
MIB: F10-S-SERIES-CHASSIS-MIB
Temperature: .1.3.6.1.4.1.6027.3.10.1.2.2.1.14 (chStackUnitTemp)
```

### Force10 FTOS C-Series
```
MIB: F10-C-SERIES-CHASSIS-MIB
Temperature: .1.3.6.1.4.1.6027.3.8.1.2.1.1.5 (chSysCardTemp)
```

### Force10 FTOS E-Series
```
MIB: F10-CHASSIS-MIB
Upper Temp: .1.3.6.1.4.1.6027.3.1.1.2.3.1.8 (chSysCardUpperTemp)
Lower Temp: .1.3.6.1.4.1.6027.3.1.1.2.3.1.9 (chSysCardLowerTemp)
```

### Dell SONiC / Quanta
```
MIB: NETGEAR-BOXSERVICES-PRIVATE-MIB
Temperature: .1.3.6.1.4.1.4413.1.1.43.1.8.1.4 (boxServicesTempSensorState)
Fan Speed: .1.3.6.1.4.1.4413.1.1.43.1.6.1.4 (boxServicesFanSpeed)
PSU State: .1.3.6.1.4.1.4413.1.1.43.1.7.1.3 (boxServicesPowSupplyItemState)
```

### PowerVault
```
MIB: FCMGMT-MIB
All sensors: .1.3.6.1.3.94.1.8.1.6 (text parsing required)
Temperature regex: /^ ([0-9]+) C ([0-9]+\.[0-9]+)F$/
Voltage regex: /^ ([0-9]+\.[0-9]+)V$/
Current regex: /^ ([0-9]+\.[0-9]+)A$/
Charge regex: /^ ([0-9]+)%$/
```

---

## Critical Gaps Summary

| Platform | Gap Type | Severity | Impact | Fix Effort |
|----------|----------|----------|--------|-----------|
| **PowerConnect/DNOS** | No sensor discovery | **CRITICAL** | No temp monitoring | Medium (2-3 hours) |
| **Force10 FTOS** | No sensor discovery | **CRITICAL** | No temp monitoring | Medium-High (3-4 hours) |
| **SONiC** | No sensor discovery | **CRITICAL** | No hardware monitoring | Medium (2-3 hours) |
| **PowerVault** | No sensor discovery | **CRITICAL** | No storage monitoring | High (3-4 hours) |
| **Dell Servers (10892)** | No profile | **CRITICAL** | No server monitoring | High (4-6 hours) |
| **UPS** | Missing power sensor | **MEDIUM** | No wattage tracking | Low (1 hour) |
| **Quanta** | Incomplete | **MEDIUM** | Partial monitoring | Medium (2-3 hours) |

---

## Implementation Recommendations

### Priority 1 - Critical (Network Switches)
1. **PowerConnect/DNOS sensor profile** (2-3 hours)
   - Add CPU temperature discovery
   - Affects common enterprise access switches

2. **Dell SONiC sensor profile** (2-3 hours)
   - Add temperature, fan, PSU state discovery
   - Modern data center platform

3. **Force10 FTOS sensor profiles** (3-4 hours)
   - Implement S/C/E-Series temperature discovery
   - Common data center switch platform

### Priority 2 - Critical (Storage)
1. **PowerVault sensor discovery** (3-4 hours)
   - Implement text parsing in vendor module
   - Enables storage monitoring

2. **Dell Server (10892) profile** (4-6 hours)
   - Comprehensive server monitoring
   - Very common enterprise platform

### Priority 3 - Medium (Nice to Have)
1. **Dell UPS power sensor** (1 hour)
   - Add missing power consumption OID

2. **Complete Quanta profile** (2-3 hours)
   - Improve generic Quanta switch support

---

## Parity Target After Fixes

- **OS10**: **100%** (current - already excellent)
- **rPDU**: **100%** (current - already excellent)
- **OME-M**: **100%** (current - already excellent)
- **Compellent**: **100%** (current - already excellent)
- **PowerConnect/DNOS**: 0% → **95%**
- **Force10 FTOS**: 0% → **90%**
- **SONiC**: 0% → **95%**
- **PowerVault**: 20% → **90%**
- **Dell Servers**: 0% → **95%**
- **UPS**: 80% → **100%**

---

## Conclusion

**Overall Status**: ⚠️ **Network Switches Need Urgent Attention**

**Key Achievements**:
- ✅ OS10: Excellent coverage
- ✅ rPDU, OME-M, Compellent: Comprehensive monitoring
- Infrastructure/storage platforms well-covered

**Critical Needs**:
- ❌ **Network switches severely underserved** (PowerConnect, Force10, SONiC)
- ❌ PowerVault storage missing all sensors
- ❌ Dell enterprise servers (iDRAC) not supported

**Business Impact**:
- Dell network switches (PowerConnect, Force10, SONiC) are **common in enterprise deployments**
- Lack of temperature monitoring = **no alerting on overheating switches**
- Lack of Dell server monitoring = **missing huge enterprise server market**

**Recommendation**:
1. **Immediate**: Implement PowerConnect and SONiC sensor profiles (network switch focus)
2. **Short-term**: Add Force10 FTOS support (data center switches)
3. **Medium-term**: PowerVault and Dell server support (storage/compute platforms)
