From 4d0832e4120984fa25de24a8c7367a9e59036799 Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sat, 13 May 2017 23:06:14 +0100 Subject: [PATCH] refactor: Updated vlan discovery to support JunOS (#6597) --- includes/discovery/vlans.inc.php | 8 +++- includes/discovery/vlans/junos.inc.php | 38 +++++++++++++++++++ .../{mib-jnx-vlan.txt => JUNIPER-VLAN-MIB} | 0 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 includes/discovery/vlans/junos.inc.php rename mibs/junos/{mib-jnx-vlan.txt => JUNIPER-VLAN-MIB} (100%) diff --git a/includes/discovery/vlans.inc.php b/includes/discovery/vlans.inc.php index 7ae438b659..360d6dadad 100644 --- a/includes/discovery/vlans.inc.php +++ b/includes/discovery/vlans.inc.php @@ -23,8 +23,12 @@ foreach ($tmp_base_indexes as $index => $array) { } $index_to_base = array_flip($base_to_index); -require 'includes/discovery/vlans/q-bridge-mib.inc.php'; -require 'includes/discovery/vlans/cisco-vtp.inc.php'; +if ($device['os'] === 'junos') { + require 'includes/discovery/vlans/junos.inc.php'; +} else { + require 'includes/discovery/vlans/q-bridge-mib.inc.php'; + require 'includes/discovery/vlans/cisco-vtp.inc.php'; +} // Fetch switchport <> VLAN relationships. This is DIRTY. foreach ($device['vlans'] as $domain_id => $vlans) { diff --git a/includes/discovery/vlans/junos.inc.php b/includes/discovery/vlans/junos.inc.php new file mode 100644 index 0000000000..6980db97f1 --- /dev/null +++ b/includes/discovery/vlans/junos.inc.php @@ -0,0 +1,38 @@ + $vlan) { + $vlan_id = $tagoruntag[$vlan_id]['jnxExVlanTag']; + d_echo(" $vlan_id"); + if (is_array($vlans_db[$vtpdomain_id][$vlan_id])) { + echo '.'; + } else { + dbInsert(array( + 'device_id' => $device['device_id'], + 'vlan_domain' => $vtpdomain_id, + 'vlan_vlan' => $vlan_id, + 'vlan_name' => $vlan['jnxExVlanName'], + 'vlan_type' => array('NULL') + ), 'vlans'); + echo '+'; + } + + $device['vlans'][$vtpdomain_id][$vlan_id] = $vlan_id; + $egress_ids = $tagoruntag[$vlan_id]['jnxExVlanTag']; + + foreach ($egress_ids as $port_id) { + $ifIndex = $base_to_index[$port_id]; + $per_vlan_data[$vlan_id][$ifIndex]['untagged'] = $untagged_ids; + } + } +} diff --git a/mibs/junos/mib-jnx-vlan.txt b/mibs/junos/JUNIPER-VLAN-MIB similarity index 100% rename from mibs/junos/mib-jnx-vlan.txt rename to mibs/junos/JUNIPER-VLAN-MIB