From b62a4bacd4da2dd260bcc8fc6b71f9a03929209c Mon Sep 17 00:00:00 2001 From: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:19:50 +0200 Subject: [PATCH] bug - Fix CISCO-BGP4-MIB logic (#16260) * Fix CISCO-BGP4-MIB logic * style * tests * tests suite --- includes/polling/bgp-peers.inc.php | 5 +++-- tests/data/iosxe.json | 24 ++++++++++++------------ tests/data/iosxe_c9400.json | 24 ++++++++++++------------ tests/data/iosxr_asr9001.json | 16 ++++++++-------- tests/data/iosxr_asr9901.json | 16 ++++++++-------- 5 files changed, 43 insertions(+), 42 deletions(-) diff --git a/includes/polling/bgp-peers.inc.php b/includes/polling/bgp-peers.inc.php index 6252614f94..57540dbc94 100644 --- a/includes/polling/bgp-peers.inc.php +++ b/includes/polling/bgp-peers.inc.php @@ -620,9 +620,10 @@ if (! empty($peers)) { $cbgpPeerPrefixAdminLimit = $cbgp_data['cbgpPeerPrefixAdminLimit']; $cbgpPeerPrefixThreshold = $cbgp_data['cbgpPeerPrefixThreshold']; $cbgpPeerPrefixClearThreshold = $cbgp_data['cbgpPeerPrefixClearThreshold']; - $cbgpPeerAdvertisedPrefixes = $cbgp_data['cbgpPeerAdvertisedPrefixes']; + $cbgpPeerAdvertisedPrefixes = max(0, $cbgp_data['cbgpPeerAdvertisedPrefixes'] - $cbgp_data['cbgpPeerWithdrawnPrefixes']); + $cbgpPeerWithdrawnPrefixes = 0; // no use, it is a gauge32 value, only the difference between cbgpPeerAdvertisedPrefixes and cbgpPeerWithdrawnPrefixes makes sense. + // CF CISCO-BGP4-MIB definition for both $cbgpPeerSuppressedPrefixes = $cbgp_data['cbgpPeerSuppressedPrefixes']; - $cbgpPeerWithdrawnPrefixes = $cbgp_data['cbgpPeerWithdrawnPrefixes']; unset($cbgp_data); } //end if diff --git a/tests/data/iosxe.json b/tests/data/iosxe.json index 0da6c5db21..8596873577 100644 --- a/tests/data/iosxe.json +++ b/tests/data/iosxe.json @@ -202,7 +202,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -225,7 +225,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -248,7 +248,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -271,7 +271,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -299,18 +299,18 @@ "PrefixAdminLimit": 0, "PrefixThreshold": 0, "PrefixClearThreshold": 0, - "AdvertisedPrefixes": 3, + "AdvertisedPrefixes": 2, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 1, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 1, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 3, + "AdvertisedPrefixes_delta": 2, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 1, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, @@ -323,18 +323,18 @@ "PrefixAdminLimit": 0, "PrefixThreshold": 0, "PrefixClearThreshold": 0, - "AdvertisedPrefixes": 3, + "AdvertisedPrefixes": 2, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 1, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 1, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 3, + "AdvertisedPrefixes_delta": 2, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 1, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, diff --git a/tests/data/iosxe_c9400.json b/tests/data/iosxe_c9400.json index 5e7f08d39b..47ed025384 100644 --- a/tests/data/iosxe_c9400.json +++ b/tests/data/iosxe_c9400.json @@ -32232,7 +32232,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -32255,7 +32255,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -32278,7 +32278,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -32301,7 +32301,7 @@ "bgpPeerRemoteAs": 65083, "bgpPeerState": "established", "bgpPeerAdminStatus": "start", - "bgpPeerLastErrorCode": null, + "bgpPeerLastErrorCode": 0, "bgpPeerLastErrorSubCode": null, "bgpPeerLastErrorText": null, "bgpPeerIface": null, @@ -32329,18 +32329,18 @@ "PrefixAdminLimit": 0, "PrefixThreshold": 0, "PrefixClearThreshold": 0, - "AdvertisedPrefixes": 3, + "AdvertisedPrefixes": 2, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 1, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 1, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 3, + "AdvertisedPrefixes_delta": 2, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 1, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, @@ -32353,18 +32353,18 @@ "PrefixAdminLimit": 0, "PrefixThreshold": 0, "PrefixClearThreshold": 0, - "AdvertisedPrefixes": 3, + "AdvertisedPrefixes": 2, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 1, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 1, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 3, + "AdvertisedPrefixes_delta": 2, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 1, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, diff --git a/tests/data/iosxr_asr9001.json b/tests/data/iosxr_asr9001.json index 17f8fa1836..d596f4379c 100644 --- a/tests/data/iosxr_asr9001.json +++ b/tests/data/iosxr_asr9001.json @@ -22396,18 +22396,18 @@ "PrefixAdminLimit": 2097152, "PrefixThreshold": 75, "PrefixClearThreshold": 75, - "AdvertisedPrefixes": 25, + "AdvertisedPrefixes": 18, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 7, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 5, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 25, + "AdvertisedPrefixes_delta": 18, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 7, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, @@ -22420,18 +22420,18 @@ "PrefixAdminLimit": 2097152, "PrefixThreshold": 75, "PrefixClearThreshold": 75, - "AdvertisedPrefixes": 25, + "AdvertisedPrefixes": 18, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 7, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 5, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 25, + "AdvertisedPrefixes_delta": 18, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 7, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, diff --git a/tests/data/iosxr_asr9901.json b/tests/data/iosxr_asr9901.json index e670df7a0a..7e4fa53ffe 100644 --- a/tests/data/iosxr_asr9901.json +++ b/tests/data/iosxr_asr9901.json @@ -20891,18 +20891,18 @@ "PrefixAdminLimit": 2097152, "PrefixThreshold": 75, "PrefixClearThreshold": 75, - "AdvertisedPrefixes": 12, + "AdvertisedPrefixes": 10, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 2, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 5, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 12, + "AdvertisedPrefixes_delta": 10, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 2, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" }, @@ -20915,18 +20915,18 @@ "PrefixAdminLimit": 2097152, "PrefixThreshold": 75, "PrefixClearThreshold": 75, - "AdvertisedPrefixes": 12, + "AdvertisedPrefixes": 10, "SuppressedPrefixes": 0, - "WithdrawnPrefixes": 2, + "WithdrawnPrefixes": 0, "AcceptedPrefixes_delta": 5, "AcceptedPrefixes_prev": 0, "DeniedPrefixes_delta": 0, "DeniedPrefixes_prev": 0, - "AdvertisedPrefixes_delta": 12, + "AdvertisedPrefixes_delta": 10, "AdvertisedPrefixes_prev": 0, "SuppressedPrefixes_delta": 0, "SuppressedPrefixes_prev": 0, - "WithdrawnPrefixes_delta": 2, + "WithdrawnPrefixes_delta": 0, "WithdrawnPrefixes_prev": 0, "context_name": "" },