From 0bfc8c5ed6db1f4edbc1eb8702c617dead0a8af2 Mon Sep 17 00:00:00 2001 From: Jeroen van Ingen Date: Fri, 6 Jun 2014 09:34:53 +0200 Subject: [PATCH] Return correct VLAN info with qb_fw_table() on Layer2::HP --- Info/Layer2/HP.pm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Info/Layer2/HP.pm b/Info/Layer2/HP.pm index 2fb8c190..0f3c6e49 100644 --- a/Info/Layer2/HP.pm +++ b/Info/Layer2/HP.pm @@ -536,6 +536,30 @@ sub set_i_vlan_tagged { sub agg_ports { return agg_ports_ifstack(@_) } +sub qb_fw_vlan { + my $hp = shift; + my $partial = shift; + my $qb_fw_vlan = $hp->SUPER::qb_fw_vlan($partial); + + my $fdb_to_dot1q = {}; + my $fdb_id = $hp->dot1qVlanFdbId(0); + foreach my $fdb_entry (keys %$fdb_id) { + my ($timemark, $vlan_id) = split(/\./, $fdb_entry); + $fdb_to_dot1q->{$fdb_id->{$fdb_entry}} = $vlan_id; + } + foreach my $learn (keys %$qb_fw_vlan) { + my $fdb_idx = $qb_fw_vlan->{$learn}; + if (exists $fdb_to_dot1q->{$fdb_idx}) { + $qb_fw_vlan->{$learn} = $fdb_to_dot1q->{$fdb_idx}; + } + } + + return $qb_fw_vlan; +} + + + + 1; __END__