Merge branch 'master' of ssh://git.code.sf.net/p/netdisco/netdisco-ng
This commit is contained in:
		| @@ -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.', | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user