Commit Graph

121 Commits

Author SHA1 Message Date
PipoCanaja
b62a4bacd4 bug - Fix CISCO-BGP4-MIB logic (#16260)
* Fix CISCO-BGP4-MIB logic

* style

* tests

* tests suite
2024-08-06 21:19:50 -05:00
Joe Clarke
aad110102f Fix error from MikroTik routers when updating BGP peer info (#16224)
* Create a case for routeros.

RouterOS doesn't support the bgpPeerInUpdateElapsedTime object, so when
LibreNMS does to insert a peer update into the database from a MikroTik
router, you see the following error:

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column `librenms`.`bgpPeers`.`bgpPeerInUpdateElapsedTime` at row 2 (Connection: mysql, SQL: UPDATE `bgpPeers` set `bgpPeerAdminStatus`=start,`bgpPeerInUpdateElapsedTime`=...

To fix this, special-case routeros and note that the object is not yet
supported.

* Use spaces, not tabs.

* Use set_numeric() to ensure bgpPeerInUpdateElapsedTime is a number.

---------

Co-authored-by: Joe Clarke <jclarke@cisco.com>
2024-07-19 19:41:16 +02:00
Tony Murray
f5db13170f BGP integer fields fix (#16173)
Set 0 in integer fields with missing data
2024-07-05 13:43:12 +02:00
PipoCanaja
48b29db423 fix Counter64 octets value in 32bit column bgpPeerInTotalMessages (#15621) 2024-02-13 14:20:51 -06:00
Jellyfrog
071ca9bc2a Apply fixes from StyleCI (#15698)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-04 22:39:12 -06:00
Tony Murray
fa93034edd BGP-peers if no data, skip (#15548) 2023-11-05 18:29:50 -06:00
Albert Siersema
ad1b2f96f5 Fixes #14957 missing IPv6 BGP peers (#14959)
* Fixes #14957 missing IPv6 BGP peers

* Limit to NX-OS and IOS-XR

* Check for actual VRF since count(getVrfContexts) always > 0

* argh, fix last minute nervous finger superfluous space

* removed redundant count()
2023-05-15 10:32:26 +02:00
Justin Lentz
df31be30c1 Cleanup enable bgp setting (#14931)
* remove logic in module

* remove enable_bgp logic

* remove enable_bgp logic

* remove enable_bgp logic

* remove enable_bgp logic

* remove enable_bgp definition

* remove enable_bgp logic

* Remove enable_bgp documentation

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI

* StyleCI
2023-04-06 21:01:21 -05:00
Tony Murray
e4fdbbd82d Fix bgp-peers bgpIfAce bug and update test data (#14420)
* Update bgp-peers test data

* Fix bgp-peer bgpPeerIface

* Update test data, requires ipv4_addresses table
2022-10-03 12:55:49 -05:00
PipoCanaja
0e14dea12d Fix bgp_peer array_merge error (#14416) 2022-10-03 18:16:23 +02:00
Tony Murray
603713e87c Juniper bgp-peers cleanup (#14236)
Also found a device bug.  Held off on refactoring everything...
2022-08-24 14:45:59 -05:00
Tony Murray
33461e6092 firebrick bgp polling was broken (#14237)
It checked the wrong os variable, so was never run
Other option is to delete the code
2022-08-24 14:29:55 -05:00
Albert Siersema
1d53679a64 fixes #14104 polling BGP peers in non-default VRF (#14105) 2022-08-07 09:22:39 -05:00
mostdaysarebaddays
3b12f35b31 Update bgp-peers.inc.php (#14061) 2022-06-22 20:06:07 +02:00
Charly Forot
e34e6e07a5 BGP unnumbered support for Cumulus (#13785)
* Add Cumulus-BGPUN-MIB
* Add bgpPeerIface column into bgpPeers table
* update mysql database for BGP unnumbered support
* Rename BGP unumbered MIB for Cumulus
* remove duplicate Cumulus BGPUM mib
* Use custom BGPUN minb for Cumulus while polling bgp peers
* Update BGP peers discovery for Cumulus with unumbered support
* Update BGP peers polling for Cumulus with unumbered support
* Correct typing error
* Add BGP unumbered Cumulus tests units
* Remove unused SQL file
* Update migrations databse by adding bgpPeerIface into bgpPeers table
* Correct spacing error for continous integration
* Update DB column bgpPeerIface to point to ifIndex
* fix: bgpPeerIface column exist
* fix: use Eloquent instead of dbFetch deprecated
* fix: delete unused namespace
* fix: type bgpPeerIface
* fix: add root cumulus mib lacking
* move root cumulus mib into mibs/
* fix: missing root cumulus MIB
* fix: bgpPeerIface not expected for other OS
* fix: add bgpPeerIface into json tests for other OS
* fix: add bgpPeerIface for poller tests OS
* add relathionship between bgpPeers and Ports tables
* Revert "fix: bgpPeerIface not expected for other OS"
This reverts commit f979482106.
* fix: HasOne not imported
* fix: CI php placement of use line
* fix: bgpPeerIface has not default value
* updates way to fill bgpPeerIface
* remove relationship between BgpPeer and Ipv4Address/Ipv6Address
* fix: CI php syntax
fix: CI php syntax
fix: CI php syntax
fix: CI php syntax
* updates cumulus tests
* updates bgpPeerIface already filled
* fix : bgpPeerIface wrong ifIndex
* fix: update cumulus test for polling bgpPeerIface
* fix: CI PHP syntax
* fix: update cumulus test for polling bgpPeerIface
* fix: update cumulus test for polling bgpPeerIface
* Fix Fortigate Test
* Tests
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2022-05-22 14:27:28 +02:00
Guilherme Poletto
18ca4566eb New sensors for huawei vrp <tested on NE8000 platform> (#13352)
* Add EntityVoltage Sensors

* Add BoardPower Sensors

* Add Fanspeed Percent sensor

* Add Voltage_Status and Temperature_Status Normal|Minor|Major|Critical indicators, and internal Voltage and Temperature sensors

* set Minor alarm violations to warning status

* remove inconsistently applied empty lines between sections, and trailing newline that caused errors

* fetch thresholds for temperature.sensors and optical.RxPower from SNMP

* Added snmp testfiles for ne8000-m8 variant of VRP platform

* group sensors by card-identifier

* Regenerate testfiles for 5720-32x-ei

* Regenerate testfiles for the whole VRP family

* Optical Bias is reported as miliamps-mA, and not microamps-uA

* Implement divisor detection, VRP or NE8 prepended on sensor for debug-testing

* remove VRP or NE8 prependeds on sensors(put there for debug/testing only)

* use parent OIDs for walking and naming

* ignore per-slot power if unsupported

* regenerated snmp json testfiles

* sanitize bgp-peers value

* restore vrp.json test

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2022-02-14 10:05:18 +01:00
paulierco
c07fcc8029 Alcatel-Lucent AOS7 bgp fix2 (#13059)
* first

* style

* fix erorr

* fix style again

* fix style again
2021-07-21 08:03:21 -05:00
paulierco
7e35bac7ee Alcatel-Lucent Aos7 bgp fix (#13047)
* first

* fix style

* fix style

* tests

* tests

* tests

* tests

* tests

* tests
2021-07-18 13:32:59 +02:00
Jellyfrog
c147be4505 Revert "Remove snmp2ipv6 (#12683)" (#12725)
This reverts commit f5f72dd398.
2021-04-08 14:57:17 +02:00
Tony Murray
f5f72dd398 Remove snmp2ipv6 (#12683)
* Remove snmp2ipv6

* Fill in bgpPeerRemoteAddr too update test data
2021-04-07 16:57:57 -05:00
cjsoftuk
43ea55bcf3 Better firebrick support (#12600)
* Add Firebrick MIBs, temperatures and voltages.

* Add missing $sysOid checks.

* Add fan speed for FB6000 series.

* Add sane limits.

* Update Firebrick MIBs.

* Make BGP peers work.

* Better support for Firebricks.

* Add more firebrick support.

* Add BGP Peer States.

* Fix fan speed divisor now that Cliff has fixed the code.

* Fixes for BGP and sensors.

* Add Firebrick IPSec module.

* Add IPSec Tunnels (Base).

* Sort out the IPSec states (although they're still green for no real reason).

* Code style fixes.

* Add missing config definition.

* Fix code style issues.

* Move bgp-peers to its own file.

* Do fan speeds with yaml, not PHP.

* Add Firebrick 6000 snmprec.

* Move Firebrick tests to be FB6000 tests.

* Revert "Move Firebrick tests to be FB6000 tests."

This reverts commit 426c1db980.

* Add tests for specific firebrick variants (2900, 6000) rather than generic.

* Add the firebrick-ipsec-tunnels poller config option.

* Switch to cipsec-tunnels for Firebrick.

* Unnecessary as it's now in cipsec-tunnels.

* Add extra MIB fields for Firebrick BGP MIB.

* Minor fix for AS text.

* Fix the tests.

* Exclude build timestamp from the version.

* Fix a couple of careless errors.

* Code style fix.

* Better version strings.

* Fixes for BGP, and add "Routing Table" support (VRF).

* Add more test data for BGP peers.

* Fix test data for BGP.

* Remove processors for now - as we can't get the data sensibly.

* Fix code style.

* Update firebrick.inc.php

Force tests re-run

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2021-04-04 16:17:49 +02:00
PipoCanaja
90b43b3210 VRP - fix global VRF being NULL and not '' for cbgp, support for NetEngine devices (#12676)
* fix global VRF being NULL and not '' for cbgp

* continued

* clonky testfile

* fix regex
2021-03-30 19:02:00 -05:00
Tony Murray
1c379dcd05 Remove legacy function calls (#12651)
* massive inlines

* fix style and wtf

* remove rrdtool.inc.php include

* fix CommonFunctions namespace issues

* looking for missing class space, fix undefined class issues

* style fixes
2021-03-29 00:25:30 +02:00
Wade Fitzpatrick
be5a322d2c Add BGP discovery and polling for Dell OS10 devices (#12549)
* Add BGP discovery and polling for Dell OS10 devices

* Add BGP testing data for Dell OS10

* Add BGP testing data for Dell OS10 (fix)

* Add DB info for unit testing

DB_TEST_HOST must be changed when running mysql in a separate docker container or unit tests fail

* Set bgpLocalAs in discovery (fixes unit test fail)

Ideally the main `bgp-peers.inc.php` should be fixed so it does not
depend on finding bgpLocalAs from BGP4-MIB

* Change comment style

* Remove link to code in documentation

* Discover BGP counters

* Use IPv6 addresses in compressed format
2021-02-26 16:57:16 +01:00
paulierco
9b7c7e8291 Add Alcatel AOS7 bgpdescr & bgpprefix (#12450)
* WIP: Add Alcatel AOS7 bgpdescr & bgpprefix

* fix descr and bgpprefix

* fix func

* fix style

* fix style

* fix style

* add tests
2021-01-25 22:56:59 -06:00
averzicco
f7f2688125 Fix bgp polling for BGP4-MIB devices (#12301)
* Fix bgp polling

* Change polling logic for BGP4-MIB devices

* make int rollover easier to read

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-11-07 09:12:09 -06:00
Jellyfrog
29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog
2fc3a21211 Apply fixes from StyleCI (#12121) 2020-09-21 15:43:38 +02:00
PipoCanaja
b8c6769049 New corner cases for Huawei VRP BGP (#11663)
* vrp-improve

* add bgp4 data, and get errors

* Fix WRONG Type error on bgpPeerRemoteAs + handle ErrorSubCode in  a generic way

* fixing tests

* clean

* improve state backup to BGP4-MIB

* tests with corrected data

* tests

* restore original tests/data/vrp_5720.json
2020-05-23 21:11:55 -05:00
Damon Reed
53b75b289e Added bgpPeerDescr for Arista OS (#11495) 2020-05-06 00:51:39 +02:00
Mathieu Poussin
fc391090e1 BGP Polling: Add error code management (#11424)
* BGP Polling: Add error code polling

* Rework describe_bgp_error_code and fix bgp error fields migration

* Add real test data for IOS-XR and Arista EOS
2020-04-24 22:47:20 -05:00
Tony Murray
1c08c11a77 Remove Laravel helpers (#11428)
* Remove Laravel helpers

* Replace qualifier with import
2020-04-18 00:37:56 +02:00
PipoCanaja
ad1c7d0e19 IPv6 support for BGP peers in VRP devices (#11243)
* ipv6 support for BGP routes in VRP devices

* reverse bgpPeers array to allow VRF aware BGP

* codeclimate

* codeclimate

* codeclimate, finally

* Split VRP out of bgp-peers for readabilty

* Split VRP out of bgp-peers for readabilty

* tests

* CodeClimate

* improve function description

* improve function description

* v6data

* rebase

* space

* ipv6 support for BGP routes in VRP devices

* reverse bgpPeers array to allow VRF aware BGP

* codeclimate

* codeclimate

* codeclimate, finally

* Split VRP out of bgp-peers for readabilty

* Split VRP out of bgp-peers for readabilty

* tests

* CodeClimate

* improve function description

* improve function description

* v6data

* rebase

* space

* fixed corner case
2020-04-10 13:22:26 +02:00
Mathieu Poussin
8a2ce01dc1 Added support for reading advertised BGP prefixes for Arista-eos (#11147)
* Arista: Add support for reading advertised BGP prefixes

* Remove useless condition, fix $out_prefixes
2020-02-24 08:49:42 +00:00
PipoCanaja
95820bf5d4 Improve Huawei VRP bgp discovery (#11054)
* vrp bgp rewrite

VRP BGP code isolated and VRF aware

Ipv6 peer and afi typo

* mib-update

* avoid malformed OIDs in discovery

* Restore BGP4 MIB calls for some Campus devices

* CodeClimate
2020-02-11 20:54:12 +01:00
Martijn Schmidt
07f3c91e6c Revert ironware BGP-peers changes from PR #10941 (#11096)
* Revert ironware BGP-peers changes from PR #10941.

* Regenerate test data without BGP4V2-MIB support.

* Initialise $local_ip

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2020-02-03 14:32:45 +01:00
Martijn Schmidt
a64bd45dbc Update IronWare sensors & bgp-peers discovery, allow skip_values to target a specific index appended to the OID (#10941)
* 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.
2020-02-01 23:28:03 +01:00
Vitali Kari
653ac434ac Nokia bgp admin status fix (#10370) 2019-06-27 00:16:25 -05:00
Tony Murray
f3ba8947f7 Use Config helper (#10339)
remove usage of global variable
2019-06-23 00:29:12 -05:00
PipoCanaja
e285a9268e Improve Huawei BGP polling + BGP webui & graphs patches (#10010)
* basic adress family for VRP

* Improve BGP prefixes display

* Improve BGP prefixes display

* Improve BGP prefixes display

* climate
2019-04-09 13:44:48 +01:00
Vitali Kari
b55938f031 Nokia vrf bgp (#9622)
* first commit

* clean code

* add snmpsim data for bgp

* renumber sql patch

* clear public ip

* update  misc/db_schema.yaml

* add test data and renumber sql-schema

* sql-schema

* sql-schema

* Update module_tables.yaml

* Update module_tables.yaml

* Update timos.json

* Update timos.snmprec

* Rename 281.sql to 282.sql

* update test data

* db migration

* Update 2019_01_16_195644_add_vrf_id_and_bgpLocalAs.php

* update db schema

* Update 2019_01_16_195644_add_vrf_id_and_bgpLocalAs.php

* Update 2019_01_16_195644_add_vrf_id_and_bgpLocalAs.php

* Update db_schema.yaml

* update schema
2019-01-19 11:44:32 -06:00
hexdump0x0200
b302655c8c Fixes delta calculation for bgpPeers_cbgp metrics (#9431)
The values in the $peer['c_update'][$oid] array are set only if they have
changed. If the value has not changed, then zero is substituted for real
values, which leads to incorrect calculation of delta values and records
in the database:

SELECT AcceptedPrefixes,AcceptedPrefixes_prev,AcceptedPrefixes_delta
FROM bgpPeers_cbgp
WHERE device_id=115;

| AcceptedPrefixes | AcceptedPrefixes_prev | AcceptedPrefixes_delta |
|------------------|-----------------------|------------------------|
|               21 |                    21 |                    -21 |

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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-11-08 21:51:53 +00:00
Tony Murray
eeb3d58f5b Improved Logging and Debugging (#8870)
Use Log facility when Laravel is booted.
Update init.php so we can easily boot Laravel for CLI scripts. (and just Eloquent, but that may go away)
Move all debug setup into set_debug() function and use that across all scripts.
Log Laravel database queries.
Send debug output to librenms log file when enabling debug in the webui.
Allow for colorized Log CLI output. (currently will leave % tags in log file output)

** Needs testing and perhaps tweaking still.

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`
2018-07-13 23:08:00 +01:00
Tony Murray
f706d0ab41 fix: Fixed cbgp peers data on some devices (#8208)
* IOSXR snmprec data (unsorted)

* iosxr sorted

* Fix cbgp peers data on some devices

* fix formatting
2018-02-06 21:06:44 +00:00
Misha Komarovskiy
36fe6c83dc fix: Bgp-peers junos empty afi-safi names (#8083)
* fix: Bgp-peers junos empty afi-safi names

* fix discovery of all names
* fix polling rrd names assignment

Signed-off-by: Misha Komarovskiy <zombah@gmail.com>

* Update tests data for junos bgp-peers safi update

Signed-off-by: Misha Komarovskiy <zombah@gmail.com>
2018-01-20 21:21:39 -06:00
Tony Murray
88b4e31912 refactor: Refactored bgp-peers (#7972)
* bgp-peers update
Use IP parsing library more effectively.
Fix update issue
Include comware bgp-peers test data
deeper refactoring
Allow JunOS fallback to BGP4-MIB, some models only use that.
Add junos bgp4 data
Actually update all bpg data in the poller

* fix arista data. refactor some to prevent missing data from mucking things up

* refactor to use $oid_map for BGP4-MIB too

* A few comments to break up teh file a bit

* Junos bgp data an a quick revert for now.

* small cleanup

* fix ios bgp polling, add test data

* check the correct variable
2018-01-18 20:54:38 +00:00
Tony Murray
a2bce2690d bgp-peers: fix incorrect variable name (#7979) 2017-12-29 09:17:23 -06:00
Tony Murray
c91ec3842a Fix bugs in bgp-peers poller (#7976)
* Test Data

* fix bugs in bgp-peers poller
peer data in wrong format
array_diff doesn't work right, change to array_diff_assoc
astext is too short for some
2017-12-29 11:52:49 +00:00
Tony Murray
142218c854 fix bad snmp options (#7934) 2017-12-21 00:06:49 -06:00
Tony Murray
046ed94f7c refactor: Remove all old style snmp calls (#7924) 2017-12-20 21:48:35 +00:00