* Added sensors for outlets on Schleifenbauer devices. Also use the outlet name when configured.
* Updated tests for Schleifenbauer
* Fixed on test for Schleifenbauer
* Optimized polling by retriving only outlets from the device with the network connection, not all devices on the data-bus.
* Fixed code styling
* Use shorthand comparisons for names
* Fix for conflicting $entPhysicalIndex
* Migrate ironware sensor discovery from php to yaml.
* More sensors, add grouping.
* dynamic_discovery_get_value() becomes getValueFromData()
* Target a specific index with skip_values.
* Improve Brocade BGP session discovery/polling
This commit allows for the correct discovery of BGP sessions
with 32-bit ASNs, IPv6 neighbors using the BGP4V2-MIB which is
based on draft-ietf-idr-bgp4-mibv2-11 and also polls for IPv4
unicast received routes through the FOUNDRY-SN-BGP4-GROUP-MIB.
Copied most of the code from PR#8877 by @Mikeburke14, cleaned
up the code a little bit to match the normal LibreNMS style,
and fixed bgpPeers_cbgp discovery as well as polling for the
ipv4.unicast neighbors.
Note that older Brocade IronWare firmware versions are known
to have multiple defects relating to the BGP4V2-MIB which
might result in certain missing non-established neighbors.
Related vendor defect numbers:
- DEFECT000633962
-- Symptom: The OID bgp4V2PeerAdminStatus does not return the
correct value
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00g
- DEFECT000583319
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display all the BGP entries
-- Reported: NI 05.6.00
-- Resolved: NI 05.8.00e
- DEFECT000550309
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display the full information
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00c
* Add ironware CER & ICX platform test data.
* Re-add ironware.json compatible with current master branch.
* Dynamic entPhysicalIndex values for YamlDiscovery
* Use degree symbol when displaying temperature values
* Adjust SNMP options for new snmp_get_multi()
The OS polling module for mrv-od was using snmpget commands with
-Ovqs, rather than -OQUs, which meant that the equal sign was
stripped in the snmpget output. But that equal sign is now used
as the explode() delimiter so it broke the construction of the
returned array for the snmp_get_multi() function.
Additionally, I removed the NBS-CMMC-MIB:: prefix which is no
longer returned by snmp_get_multi() as part of the OID. Now,
the mrv-od.inc.php OS polling module is retrieving data from
positions in the array with actual content.
* Convert mrv-od to yaml, improve sensors discovery
Converted sensors discovery for mrv-od to yaml, retaining all
functionality for pre-cache, dbm, and temperature. Replaced specific
SFF-8472 Digital Diagnostics state sensors with generic ones, given that
we are now reading out detailed values through new dbm, current, voltage
sensors.
Reasoning: the generic Digital Diagnostics state sensors report state
diagsOk, or else the worst severity level measured among all of the
Digital Diagnostics values for that optical data point. You'd really
only want to set a generic "alarm" so the box can report that it
thinks something is wrong, whereafter a human can look at the graphs
and/or the CLI to draw their conclusions about the alarm. Otherwise,
things would quickly become too spammy as you are essentially duplicating
every sensor across both regular measurements and state measurements.
Further changes:
- Increase maximum number of detected PSUs from 4 to 8 per the MIB.
- State sensor to detect (in)sufficient power budget for all modules.
- Use skip_values to hide state sensors with the notSupported value.
- Use skip_values to hide sensors which are unsupported per the MIB,
signified by the device returning special values -1 or -2147483648.
- Add dBm, temperature "over" graphs to the mrv-od device header bar.
* Add mrv-od entity-physical support
MRV does not use the ENTITY-MIB data format, so we had to reconstruct
the inventory from their proprietary format using the following tables
from their NBS-CMMC-MIB:
- nbsCmmcChassisTable
- nbsCmmcSlotTable
- nbsCmmcPortTable
Additionally, since sensors didn't have their own ifindex in the
NBS-CMMC-MIB, I went ahead and appended the last OID digit to
the "containing" ifindex create a unique number. The same was
done for the sensors in the yaml-discovery.
* Test data for mrv-od, fix 2* pre-commit.php issues
* Fix entPhysicalIndex returning 0 instead of null
Some unit test breakage was caused by 62167ebcb which changed
the code to return 0 instead of null when {{ $index }} was
set as the entPhysicalIndex in the YamlDiscovery. So now we
detect if it returns some value which may be interpreted as
false, and if so we set null rather than 0.
* Fix Avtech discovery
pre-cache stored the data incorrectly
* Fix RA-4E external sensors
sen1 had incorrect oids (duplicate of sen2)
Description oid from data doesn't match the mib, perhaps outdated MIB?
* add test data
* Updated 4E MIB
* refactor: advanced sensor states
mark create_state_index($state_name) as E_USER_DEPRECATED?
* fix: minor corrections
* fix: mib has partialSync(9) and incompatibleVersion(8)
* fix: corrected netagent2upsstate - Sleeping(5)
* fix: NetAgent2 upsThreePhaseUPSStatusInverterOperating correction
* refactor: array() be gone
* Refactoring includes/discovery/sensors/state/extendair.inc.php with arrays
And tidying up array formatting in other files
* fix: minor typo
* standardising array item names
removed redundant "if ($state_index_id !== null) {"
* workaround: procurve & serverscheck
a sensor is causing create_state_index($state) to return null.
The updated code doesn't allow for this and thus a hybrid is being used.
* standardised naming of state info. Caused a typo $state_name instead of $status_name
$state_name is the standard
* converted compas to square arrays
* Converted APC states using preg_match to new create_state_index() call
* Update boss.inc.php
* add mibs,first commit
* adds support for Nokia ISAM Plattform
* remove some comments
* change os polling to multi oid
* Restore file headers
* Fix discovery by sysObjectID
* first deactivate checks against IHUB (timos), It not necessary so long we can not provide more thatn one snmp community per device
* move snmp state and temperature from pre-cache
* Update os_schema.json
* update some mibs
* extend snmpwalk_cache_twopart_oid function
* add raisecom dbm and temperature sensors
* add test data
* add some more sensors
* Update raisecom.inc.php
* Update raisecom.inc.php
* Fix some comment and documentation typos.
* Fix various entphysical page display issues.
- Resolve flickering during loading (missing liClosed for nested items).
- Clicking a sensor actually takes you to the matching graph now.
* Add a few nicecase() calls to clean up html page display.
* Create discover_entity_physical() function
- Add discover_entity_physical() function into includes/discovery/functions.inc.php
- This allows for an easy implementation of OS-specific entity-physical discovery.
- Update includes/discovery/entity-physical/entity-physical.inc.php to use the new function.
* Add power_consumed and power_factor sensors.
* Two new icons, make more entPhysical data visible.
* Pre-commit fix: blank line found at end of control structure.
* Add Schleifenbauer OS support.
* Now really fix the comment typo.
* Fix parsing mistakes.
* Add a generic count sensor.
* Make the Schleifenbauer discovery use count instead of state sensors.
* Don't place count sensor at the top, add sane limits for Schleifenbauer
* Finetuning the rrd_options, changing Schleifenbauer sensor names.
* Update schleifenbauer.svg
* optimize logo too
* add test data
* fix sensor value display (spaces break it)
* update entPhysicalIndex
* Merge ethernetprobe2 into akcp and improve akcp
Use higher resolution temperature values if available
Properly hand F/C temperature scales (LibreNMS always uses C)
Add current, voltage, airflow (no test data)
Move humidity to yaml
* Update akcp.snmprec
* Update akcp-serverprobe8.json
* Add group
* Update test data
remove old MIB
* fixing sentry3 temperature sensor issues: read all sensors not just first two, fix reading limit and current values, fixing snmp get options
* fixing sentry4 temperature sensor issues: read all sensors not just first two, fix reading limit and current values, fixing snmp get options
* fixing code style issues
* addressing review items from murrant, removing individual snmp_gets, fixing fahrenheit to celcius code back
* addressing review items, putting back the celcius fahrenheit conversion logic back
* using snmpwalk_cache_oid instead of reinventing in sentry3 code
* using pre-cache for sentry4 temp sensors, addressing review items
* checking all sentry3 humidity sensors instead of first two, bulk reading instead of individual gets
* addressing style issues
* pre-caching sentry4 humidity warning table removing duplicate temp sensor event config table
* adding two more sentry snmprec files after temperature and humidity sensor updates
* making sensor index values for sentry3/4 unique
* adding sentry3 and 4 test data files after temperature and humidity sensors update
* Added Arris C3 to cmts.yaml
* Added Arris C3 hardware
* ARRIS CMTS->Move from cmts to arris_c4 yaml
* Fixed some Arris_c4 definitions
* Added Arris C3 CMTS
* Fixed some typos
* Arris C3 test files
* Arris C4 test files
* Deleted not anymore valid files
* Renamed from underscore
* Fixed some typos
* Correct test files
* Removed old snmprec files
* Correct test files v2
* Deleted more old files
* Return to cmts for valid_sensor() for Arris C4/C4c
* Re-done test files
* Re-do test files after rebase
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [X ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
* Junos dwdm interface sensor support …
four new sensors
Chromatic Dispersion ps/nm
Delay s (seconds)
Q_factor (dB)
preFEC_BER (ratio)
reuse of
SNR, dbm, temperature, current
* new dwdm sensors more generic, ber and quality_factor
* new sensors updated
* renamed html graphs new sensors
* fixed ber polling
* Change to base SI Hz and s.
* update sensor divisors to bigint
* rename sql-schema/216.sql to 218.sql
* YAML junos dwmd sensor definitions, except BER
* bigint divisor fixed
* deafult 1 divisior
* small fixes including schema change for another PR
* schema fix
* newdevice: support Avtech RoomAlert 32E/W
Move avtech discovery to yaml, took a bit of trickery
* More flexibility when checking pre-cached data
A little cleanup
* Add support for RoomAlert 32E/W external and wish temp sensors
Add RoomAlert 11E support (just temp sensors)
Updated ROOMALERT32E-MIB
* Added IronWare iface dBm sensor and related OID pr~e-cache
* fixed syntax violations
* added return_num() function and modified ironware dbm sensor to use it
* Update functions.php
* Update ironware.inc.php
* feature: Added support for sensors to be discovered from yaml
* added discovery definitions
* Updated docs, more code updates + tests
* removed the oid_name use
* pre-set variable from scrut output
* small updates as per comments in pr
* Allow index in descr
* Added ability to skip values
* Check for numeric values
* small update of oid name
* ADVA device support
- sensors for temperature, voltage, current and dbm
- ADVA mibs for FSP150CC and FSP3000R7
* sysObjectId - changed to level above instead of two entries
* OS for FSP150 and FSP3000R7 now in two seperate OS definitions
- split the files
- removed sysObjectId check for each
- removed hardcoded sensor limits
- removed more generic MIBs
* standardized variables / corrected declarations
* added missing MIB, style check code
* - corrected 'current' readings by adding $devisor
- changed rrdfile names to sensorname+$index
- moved LLDP-V2 mibs to main mib directory
* Committer: Chris A. Evans <[email protected]>
Add basic support for MRV OptiDriver Optical Transport Platform
* OS Detection
* Sensors
* Chassis temperature
* State
* Tx/Rx Optical Interface Power
* Power Supply
* Fan
* renamed: includes/definitions/mrv-optidriver.yaml -> includes/definitions/mrv-od.yaml
new file: includes/discovery/sensors/dbm/mrv-od.inc.php
deleted: includes/discovery/sensors/dbm/mrv-optidriver.inc.php
renamed: includes/discovery/sensors/pre-cache/mrv-optidriver.inc.php -> includes/discovery/sensors/pre-cache/mrv-od.inc.php
renamed: includes/discovery/sensors/state/mrv-optidriver.inc.php -> includes/discovery/sensors/state/mrv-od.inc.php
new file: includes/discovery/sensors/temperature/mrv-od.inc.php
deleted: includes/discovery/sensors/temperature/mrv-optidriver.inc.php
renamed: includes/polling/os/mrv-optidriver.inc.php -> includes/polling/os/mrv-od.inc.php
* modified: includes/discovery/sensors/dbm/mrv-od.inc.php
Added missing ')' in the if conditionals.
* Requested changes
modified: includes/definitions/mrv-od.yaml
modified: includes/discovery/sensors/state/mrv-od.inc.php
modified: includes/discovery/sensors/temperature/mrv-od.inc.php
modified: includes/polling/os/mrv-od.inc.php
removed extensions from all new mib files
* Add snmprec file to satisfy test units
new file: tests/snmpsim/mrv-od.snmprec