better var names and change logic to skip port

This commit is contained in:
Oliver Gorwits
2019-04-01 23:15:44 +01:00
parent b22c32a578
commit 223c616cb0

View File

@@ -33,7 +33,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
# build port vlans suitable for DBIC # build port vlans suitable for DBIC
foreach my $entry (keys %$i_vlan_membership_untagged, keys %$i_vlan_membership) { foreach my $entry (keys %$i_vlan_membership_untagged, keys %$i_vlan_membership) {
my %port_vseen = (); my %this_port_vlans = ();
my $port = $interfaces->{$entry} or next; my $port = $interfaces->{$entry} or next;
my $type = $i_vlan_type->{$entry}; my $type = $i_vlan_type->{$entry};
@@ -45,7 +45,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
foreach my $vlan (@{ $i_vlan_membership_untagged->{$entry} }) { foreach my $vlan (@{ $i_vlan_membership_untagged->{$entry} }) {
next unless defined $vlan and $vlan; next unless defined $vlan and $vlan;
next if ++$port_vseen{$vlan} > 1; next if $this_port_vlans{$vlan};
my $native = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "t" : "f"; my $native = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "t" : "f";
push @portvlans, { push @portvlans, {
@@ -56,12 +56,14 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
vlantype => $type, vlantype => $type,
last_discover => \'now()', last_discover => \'now()',
}; };
++$this_port_vlans{$vlan};
++$p_seen{$vlan}; ++$p_seen{$vlan};
} }
foreach my $vlan (@{ $i_vlan_membership->{$entry} }) { foreach my $vlan (@{ $i_vlan_membership->{$entry} }) {
next unless defined $vlan and $vlan; next unless defined $vlan and $vlan;
next if ++$port_vseen{$vlan} > 1; next if $this_port_vlans{$vlan};
my $native = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "t" : "f"; my $native = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "t" : "f";
my $egress = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "f" : "t"; my $egress = ((defined $i_vlan->{$entry}) and ($vlan eq $i_vlan->{$entry})) ? "f" : "t";
@@ -73,6 +75,8 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
vlantype => $type, vlantype => $type,
last_discover => \'now()', last_discover => \'now()',
}; };
++$this_port_vlans{$vlan};
++$p_seen{$vlan}; ++$p_seen{$vlan};
} }
} }
@@ -90,7 +94,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
my %d_seen = (); my %d_seen = ();
my @devicevlans = (); my @devicevlans = ();
# add unnamed vlans to the device # add named vlans to the device
foreach my $entry (keys %$v_name) { foreach my $entry (keys %$v_name) {
my $vlan = $v_index->{$entry}; my $vlan = $v_index->{$entry};
next unless defined $vlan and $vlan; next unless defined $vlan and $vlan;