Merge branch 'master' of ssh://git.code.sf.net/p/netdisco/netdisco-ng

This commit is contained in:
Oliver Gorwits
2013-10-21 22:43:27 +01:00
3 changed files with 21 additions and 7 deletions

View File

@@ -193,13 +193,26 @@ sub _get_vlan_list {
my (%vlans, %vlan_names);
my $i_vlan = $snmp->i_vlan || {};
my $trunks = $snmp->i_vlan_membership || {};
my $i_type = $snmp->i_type || {};
# get list of vlans in use
while (my ($idx, $vlan) = each %$i_vlan) {
# hack: if vlan id comes as 1.142 instead of 142
$vlan =~ s/^\d+\.//;
++$vlans{$vlan};
# VLANs are ports interfaces capture VLAN, but don't count as in use
# Port channels are also 'propVirtual', but capture while checking
# trunk VLANs below
if (exists $i_type->{$idx} and $i_type->{$idx} eq 'propVirtual') {
$vlans{$vlan} ||= 0;
}
else {
++$vlans{$vlan};
}
foreach my $t_vlan (@{$trunks->{$idx}}) {
++$vlans{$t_vlan};
}
}
unless (scalar keys %vlans) {
@@ -215,7 +228,8 @@ sub _get_vlan_list {
(my $vlan = $idx) =~ s/^\d+\.//;
# just in case i_vlan is different to v_name set
++$vlans{$vlan};
# capture the VLAN, but it's not in use on a port
$vlans{$vlan} ||= 0;
$vlan_names{$vlan} = $name;
}
@@ -268,8 +282,7 @@ sub _get_vlan_list {
}
# check in use by a port on this device
if (scalar keys %$i_vlan and not exists $vlans{$vlan}
and not setting('macsuck_all_vlans')) {
if (!$vlans{$vlan} && !setting('macsuck_all_vlans')) {
debug sprintf
' [%s] macsuck VLAN %s/%s - not in use by any port - skipping.',

View File

@@ -390,7 +390,8 @@ VLAN which is not defined in the VLAN database.
=head3 C<macsuck_no_vlan>
Value: List of VLAN names or numbers. Default: Empty List.
Value: List of VLAN names or numbers. Default: fddi-default,
token-ring-default,fddinet-default,trnet-default.
On some devices, per-VLAN macsuck will timeout with specific VLAN numbers. You
can put those numbers (or their names) into this list to have them skipped.

View File

@@ -79,7 +79,7 @@ macsuck_no: []
macksuck_only: []
macsuck_all_vlans: false
macsuck_no_unnamed: false
macsuck_no_vlan: []
macsuck_no_vlan: [fddi-default,token-ring-default,fddinet-default,trnet-default]
macsuck_no_devicevlan: []
macsuck_bleed: false
macsuck_min_age: 0