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>
This commit is contained in:
Martijn Schmidt
2020-02-03 14:32:45 +01:00
committed by GitHub
parent c07678d55f
commit 07f3c91e6c
5 changed files with 362 additions and 942 deletions

View File

@@ -97,9 +97,6 @@ if (Config::get('enable_bgp')) {
} elseif ($device['os_group'] === 'cisco') {
$peers_data = snmp_walk($device, 'cbgpPeer2RemoteAs', '-Oq', 'CISCO-BGP4-MIB');
$peer2 = !empty($peers_data);
} elseif ($device['os_group'] === 'brocade') {
$peers_data = snmp_walk($device, 'bgp4V2PeerRemoteAs', '-Oq', 'BGP4V2-MIB', 'brocade');
$peer2 = !empty($peers_data);
}
if (empty($peers_data)) {
@@ -150,14 +147,6 @@ if (Config::get('enable_bgp')) {
$af_list = build_cbgp_peers($device, $peer, $af_data, $peer2);
}
if ($device['os_group'] === 'brocade') {
// Brocade doesn't return MP-BGP SAFIs in the BGP4V2-MIB data, so it only displays the unicast SAFI
d_echo("Brocade:");
$afi = IP::parse($peer['ip'])->getFamily();
$af_list[$peer['ip']][$afi]['unicast'] = 1;
add_cbgp_peer($device, $peer, $afi, 'unicast');
}
if (!$bgp4_mib && $device['os'] == 'junos') {
$afis['ipv4'] = 'ipv4';
$afis['ipv6'] = 'ipv6';

View File

@@ -1156,8 +1156,6 @@ function build_bgp_peers($device, $data, $peer2)
'BGP4-MIB::bgpPeerRemoteAs.',
'HUAWEI-BGP-VPN-MIB::hwBgpPeerRemoteAs.',
'.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.',
'BGP4V2-MIB::bgp4V2PeerRemoteAs.1.ipv4.',
'BGP4V2-MIB::bgp4V2PeerRemoteAs.1.ipv6.',
);
$peers = trim(str_replace($remove, '', $data));
@@ -1166,7 +1164,6 @@ function build_bgp_peers($device, $data, $peer2)
foreach (explode("\n", $peers) as $peer) {
$local_ip = null;
if ($peer2 === true) {
$peerFull = $peer;
list($ver, $peer) = explode('.', $peer, 2);
}
list($peer_ip, $peer_as) = explode(' ', $peer);
@@ -1180,21 +1177,6 @@ function build_bgp_peers($device, $data, $peer2)
// ipv4
$peer_ip = implode('.', array_slice(explode('.', $peer_ip), -4));
}
} elseif ($device['os_group'] === 'brocade') {
$rawIP = $peer_ip;
$ver = '';
$octets = count(explode('.', $rawIP));
if ($octets > 11) {
// ipv6
$peer_ip = (string)IP::parse(snmp2ipv6($rawIP), true);
$parts = explode('.2.16.', $peerFull);
$ip_parts = str_split(str_replace(':', '', $parts[0]), 4);
$local_ip = implode(':', $ip_parts);
} else {
// ipv4
$peer_ip = implode('.', array_slice(explode('.', $rawIP), -4));
$local_ip = implode('.', array_slice(explode('.', $rawIP), 0, 4));
}
} else {
if (strstr($peer_ip, ':')) {
$peer_ip_snmp = preg_replace('/:/', ' ', $peer_ip);

View File

@@ -14,8 +14,6 @@ if (\LibreNMS\Config::get('enable_bgp')) {
$peer_data_check = snmpwalk_cache_oid($device, 'aristaBgp4V2PeerRemoteAs', array(), 'ARISTA-BGP4V2-MIB');
} elseif ($device['os'] === 'timos') {
$peer_data_check = snmpwalk_cache_multi_oid($device, 'tBgpInstanceRowStatus', [], 'TIMETRA-BGP-MIB', 'nokia');
} elseif ($device['os_group'] === 'brocade') {
$peer_data_check = snmpwalk_cache_oid($device, 'bgp4V2PeerRemoteAs', array(), 'BGP4V2-MIB', 'brocade', '-ObQ');
} else {
$peer_data_check = snmpwalk_cache_oid($device, 'cbgpPeer2RemoteAs', array(), 'CISCO-BGP4-MIB');
}
@@ -140,25 +138,6 @@ if (\LibreNMS\Config::get('enable_bgp')) {
'aristaBgp4V2PeerInUpdatesElapsedTime' => 'bgpPeerInUpdateElapsedTime',
'aristaBgp4V2PeerLocalAddr' => 'bgpLocalAddr',
);
} elseif ($device['os_group'] === 'brocade') {
if ($ip_type == 2) {
$ip_parts = str_split(str_replace(':', '', $peer['bgpLocalAddr']), 2);
array_walk($ip_parts, function (&$aPart) {
if ($aPart == '00') {
$aPart = '0';
}
$aPart = (int)$aPart;
});
$peer['bgpLocalAddr'] = implode('.', $ip_parts);
}
$peer_identifier = "1.$ip_type.$ip_len.{$peer['bgpLocalAddr']}.$ip_type.$ip_len.$bgp_peer_ident";
$mib = 'BGP4V2-MIB';
$oid_map = array(
'bgp4V2PeerState' => 'bgpPeerState',
'bgp4V2PeerAdminStatus' => 'bgpPeerAdminStatus',
'bgp4V2PeerFsmEstablishedTime' => 'bgpPeerFsmEstablishedTime',
'bgp4V2PeerInUpdatesElapsedTime' => 'bgpPeerInUpdateElapsedTime',
);
} else {
$peer_identifier = $ip_type . '.' . $ip_len . '.' . $bgp_peer_ident;
$mib = 'CISCO-BGP4-MIB';
@@ -282,7 +261,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
}
// --- Populate cbgp data ---
if ($device['os_group'] == 'vrp' || $device['os_group'] == 'cisco' || $device['os'] == 'junos' || $device['os_group'] === 'arista' || $device['os_group'] === 'brocade') {
if ($device['os_group'] == 'vrp' || $device['os_group'] == 'cisco' || $device['os'] == 'junos' || $device['os_group'] === 'arista') {
// Poll each AFI/SAFI for this peer (using CISCO-BGP4-MIB or BGP4-V2-JUNIPER MIB)
$peer_afis = dbFetchRows('SELECT * FROM bgpPeers_cbgp WHERE `device_id` = ? AND bgpPeerIdentifier = ?', array($device['device_id'], $peer['bgpPeerIdentifier']));
foreach ($peer_afis as $peer_afi) {
@@ -421,15 +400,6 @@ if (\LibreNMS\Config::get('enable_bgp')) {
$cbgpPeerAdvertisedPrefixes = $vrpPrefixes[$key]['hwBgpPeerPrefixAdvCounter'];
}
if ($device['os_group'] === 'brocade') {
if (empty($b_prefixes)) {
$b_prefixes = snmpwalk_cache_multi_oid($device, 'snBgp4NeighborSummaryTable', $b_prefixes, 'FOUNDRY-SN-BGP4-GROUP-MIB', null, '-OQUs');
}
$key = array_search($peer['bgpPeerIdentifier'], array_column($b_prefixes, 'snBgp4NeighborSummaryIp', 'snBgp4NeighborSummaryIndex'), true);
$cbgpPeerAcceptedPrefixes = $key ? $b_prefixes[$key]['snBgp4NeighborSummaryRouteReceived'] : null;
}
// Validate data
$cbgpPeerAcceptedPrefixes = set_numeric($cbgpPeerAcceptedPrefixes);
$cbgpPeerDeniedPrefixes = set_numeric($cbgpPeerDeniedPrefixes);