added cisco-vlan-iftable vlan info
This commit is contained in:
@@ -49,6 +49,7 @@ $INIT = 0;
|
|||||||
%MIBS = (
|
%MIBS = (
|
||||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||||
'CISCO-VLAN-MEMBERSHIP-MIB' => 'vmMembershipEntry',
|
'CISCO-VLAN-MEMBERSHIP-MIB' => 'vmMembershipEntry',
|
||||||
|
'CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB' => 'cviRoutedVlanIfIndex',
|
||||||
);
|
);
|
||||||
|
|
||||||
%GLOBALS = (
|
%GLOBALS = (
|
||||||
@@ -95,12 +96,16 @@ $INIT = 0;
|
|||||||
# CISCO-VLAN-MEMBERSHIP-MIB
|
# CISCO-VLAN-MEMBERSHIP-MIB
|
||||||
# VmMembershipTable
|
# VmMembershipTable
|
||||||
'i_vlan_type' => 'vmVlanType',
|
'i_vlan_type' => 'vmVlanType',
|
||||||
'i_vlan' => 'vmVlan',
|
'i_vlan2' => 'vmVlan',
|
||||||
'i_vlan_stat' => 'vmPortStatus',
|
'i_vlan_stat' => 'vmPortStatus',
|
||||||
'i_vlan_1' => 'vmVlans',
|
'i_vlan_1' => 'vmVlans',
|
||||||
'i_vlan_2' => 'vmVlans2k',
|
'i_vlan_2' => 'vmVlans2k',
|
||||||
'i_vlan_3' => 'vmVlans3k',
|
'i_vlan_3' => 'vmVlans3k',
|
||||||
'i_vlan_4' => 'vmVlans4k',
|
'i_vlan_4' => 'vmVlans4k',
|
||||||
|
|
||||||
|
# CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB
|
||||||
|
'v_cvi_if' => 'cviRoutedVlanIfIndex',
|
||||||
|
|
||||||
# TODO Add these tables if someone wants them..
|
# TODO Add these tables if someone wants them..
|
||||||
# vtpEditControlTable
|
# vtpEditControlTable
|
||||||
# vtpVlanEditTable
|
# vtpVlanEditTable
|
||||||
@@ -111,12 +116,37 @@ $INIT = 0;
|
|||||||
%MUNGE = (
|
%MUNGE = (
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
sub i_vlan {
|
||||||
|
my $vtp = shift;
|
||||||
|
|
||||||
|
# Check for CISCO-VLAN-MIB
|
||||||
|
my $i_vlan = $vtp->i_vlan2();
|
||||||
|
return $i_vlan if defined $i_vlan;
|
||||||
|
|
||||||
|
# Check in CISCO-VLAN-IFTABLE-RELATION-MIB
|
||||||
|
my $v_cvi_if = $vtp->v_cvi_if();
|
||||||
|
return undef unless defined $v_cvi_if;
|
||||||
|
|
||||||
|
# Translate vlan.physical_interface -> iid
|
||||||
|
# to iid -> vlan
|
||||||
|
$i_vlan = {};
|
||||||
|
foreach my $i (keys %$v_cvi_if){
|
||||||
|
my ($vlan,$phys) = split(/\./,$i);
|
||||||
|
my $iid = $v_cvi_if->{$i};
|
||||||
|
|
||||||
|
$i_vlan->{$iid}=$vlan;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $i_vlan;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
__END__
|
__END__
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
SNMP::Info::CiscoVTP - Perl5 Interface to Cisco's VLAN Management MIB - CISCO-VTP-MIB
|
SNMP::Info::CiscoVTP - Perl5 Interface to Cisco's VLAN Management MIBs
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
@@ -141,7 +171,7 @@ Max Baker (C<max@warped.org>)
|
|||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides
|
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides
|
||||||
information about a switch's VLANs.
|
information about a cisco device's VLAN and VTP Domain memebership.
|
||||||
|
|
||||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||||
|
|
||||||
@@ -155,6 +185,10 @@ none.
|
|||||||
|
|
||||||
=item CISCO-VTP-MIB
|
=item CISCO-VTP-MIB
|
||||||
|
|
||||||
|
=item CISCO-VLAN-MEMBERSHIP-MIB
|
||||||
|
|
||||||
|
=item CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
|
MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
|
||||||
|
|||||||
Reference in New Issue
Block a user