About the Device Requests category

Hi, can we add Aruba CX devices with port sensors for fiberoptic values ?

Hi, can add Vertiv SmartCabinet 2-E (UPS, Digital Door Lock, AC & Fire Suppression Function)?

Discovery: Untitled - LibreNMS

poll: Untitled - LibreNMS

SNMPWALK: Untitled - LibreNMS

MIBs: Untitled - LibreNMS

Dear community,

The aruba access point (AP 304) with version “Version 8.13.0.1-8.13.0.1 LSR” are not recognized any more by librenms.

Is it possibile to add support?

Thank you.

Hello, can we add support for Moxa EDS-4000 and EDS-G4000 series switches?

The MIBs can be downloaded from here:

https://cdn-cms-frontdoor-dfc8ebanh6bkb3hs.a02.azurefd.net/getmedia/34fa156f-b5d3-4c07-8cb1-d9f3ca2b3c0a/moxa-eds-4000-g4000-series-mib-software-package-v4.1.zip

Or here if that path changes:

Could I request for support to be added for
Schneider Electric NetBotz 750 5.4.1.5027

Thanks

Ubiquiti USW-Pro-Max-16-PoE is being mis identified as Linux

This is my first post here. Apologies if I’m posting this in the wrong place.

I have 2 of these devices bought a few months apart. The newer one is identified correctly. The older one shows Linux, although they both have the latest firmware.

Comparing the outputs of discovery.php, I could see that the incorrect switch shows up as:
Linux USW-Pro-Max-16-PoE 4.4.153, but the correct one shows up as Linux UBNT 4.4.153

To fix this I made the following change to resources/definitions/os_detection/edgeswitch.yaml

git diff resources/definitions/os_detection/edgeswitch.yaml
diff --git a/resources/definitions/os_detection/edgeswitch.yaml b/resources/definitions/os_detection/edgeswitch.yaml
index 2e2def2f4..125491591 100644
--- a/resources/definitions/os_detection/edgeswitch.yaml
+++ b/resources/definitions/os_detection/edgeswitch.yaml
@@ -28,4 +28,5 @@ discovery:
             - .1.3.6.1.4.1.27282.3.2.10
         sysDescr_regex:
             - '/^Linux UBNT/'
+            - '/^Linux USW/'
             - '/^RTL8380/'

I don’t know how I can get this merged into the git repo.

Thanks,

Anwar

Hi,

I would love to see support for Bachmann Bluenet PDUs. The MIB Files can be found here: https://bluenet.de/wp-content/uploads/snmp-mibs-2.02.01.zip

I have a BN7000 that I did add/discover that is recognized as Linux OS only, I did add the most important OIDs via custom oid.

i would like request to add Engenius model ECS5512F

Could we get the USW Pro XG 10 PoE and USW Pro XG 24 added? They are getting discovered but mis-identified as either generic device or linux device.

I’d be happy to provide anything needed to help push this along. Thanks!

Manufacturer: Ubiquiti

Model: UniFi Building Bridge (UBB)

sysObjectID: .1.3.6.1.4.1.8072.3.2.10

sysDescr: Linux UniFi Building Bridge 4.9.241 #2 SMP Wed Dec 17 09:45:32 UTC 2025 armv7l

Request: > This device is a high-speed wireless bridge. It is currently detected as generic Linux. Please add official support with the dedicated icon. I have an icon (ubb.png) ready if needed.

Hi everyone,

I’ve been working on getting proper VLAN discovery working for D-Link DGS-1210-52/F1 switches running firmware 6.33.x, and I wanted to share my findings with the community in case someone has the time to integrate this properly via the official OS contribution process.

The problem

The DGS-1210 series (firmware revision F) does not expose VLAN information via the standard Q-BRIDGE-MIB::dot1qVlanStaticName or IEEE8021-Q-BRIDGE-MIB OIDs. LibreNMS discovery returns empty results for VLANs on these devices, and no VLAN tab is displayed in the interface.

Root cause

The firmware F revision uses a completely different OID tree from previous revisions. VLAN data is exposed under a proprietary D-Link subtree:

Data OID
VLAN names 1.3.6.1.4.1.171.11.153.1000.7.6.1.1.<vlan_id>
Egress ports (tagged + untagged) bitmask 1.3.6.1.4.1.171.11.153.1000.7.6.1.2.<vlan_id>
Untagged ports bitmask 1.3.6.1.4.1.171.11.153.1000.7.6.1.4.<vlan_id>

