diff --git a/lib/SNMP/Info/Layer3/Juniper.pm b/lib/SNMP/Info/Layer3/Juniper.pm index c0dff171..a52d7e24 100644 --- a/lib/SNMP/Info/Layer3/Juniper.pm +++ b/lib/SNMP/Info/Layer3/Juniper.pm @@ -327,7 +327,14 @@ sub i_vlan_membership { foreach my $vlan ( keys %$v_ports ) { my @bp_indexes = split /,/, $v_ports->{$vlan}; - push @{ $res->{ $bp_index->{$_} } }, $vlan for @bp_indexes; + foreach my $idx (@bp_indexes) { + if (!exists $bp_index->{$_}) { + print " VLAN $vlan has no bp_index mapping. Skipping.\n" + if $DEBUG; + next; + } + push @{ $res->{ $bp_index->{$_} } }, $vlan for @bp_indexes; + } } return $res; } @@ -353,7 +360,14 @@ sub i_vlan_membership_untagged { foreach my $vlan ( keys %$v_ports ) { my @bp_indexes = split /,/, $v_ports->{$vlan}; - push @{ $res->{ $bp_index->{$_} } }, $vlan for @bp_indexes; + foreach my $idx (@bp_indexes) { + if (!exists $bp_index->{$_}) { + print " untagged VLAN $vlan has no bp_index mapping. Skipping.\n" + if $DEBUG; + next; + } + push @{ $res->{ $bp_index->{$_} } }, $vlan for @bp_indexes; + } } return $res; }