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
This commit is contained in:
paulierco 2021-01-26 06:56:59 +02:00 committed by GitHub
parent ca157ec673
commit 9b7c7e8291
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26462 additions and 27 deletions

View File

@ -14,3 +14,7 @@ discovery:
sysObjectID:
- .1.3.6.1.4.1.6486.801. #aos7
mib_dir: nokia/aos7
discovery_modules:
bgp-peers: true
poller_modules:
bgp-peers: true

View File

@ -76,6 +76,8 @@ if (Config::get('enable_bgp')) {
}
} elseif ($device['os_group'] === 'arista') {
$af_data = snmpwalk_cache_oid($device, 'aristaBgp4V2PrefixInPrefixes', $af_data, 'ARISTA-BGP4V2-MIB');
} elseif ($device['os'] === 'aos7') {
$af_data = snmpwalk_cache_oid($device, 'alaBgpPeerRcvdPrefixes', $af_data, 'ALCATEL-IND1-BGP-MIB');
}
}

View File

@ -1046,6 +1046,7 @@ function build_bgp_peers($device, $data, $peer2)
d_echo("Peers : $data\n");
$remove = [
'ARISTA-BGP4V2-MIB::aristaBgp4V2PeerRemoteAs.1.',
'ALCATEL-IND1-BGP-MIB::alaBgpPeerAS.',
'CISCO-BGP4-MIB::cbgpPeer2RemoteAs.',
'BGP4-MIB::bgpPeerRemoteAs.',
'HUAWEI-BGP-VPN-MIB::hwBgpPeerRemoteAs.',
@ -1116,6 +1117,10 @@ function build_cbgp_peers($device, $peer, $af_data, $peer2)
$safi = array_shift($afisafi_tmp);
$peertype = array_shift($afisafi_tmp);
$bgp_ip = implode('.', $afisafi_tmp);
} elseif ($device['os'] == 'aos7') {
$afi = 'ipv4';
$safi = 'unicast';
$bgp_ip = $k;
} else {
$safi = array_pop($afisafi_tmp);
$afi = array_pop($afisafi_tmp);

View File

@ -16,6 +16,8 @@ if (\LibreNMS\Config::get('enable_bgp')) {
$peer_data_check = snmpwalk_cache_oid($device, 'aristaBgp4V2PeerRemoteAs', [], 'ARISTA-BGP4V2-MIB');
} elseif ($device['os'] === 'timos') {
$peer_data_check = snmpwalk_cache_multi_oid($device, 'tBgpInstanceRowStatus', [], 'TIMETRA-BGP-MIB', 'nokia');
} elseif ($device['os'] === 'aos7') {
$peer_data_check = snmpwalk_cache_multi_oid($device, 'alaBgpPeerAS', [], 'ALCATEL-IND1-BGP-MIB', 'aos7');
} elseif ($device['os'] === 'vrp') {
$peer_data_check = snmpwalk_cache_multi_oid($device, 'hwBgpPeerEntry', [], 'HUAWEI-BGP-VPN-MIB', 'huawei');
} elseif ($device['os_group'] == 'cisco') {
@ -249,6 +251,25 @@ if (\LibreNMS\Config::get('enable_bgp')) {
'aristaBgp4V2PeerLastErrorSubCodeReceived' => 'bgpPeerLastErrorSubCode',
'aristaBgp4V2PeerLastErrorReceivedText' => 'bgpPeerLastErrorText',
];
} elseif ($device['os'] === 'aos7') {
$peer_identifier = $peer['bgpPeerIdentifier'];
$mib = 'BGP4-MIB';
$oid_map = [
'bgpPeerState' => 'bgpPeerState',
'bgpPeerAdminStatus' => 'bgpPeerAdminStatus',
'bgpPeerInUpdates' => 'bgpPeerInUpdates',
'bgpPeerOutUpdates' => 'bgpPeerOutUpdates',
'bgpPeerInTotalMessages' => 'bgpPeerInTotalMessages',
'bgpPeerOutTotalMessages' => 'bgpPeerOutTotalMessages',
'bgpPeerFsmEstablishedTime' => 'bgpPeerFsmEstablishedTime',
'bgpPeerInUpdateElapsedTime' => 'bgpPeerInUpdateElapsedTime',
'bgpPeerLocalAddr' => 'bgpLocalAddr',
'bgpPeerLastError' => 'bgpPeerLastErrorCode',
];
$peer_data = [];
$al_descr = snmpwalk_cache_multi_oid($device, 'alaBgpPeerName', $al_descr, 'ALCATEL-IND1-BGP-MIB', 'aos7', '-OQUs');
$peer_data['bgpPeerDescr'] = $al_descr[$peer_identifier]['alaBgpPeerName'];
} elseif ($device['os_group'] == 'cisco') {
$peer_identifier = $ip_type . '.' . $ip_len . '.' . $bgp_peer_ident;
$mib = 'CISCO-BGP4-MIB';
@ -322,7 +343,6 @@ if (\LibreNMS\Config::get('enable_bgp')) {
} catch (InvalidIpException $e) {
// ignore
}
// --- Send event log notices ---
if ($peer_data['bgpPeerFsmEstablishedTime']) {
if (! (is_array(\LibreNMS\Config::get('alerts.bgp.whitelist'))
@ -381,14 +401,13 @@ 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') {
if ($device['os_group'] == 'vrp' || $device['os_group'] == 'cisco' || $device['os'] == 'junos' || $device['os'] == 'aos7' || $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 = ?', [$device['device_id'], $peer['bgpPeerIdentifier']]);
foreach ($peer_afis as $peer_afi) {
$afi = $peer_afi['afi'];
$safi = $peer_afi['safi'];
d_echo("$afi $safi\n");
if ($device['os_group'] == 'cisco') {
$bgp_peer_ident = $peer_ip->toSnmpIndex();
@ -464,7 +483,7 @@ if (\LibreNMS\Config::get('enable_bgp')) {
$cbgpPeerSuppressedPrefixes = $cbgp_data['cbgpPeerSuppressedPrefixes'];
$cbgpPeerWithdrawnPrefixes = $cbgp_data['cbgpPeerWithdrawnPrefixes'];
unset($cbgp_data);
}//end if
} //end if
if ($device['os'] == 'junos') {
$afis['ipv4'] = 1;
@ -512,6 +531,12 @@ if (\LibreNMS\Config::get('enable_bgp')) {
$cbgpPeerAdvertisedPrefixes = $out_prefixes["1.$afi.$tmp_peer.$afi.$safi"]['aristaBgp4V2PrefixOutPrefixes'];
}
if ($device['os'] === 'aos7') {
$tmp_peer = $peer['bgpPeerIdentifier'];
$al_prefixes = snmpwalk_cache_multi_oid($device, 'alaBgpPeerRcvdPrefixes', $al_prefixes, 'ALCATEL-IND1-BGP-MIB', 'aos7', '-OQUs');
$cbgpPeerAcceptedPrefixes = $al_prefixes[$tmp_peer]['alaBgpPeerRcvdPrefixes'];
}
if ($device['os_group'] === 'vrp') {
$vrpPrefixes = snmpwalk_cache_multi_oid($device, 'hwBgpPeerPrefixRcvCounter', $vrpPrefixes, 'HUAWEI-BGP-VPN-MIB', null, '-OQUs');
$vrpPrefixes = snmpwalk_cache_multi_oid($device, 'hwBgpPeerPrefixAdvCounter', $vrpPrefixes, 'HUAWEI-BGP-VPN-MIB', null, '-OQUs');

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff