Added support for Ubiquiti UFiber OLT (#14256)

* Added support for Ubiquiti UFiber OLT

* Fixed php files with port detection

* Added missing MIB file

* Fixed test data

* Fixed php script to detect ports compatible with php 8.1

* Fix styleci

* Enforcement of new control styleci

* Apply fixes from StyleCI

* Port detection override

* Changed all "Entry" to "Table".

Co-authored-by: StyleCI Bot <bot@styleci.io>
This commit is contained in:
Martin22 2022-10-07 22:42:03 +02:00 committed by GitHub
parent d722295f4c
commit 19540900a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 6089 additions and 1 deletions

44
LibreNMS/OS/Edgeosolt.php Normal file
View File

@ -0,0 +1,44 @@
<?php
/**
* Edgeos.php
*
* -Description-
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* @link https://www.librenms.org
*
* @copyright 2020 Tony Murray
* @author Tony Murray <murraytony@gmail.com>
*/
namespace LibreNMS\OS;
use App\Models\Device;
class Edgeosolt extends \LibreNMS\OS
{
public function discoverOS(Device $device): void
{
parent::discoverOS($device); // yaml
$hw = snmpwalk_cache_oid($this->getDeviceArray(), 'hrSWRunParameters', [], 'HOST-RESOURCES-MIB');
foreach ($hw as $entry) {
if (preg_match('/(?<=UBNT )(.*)(?= running on)/', $entry['hrSWRunParameters'], $matches)) {
$this->getDevice()->hardware = $matches[0];
break;
}
}
}
}

View File

@ -0,0 +1,57 @@
mib: UBNT-UFIBER-MIB
modules:
os:
sysDescr_regex: '/v(?<version>\d+\.\d+\.\d+)/'
hardware: UBNT-UFIBER-MIB::ubntModel.0
version: UBNT-UFIBER-MIB::ubntVersion.0
serial: UBNT-UFIBER-MIB::ubntSerialNumber.0
sensors:
state:
data:
-
oid: ubntSfpsTable
value: ubntSfpUp
num_oid: '.1.3.6.1.4.1.41112.1.5.7.2.1.3.{{ $index }}'
low_limit: 0
descr: '{{ $ubntSfpName }}'
states:
- { descr: Up, graph: 0, value: 1, generic: 0 }
- { descr: Down, graph: 0, value: 2, generic: 2 }
count:
data:
-
oid: ubntOnusCount
num_oid: '.1.3.6.1.4.1.41112.1.5.6.1.{{ $index }}'
index: 'ubntOnusCount.{{ $index }}'
descr: "Number of ONU's"
temperature:
data:
-
oid: ubntThermsTable
value: ubntThermTemperature
divisor: 1000
num_oid: '.1.3.6.1.4.1.41112.1.5.4.2.1.3.{{ $index }}'
index: 'ubntThermTemperature.{{ $index }}'
descr: 'Temperatures {{ $index }}'
fanspeed:
data:
-
oid: ubntFansTable
value: ubntFanRpm
num_oid: '.1.3.6.1.4.1.41112.1.5.5.2.1.3.{{ $index }}'
index: 'ubntFanRpm.{{ $index }}'
descr: 'Fun #{{ $index }}'
dbm:
data:
-
oid: ubntOnusTable
value: ubntOnuRxPower
num_oid: '.1.3.6.1.4.1.41112.1.5.6.2.1.9.{{ $index }}'
descr: "ONU {{ $ubntOnuName }} RX"
group: ONUs TX
index: 'rx-{{ $index }}'
divisor: 100

View File

@ -9,10 +9,14 @@ over:
discovery:
-
sysObjectID: .1.3.6.1.4.1.41112.1.5
-
sysDescr_regex:
- '/^EdgeOS/'
- '/^EdgeRouter/'
snmpget_except:
oid: .1.3.6.1.4.1.41112.1.5.1.1.0
op: 'contains'
value: 'UFiber'
bad_if_regexp:
- '/^npi[0-9]/'
- '/^loop[0-9]/'

View File

@ -0,0 +1,17 @@
os: edgeosolt
text: UFiber
type: network
icon: ubiquiti
mib_dir: ubnt
ifname: true
over:
- { graph: device_bits, text: 'Device Traffic' }
- { graph: device_processor, text: 'Processor Usage' }
- { graph: device_mempool, text: 'Memory Usage' }
discovery:
-
sysObjectID: .1.3.6.1.4.1.41112.1.5
snmpget:
oid: .1.3.6.1.4.1.41112.1.5.1.1.0
op: 'contains'
value: 'UFiber'

View File

@ -22,6 +22,11 @@ $port_stats = snmpwalk_cache_oid($device, 'ifAlias', $port_stats, 'IF-MIB');
$port_stats = snmpwalk_cache_oid($device, 'ifType', $port_stats, 'IF-MIB', null, $typeSnmpFlags);
$port_stats = snmpwalk_cache_oid($device, 'ifOperStatus', $port_stats, 'IF-MIB', null, $operStatusSnmpFlags);
//Get UFiber OLT ports
if ($device['os'] == 'edgeosolt') {
require base_path('includes/discovery/ports/edgeosolt.inc.php');
}
//Change Zynos ports from swp to 1/1
if ($device['os'] == 'zynos') {
require base_path('includes/discovery/ports/zynos.inc.php');

View File

@ -0,0 +1,18 @@
<?php
unset($port_stats);
$sfp_stats = snmpwalk_group($device, 'ubntSfpsTable', 'UBNT-UFIBER-MIB');
$offset = '1000';
foreach ($sfp_stats as $index => $sfpport_stats) {
$curIfIndex = $offset + $index;
$port_stats[$curIfIndex]['ifDescr'] = $sfpport_stats['ubntSfpName'];
$port_stats[$curIfIndex]['ifName'] = $sfpport_stats['ubntSfpName'];
$port_stats[$curIfIndex]['ifInOctets'] = $sfpport_stats['ubntSfpRxBytes'];
$port_stats[$curIfIndex]['ifOutOctets'] = $sfpport_stats['ubntSfpTxBytes'];
$port_stats[$curIfIndex]['ifOperStatus'] = ($sfpport_stats['ubntSfpUp'] == 1 ? 'up' : 'down');
}
unset($sfp_stats);

View File

@ -0,0 +1,18 @@
<?php
unset($port_stats);
$sfp_stats = snmpwalk_group($device, 'ubntSfpsTable', 'UBNT-UFIBER-MIB');
$offset = '1000';
foreach ($sfp_stats as $index => $sfpport_stats) {
$curIfIndex = $offset + $index;
$port_stats[$curIfIndex]['ifDescr'] = $sfpport_stats['ubntSfpName'];
$port_stats[$curIfIndex]['ifName'] = $sfpport_stats['ubntSfpName'];
$port_stats[$curIfIndex]['ifInOctets'] = $sfpport_stats['ubntSfpRxBytes'];
$port_stats[$curIfIndex]['ifOutOctets'] = $sfpport_stats['ubntSfpTxBytes'];
$port_stats[$curIfIndex]['ifOperStatus'] = ($sfpport_stats['ubntSfpUp'] == 1 ? 'up' : 'down');
}
unset($sfp_stats);

560
mibs/ubnt/UBNT-UFIBER-MIB Normal file
View File

@ -0,0 +1,560 @@
UBNT-UFIBER-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32, Counter64,
IpAddress, TimeTicks FROM SNMPv2-SMI
DisplayString, TruthValue, MacAddress FROM SNMPv2-TC
OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF
ubntEdgeMaxGroups, ubntMIB FROM UBNT-MIB;
ubntEdgeMax MODULE-IDENTITY
LAST-UPDATED "201801030000Z"
ORGANIZATION "Ubiquiti Networks, Inc."
CONTACT-INFO "support@ubnt.com"
DESCRIPTION "The EdgeMax MIB module for Ubiquiti Networks, Inc. entities"
REVISION "201801030000Z"
DESCRIPTION "ubntEdgeMax revision"
::= { ubntMIB 5 }
-- --------------------------------------------------------------------------------
-- product identification
-- --------------------------------------------------------------------------------
ubntProductIdent OBJECT IDENTIFIER ::= { ubntEdgeMax 1 }
ubntModel OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Product model."
::= { ubntProductIdent 1 }
ubntSerialNumber OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Serial number."
::= { ubntProductIdent 2 }
ubntVersion OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Firmware version."
::= { ubntProductIdent 3 }
-- --------------------------------------------------------------------------------
-- power outputs
-- --------------------------------------------------------------------------------
ubntPowerOuts OBJECT IDENTIFIER ::= { ubntEdgeMax 2 }
ubntPowerOutsCount OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of power outputs present on this system."
::= { ubntPowerOuts 1 }
ubntPowerOutTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntPowerOutEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A list of power out entries. The number of entries is given by the value of ubntPowerOutsCount."
::= { ubntPowerOuts 2 }
ubntPowerOutEntry OBJECT-TYPE
SYNTAX UbntPowerOutEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An entry in the ubntPowerOutTable."
INDEX { ubntPowerOutIndex }
::= { ubntPowerOutTable 1 }
UbntPowerOutTable ::= SEQUENCE {
ubntPowerOutIndex Integer32,
ubntPowerOutVoltage Integer32,
ubntPowerOutCurrent Integer32,
ubntPowerOutPower Integer32
}
ubntPowerOutIndex OBJECT-TYPE
SYNTAX Integer32 (1..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "A unique value for each power output."
::= { ubntPowerOutEntry 1 }
ubntPowerOutVoltage OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Output voltage in mV."
::= { ubntPowerOutEntry 2 }
ubntPowerOutCurrent OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Output current in mA."
::= { ubntPowerOutEntry 3 }
ubntPowerOutPower OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Output power in mW."
::= { ubntPowerOutEntry 4 }
-- --------------------------------------------------------------------------------
-- power supplies
-- --------------------------------------------------------------------------------
ubntPowerSupplies OBJECT IDENTIFIER ::= { ubntEdgeMax 3 }
ubntPsuBaysNumber OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of PSU bays available on this system."
::= { ubntPowerSupplies 1 }
ubntPsuTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntPsuEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A list of PSU entries. The number of entries is given by the value of ubntPsuBaysNumber."
::= { ubntPowerSupplies 2 }
ubntPsuEntry OBJECT-TYPE
SYNTAX UbntPsuEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An entry in the ubntPsuTable."
INDEX { ubntPsuIndex }
::= { ubntPsuTable 1 }
UbntPsuEntry ::= SEQUENCE {
ubntPsuIndex Integer32,
ubntPsuType Integer32,
ubntPsuStatus Integer32,
ubntPsuOperStatus Integer32,
ubntPsuVoltage Integer32,
ubntPsuTemperature Integer32,
ubntPsuCharging Integer32,
ubntPsuBatteryQuantity Integer32
}
ubntPsuIndex OBJECT-TYPE
SYNTAX Integer32 (1..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "A unique value for each PSU."
::= { ubntPsuEntry 1 }
ubntPsuType OBJECT-TYPE
SYNTAX INTEGER { unknown(0),ac(1),dc(2),poe(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "PSU Type."
::= { ubntPsuEntry 2 }
ubntPsuStatus OBJECT-TYPE
SYNTAX INTEGER { unknown(0),on(1),off(2),standby(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "PSU Status."
::= { ubntPsuEntry 3 }
ubntPsuOperStatus OBJECT-TYPE
SYNTAX INTEGER { down(0),up(1) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "PSU operational status."
::= { ubntPsuEntry 4 }
ubntPsuVoltage OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "PSU voltage in mV."
::= { ubntPsuEntry 5 }
ubntPsuTemperature OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "PSU temperature in thousands of degrees Celsius."
::= { ubntPsuEntry 6 }
ubntPsuCharging OBJECT-TYPE
SYNTAX INTEGER { unknown(0),on(1),off(2) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Shows PSU charging state if it is supported."
::= { ubntPsuEntry 7 }
ubntPsuBatteryQuantity OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Number of batteries connected to PSU."
::= { ubntPsuEntry 8 }
-- --------------------------------------------------------------------------------
-- thermometers
-- --------------------------------------------------------------------------------
ubntThermometers OBJECT IDENTIFIER ::= { ubntEdgeMax 4 }
ubntThermometersCount OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of installed thermometers on this system."
::= { ubntThermometers 1 }
ubntThermsTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntThermsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A list of thermometers entries. The number of entries is given by the value of ubntThermometersCount."
::= { ubntThermometers 2 }
ubntThermsEntry OBJECT-TYPE
SYNTAX UbntThermsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An entry in the ubntThermsTable."
INDEX { ubntThermIndex }
::= { ubntThermsTable 1 }
UbntThermsEntry ::= SEQUENCE {
ubntThermIndex Integer32,
ubntThermType Integer32,
ubntThermTemperature Integer32
}
ubntThermIndex OBJECT-TYPE
SYNTAX Integer32 (1..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "A unique value for thermometer."
::= { ubntThermsEntry 1 }
ubntThermType OBJECT-TYPE
SYNTAX INTEGER { other(0),board(1),cpu(2),power(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Type of thermometer."
::= { ubntThermsEntry 2 }
ubntThermTemperature OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Temperature in thousands of degrees Celsius."
::= { ubntThermsEntry 3 }
-- --------------------------------------------------------------------------------
-- fans
-- --------------------------------------------------------------------------------
ubntFans OBJECT IDENTIFIER ::= { ubntEdgeMax 5 }
ubntFansCount OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of installed fans on this system."
::= { ubntFans 1 }
ubntFansTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntFanEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "A list of fan entries. The number of entries is given by the value of ubntFansCount."
::= { ubntFans 2 }
ubntFanEntry OBJECT-TYPE
SYNTAX UbntFanEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "An entry in the ubntFansTable."
INDEX { ubntFanIndex }
::= { ubntFansTable 1 }
UbntFanEntry ::= SEQUENCE {
ubntFanIndex Integer32,
ubntFanType Integer32,
ubntFanRpm Integer32
}
ubntFanIndex OBJECT-TYPE
SYNTAX Integer32 (1..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION "A unique value for fan."
::= { ubntFanEntry 1 }
ubntFanType OBJECT-TYPE
SYNTAX INTEGER { other(0),board(1),cpu(2),power(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Type of fan."
::= { ubntFanEntry 2 }
ubntFanRpm OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Fan RPM."
::= { ubntFanEntry 3 }
-- --------------------------------------------------------------------------------
-- gpon ONUs
-- --------------------------------------------------------------------------------
UbntOnuSN ::= TEXTUAL-CONVENTION
STATUS current
SYNTAX DisplayString (SIZE (0..12))
SignalLevel ::= TEXTUAL-CONVENTION
STATUS current
DISPLAY-HINT "d-2"
SYNTAX Integer32
ubntOnus OBJECT IDENTIFIER ::= { ubntEdgeMax 6 }
ubntOnusCount OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
::= { ubntOnus 1 }
ubntOnusTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntOnuEntry
MAX-ACCESS not-accessible
STATUS current
::= { ubntOnus 2 }
ubntOnuEntry OBJECT-TYPE
SYNTAX UbntOnuEntry
MAX-ACCESS not-accessible
STATUS current
INDEX { ubntOnuIndex }
::= { ubntOnusTable 1 }
UbntOnuEntry ::= SEQUENCE {
ubntOnuIndex Integer32,
ubntOnuSN Integer32,
ubntOnuName DisplayString,
ubntOnuOnline TruthValue,
ubntOnuModel DisplayString,
ubntOnuPort Integer32,
ubntOnuConnectedTime TimeTicks,
ubntOnuUpTime TimeTicks,
ubntOnuTxPower SignalLevel,
ubntOnuRxPower SignalLevel,
ubntOnuTxBytes Counter64,
ubntOnuRxBytes Counter64
}
ubntOnuIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 1 }
ubntOnuSN OBJECT-TYPE
SYNTAX UbntOnuSN
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 1 }
ubntOnuName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 2 }
ubntOnuOnline OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 3 }
ubntOnuModel OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..16))
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 4 }
ubntOnuOltPort OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 5 }
ubntOnuConnectedTime OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 6 }
ubntOnuUpTime OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 7 }
ubntOnuTxPower OBJECT-TYPE
SYNTAX SignalLevel
MAX-ACCESS read-only
STATUS current
DESCRIPTION "in hundredths of dBm"
::= { ubntOnuEntry 8 }
ubntOnuRxPower OBJECT-TYPE
SYNTAX SignalLevel
MAX-ACCESS read-only
STATUS current
DESCRIPTION "in hundredths of dBm"
::= { ubntOnuEntry 9 }
ubntOnuTxBytes OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 10 }
ubntOnuRxBytes OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
::= { ubntOnuEntry 11 }
-- --------------------------------------------------------------------------------
-- SFP
-- --------------------------------------------------------------------------------
ubntSfps OBJECT IDENTIFIER ::= { ubntEdgeMax 7 }
ubntSfpsCount OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The number of SFPs"
::= { ubntSfps 1 }
ubntSfpsTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntSfpEntry
MAX-ACCESS not-accessible
STATUS current
::= { ubntSfps 2 }
ubntSfpEntry OBJECT-TYPE
SYNTAX UbntSfpEntry
MAX-ACCESS not-accessible
STATUS current
INDEX { ubntSfpIndex }
::= { ubntSfpsTable 1 }
UbntSfpEntry ::= SEQUENCE {
ubntSfpIndex Integer32,
ubntSfpUp TruthValue,
ubntSfpVendor DisplayString,
ubntSfpVendorPn DisplayString,
ubntSfpTxBytes Counter64,
ubntSfpRxBytes Counter64
}
ubntSfpIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 1 }
ubntSfpName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 2 }
ubntSfpUp OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 3 }
ubntSfpVendor OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..16))
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 4 }
ubntSfpVendorPn OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..16))
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 5 }
ubntSfpTxBytes OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 6 }
ubntSfpRxBytes OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
::= { ubntSfpEntry 7 }
-- --------------------------------------------------------------------------------
-- gpon ONU ports
-- --------------------------------------------------------------------------------
ubntOnuPorts OBJECT IDENTIFIER ::= { ubntEdgeMax 8 }
ubntOnuPortsTable OBJECT-TYPE
SYNTAX SEQUENCE OF UbntOnuPortEntry
MAX-ACCESS not-accessible
STATUS current
::= { ubntOnuPorts 1 }
ubntOnuPortEntry OBJECT-TYPE
SYNTAX UbntOnuPortEntry
MAX-ACCESS not-accessible
STATUS current
INDEX { ubntOnuPortSN, ubntOnuPortIndex }
::= { ubntOnuPortsTable 1 }
UbntOnuPortEntry ::= SEQUENCE {
ubntOnuPortSN UbntOnuSN,
ubntOnuPortIndex Integer32,
ubntOnuPortIfSpeed Gauge32
}
ubntOnuPortSN OBJECT-TYPE
SYNTAX UbntOnuSN
MAX-ACCESS read-only
STATUS current
::= { ubntOnuPortEntry 1 }
ubntOnuPortIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
::= {ubntOnuPortEntry 2 }
ubntOnuPortIfSpeed OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "in bits per second, see IF-MIB::ifSpeed"
::= { ubntOnuPortEntry 3 }
END

4000
tests/data/edgeosolt.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff