Support for RFS4000 (Extreme Networks) Wireless Controller /Wing OS 5.9

Hi

I added support for the Extreme Networks RFS4000 (previously Motolorola) Wireless Controller on LibreNMS at my client. The client has a HA cluster (2xRFS4000) and 50 Access Point devices.

Extreme Networks Wifi RFS4000 Wireless Controller, Version 5.9.1.4-004R MIB=01a
Operating System Wing Wireless controller
Object ID .1.3.6.1.4.1.388.18

I tested and this works.

I added support for this device in my Librenms system and two sesors “Connected AP” and “Connected Total Client”


Is it possible to send you MIB files, snmpwalks (etc.nessesery files) and in the next version add support for this controller. ?

Step by step instructions (Maybe is’ll help someone).

Step 1. I added new file: LibreNMS/OS/Wing.php

<?php
namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessApCountDiscovery;
use LibreNMS\OS;

class Wing extends OS implements
    WirelessClientsDiscovery,
    WirelessApCountDiscovery
{
    public function discoverWirelessClients()
    {
        $oid = '.1.3.6.1.4.1.388.50.1.4.1.15.1.0'; //WING-MIB
        return array(
            new WirelessSensor('clients', $this->getDeviceId(), $oid, 'wing', 1, 'Clients: Total')
        );
    }
    public function discoverWirelessApCount()
    {
        $oid = '.1.3.6.1.4.1.388.50.1.4.1.9.3.0'; //WING-MIB
        return array(
            new WirelessSensor('ap-count', $this->getDeviceId(), $oid, 'wing', 1, 'Connected APs')
        );
    }
}

Step 2 .Next I added /opt/librenms/includes/definitions/wing.yaml

os: wing
type: wireless
text: 'Wing Wireless controller'
icon: extreme
over:
    - { graph: device_bits, text: 'Device Traffic' }
    - { graph: device_processor, text: 'CPU Usage' }
    - { graph: device_mempool, text: 'Memory Usage' }
discovery:
    - sysObjectID:
        - .1.3.6.1.4.1.388.18
mib_dir:
    - wing

Step 3. Next I added new WING MIG to /mibs/wing

Step 4. I have to modify OID in 2 files “Symbol”

LibreNMS/OS/Symbol.php

namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\OS;

class Symbol extends OS implements WirelessClientsDiscovery
{
    /**
     * Discover wireless client counts. Type is clients.
     * Returns an array of LibreNMS\Device\Sensor objects that have been discovered
     *
     * @return array Sensors
     */
    public function discoverWirelessClients()
    {
        $device = $this->getDevice();

        if (str_i_contains($device['hardware'], 'Wireless')) {
            $oid = '.1.3.6.1.4.1.388.11.2.4.2.100.10.1.18.1';
            return array(
                new WirelessSensor('clients', $device['device_id'], $oid, 'symbol', 1, 'Clients')
            );
        }

        return array();
    }
}

Step 5. I modified the file > includes/definitions/symbol.yaml → added “.666”

os: symbol
type: network
text: 'Symbol AP'
icon: symbol
discovery:
    - sysObjectID:
        - .1.3.6.1.4.1.388.666

Regards
Wieczorr

Take a look to https://docs.librenms.org/#Developing/Support-New-OS/ and submit a PR!