From 03a81ad4bead68bc7d391620f872f9423b39adbf Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Sat, 8 Nov 2014 09:36:42 -0500 Subject: [PATCH] Add i_vlan_membership_untagged() method to L3::Aruba --- Info/Layer3/Aruba.pm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Info/Layer3/Aruba.pm b/Info/Layer3/Aruba.pm index caf697c8..9aed48de 100644 --- a/Info/Layer3/Aruba.pm +++ b/Info/Layer3/Aruba.pm @@ -484,6 +484,7 @@ sub i_vlan { return $aruba->SUPER::i_vlan($partial) if keys %{ $aruba->SUPER::i_vlan($partial) }; + # If we don't have Q-BRIDGE-MIB, we're a wireless controller my $index = $aruba->aruba_if_idx(); if ($partial) { @@ -512,6 +513,7 @@ sub i_vlan_membership { return $aruba->SUPER::i_vlan_membership($partial) if keys %{ $aruba->SUPER::i_vlan_membership($partial) }; + # If we don't have Q-BRIDGE-MIB, we're a wireless controller my $essid_ssid = $aruba->aruba_ap_bssid_ssid(); my $ssid_vlans = $aruba->aruba_ssid_vlan(); my $if_vlans = $aruba->aruba_if_vlan_member(); @@ -555,6 +557,33 @@ sub i_vlan_membership { return $i_vlan_membership; } + +sub i_vlan_membership_untagged { + my $aruba = shift; + my $partial = shift; + + return $aruba->SUPER::i_vlan_membership_untagged($partial) + if keys %{ $aruba->SUPER::i_vlan_membership_untagged($partial) }; + + # If we don't have Q-BRIDGE-MIB, we're a wireless controller + # It is unclear if native VLAN is transmitted untagged + # This assumes Cisco-like behavior on trunks that native VLAN is + # transmitted untagged, if this needs to be changed we will need to + # consider ifExtMode rather than just using i_vlan + my $if_membership = $aruba->i_vlan_membership(); + my $if_ = $aruba->i_vlan(); + my $if_mode = $aruba->aruba_if_mode(); + + my $vlans = $aruba->i_vlan($partial); + my $i_vlan_membership = {}; + foreach my $port (keys %$vlans) { + my $vlan = $vlans->{$port}; + push( @{ $i_vlan_membership->{$port} }, $vlan ); + } + + return $i_vlan_membership; +} + sub i_80211channel { my $aruba = shift; my $partial = shift;