This was confirmed by snmpwalk on a DGS-1210-52/F1 running 6.33.004:

iso.3.6.1.4.1.171.11.153.1000.7.6.1.1.1 = STRING: "default"
iso.3.6.1.4.1.171.11.153.1000.7.6.1.1.2 = STRING: "ProxyVLAN"
iso.3.6.1.4.1.171.11.153.1000.7.6.1.1.3 = STRING: "GuestLAN"
iso.3.6.1.4.1.171.11.153.1000.7.6.1.1.90 = STRING: "PROLAN"
iso.3.6.1.4.1.171.11.153.1000.7.6.1.1.4094 = STRING: "VoiceVLAN"

The egress and untagged port data is returned as hex bitmasks, identical in structure to what StringHelpers::bitsToIndices() already handles for other OS implementations (e.g. Boss.php).

The fix

We extended LibreNMS/OS/Dlink.php to implement VlanDiscovery and VlanPortDiscovery interfaces. The key points:

  • Try standard Q-BRIDGE-MIB first (fallback for other D-Link models that do support it)

  • Fall back to proprietary OIDs if Q-BRIDGE-MIB returns nothing

  • Use SnmpQuery::walk()->pluck() instead of mapTable()mapTable() does not work correctly with raw numeric OIDs without a MIB mapping

php

public function discoverVlans(): Collection
{
    $vlans = parent::discoverVlans();
    if ($vlans->isNotEmpty()) {
        return $vlans;
    }

    $vlans = new Collection;
    foreach (SnmpQuery::walk('.1.3.6.1.4.1.171.11.153.1000.7.6.1.1')->pluck() as $vlan_id => $vlan_name) {
        $vlans->push(new Vlan([
            'vlan_vlan'   => $vlan_id,
            'vlan_domain' => 1,
            'vlan_name'   => $vlan_name ?: 'VLAN' . $vlan_id,
        ]));
    }
    return $vlans;
}

public function discoverVlanPorts(Collection $vlans): Collection
{
    $ports = parent::discoverVlanPorts($vlans);
    if ($ports->isNotEmpty()) {
        return $ports;
    }

    $egress_data   = SnmpQuery::walk('.1.3.6.1.4.1.171.11.153.1000.7.6.1.2')->pluck();
    $untagged_data = SnmpQuery::walk('.1.3.6.1.4.1.171.11.153.1000.7.6.1.4')->pluck();

    if (empty($egress_data)) {
        return $ports;
    }

    foreach ($vlans as $vlan) {
        $vlan_id = $vlan->vlan_vlan;
        if (empty($egress_data[$vlan_id])) {
            continue;
        }

        $egress_ids   = StringHelpers::bitsToIndices($egress_data[$vlan_id]);
        $untagged_ids = StringHelpers::bitsToIndices($untagged_data[$vlan_id] ?? '');

        foreach ($egress_ids as $baseport) {
            $ports->push(new PortVlan([
                'vlan'     => $vlan_id,
                'baseport' => $baseport,
                'untagged' => in_array($baseport, $untagged_ids) ? 1 : 0,
                'port_id'  => PortCache::getIdFromIfIndex(
                    $this->ifIndexFromBridgePort($baseport),
                    $this->getDeviceId()
                ) ?? 0,
            ]));
        }
    }
    return $ports;
}

Tested on

  • Device: D-Link DGS-1210-52/F1

  • Firmware: 6.33.004

  • LibreNMS: 26.4.1

VLAN names and port memberships (tagged/untagged) are correctly discovered and displayed in the LibreNMS VLAN tab.

OID tree origin

The OID structure was reverse-engineered from the MIB file DGS-1210_Fx_FW_6-31_MIB provided by D-Link. The relevant path is:

enterprises(171) → d-link(171) → dlink-mgmt(11) → dlink-DGS-1210SeriesProj(153)
→ dlink-dgs-1210-Common(1000) → companyDot1qVlanGroup(7)

What’s needed for a proper PR

We don’t have the bandwidth to go through the full official contribution process (test data generation, unit tests, snmprec file, potential separate OS detection yaml for DGS-1210 firmware F). If someone in the community has a DGS-1210 and the time to do this properly, here’s everything you need to get started. Happy to answer questions.

The MIBs for the DGS-1210 Fx firmware series are available on the D-Link FTP server.

Thanks