mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* 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:
@@ -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';
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user