NAME
SNMP::Info::CiscoVTP - SNMP Interface to Cisco's VLAN Management MIBs
AUTHOR
Max Baker
SYNOPSIS
# Let SNMP::Info determine the correct subclass for you.
my
$vtp
= new SNMP::Info(
AutoSpecify
=> 1,
Debug
=> 1,
DestHost
=>
'myswitch'
,
Community
=>
'public'
,
Version
=> 2
)
or
die
"Can't connect to DestHost.\n"
;
my
$class
=
$vtp
->class();
"SNMP::Info determined this device to fall under subclass : $class\n"
;
DESCRIPTION
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides information about a Cisco device's VLAN and VTP Domain membership.
Use or create in a subclass of SNMP::Info. Do not use directly.
Inherited Classes
None.
Required MIBs
GLOBALS
- $vtp->vtp_version()
-
(
vtpVersion
) - $vtp->vtp_maxstore()
-
(
vtpMaxVlanStorage
) - $vtp->vtp_notify()
-
(
vtpNotificationsEnabled
) - $vtp->vtp_notify_create()
-
(
vtpVlanCreatedNotifEnabled
) - $vtp->vtp_notify_delete()
-
(
vtpVlanDeletedNotifEnabled
) - $vtp->vtp_trunk_set_serial()
-
(
vlanTrunkPortSetSerialNo
)
TABLE METHODS
Your device will only implement a subset of these methods.
- $vtp->i_vlan()
-
Returns a mapping between
ifIndex
and assigned VLAN ID for access ports and the default VLAN ID for trunk ports. - $vtp->i_untagged()
-
An alias for
i_vlan
. - $vtp->i_vlan_membership()
-
Returns reference to hash of arrays: key =
ifIndex
, value = array of VLAN IDs. These are the VLANs which are members of enabled VLAN list for the port.Example:
my
$interfaces
=
$vtp
->interfaces();
my
$vlans
=
$vtp
->i_vlan_membership();
foreach
my
$iid
(
sort
keys
%$interfaces
) {
my
$port
=
$interfaces
->{
$iid
};
my
$vlan
=
join
(
','
,
sort
(@{
$vlans
->{
$iid
}}));
print
"Port: $port VLAN: $vlan\n"
;
}
- $vtp->i_subinterfaces()
-
Returns reference to hash of arrays: key =
ifIndex
, value = array ofifIndex
. These are the VLAN subinterfaces (l2vlan
type) for the parent (ethernetCsmacd
type) interface.Example:
my
$interfaces
=
$vtp
->interfaces();
my
$i_subs
=
$vtp
->i_subinterfaces();
foreach
my
$iid
(
sort
keys
%$interfaces
) {
my
$port
=
$interfaces
->{
$iid
};
my
$subs
=
join
(
','
,
sort
(
map
{
$interfaces
->{
$_
}} @{
$i_subs
->{
$iid
}}));
print
"Port: $port has subinterfaces: $subs\n"
;
}
- $vtp->i_vlan_membership_untagged()
-
Returns reference to hash of arrays: key =
ifIndex
, value = array of VLAN IDs. These are the VLANs which are members of the untagged egress list for the port.
VLAN Table (CISCO-VTP-MIB::vtpVlanTable
)
See ftp://ftp.cisco.com/pub/mibs/supportlists/wsc5000/wsc5000-communityIndexing.html for a good treaty of how to connect to the VLANs
- $vtp->v_index()
-
(
vtpVlanIndex
) - $vtp->v_state()
-
(
vtpVlanState
) - $vtp->v_type()
-
(
vtpVlanType
) - $vtp->v_name()
-
(
vtpVlanName
) - $vtp->v_mtu()
-
(
vtpVlanMtu
) - $vtp->v_said()
-
(
vtpVlanDot10Said
) - $vtp->v_ring()
-
(
vtpVlanRingNumber
) - $vtp->v_bridge()
-
(
vtpVlanBridgeNumber
) - $vtp->v_stp()
-
(
vtpVlanStpType
) - $vtp->v_parent()
-
(
vtpVlanParentVlan
) - $vtp->v_trans1()
-
(
vtpVlanTranslationalVlan1
) - $vtp->v_trans2()
-
(
vtpVlanTranslationalVlan2
) - $vtp->v_btype()
-
(
vtpVlanBridgeType
) - $vtp->v_hop_are()
-
(
vtpVlanAreHopCount
) - $vtp->v_hop_ste()
-
(
vtpVlanSteHopCount
) - $vtp->v_crf()
-
(
vtpVlanIsCRFBackup
) - $vtp->v_type_ext()
-
(
vtpVlanTypeExt
) - $vtp->v_if()
-
(
vtpVlanIfIndex
)
VLAN Membership Table (CISCO-VLAN-MEMBERSHIP-MIB::vmMembershipTable
)
- $vtp->i_vlan_type()
-
Static, Dynamic, or multiVlan.
(
vmVlanType
) - $vtp->i_vlan2()
-
The VLAN that an access port is assigned to.
(
vmVlan
) - $vtp->i_vlan_stat()
-
Inactive, active, shutdown.
(
vmPortStatus
) - $vtp->i_vlan_1()
-
Each bit represents a VLAN. This is 0 through 1023
(
vmVlans
) - $vtp->i_vlan_2()
-
Each bit represents a VLAN. This is 1024 through 2047
(
vmVlans2k
) - $vtp->i_vlan_3()
-
Each bit represents a VLAN. This is 2048 through 3071
(
vmVlans3k
) - $vtp->i_vlan_4()
-
Each bit represents a VLAN. This is 3072 through 4095
(
vmVlans4k
)
VLAN Membership Voice VLAN Table (CISCO-VLAN-MEMBERSHIP-MIB::vmVoiceVlanTable
)
Management Domain Table (CISCO-VTP-MIB::managementDomainTable
)
- $vtp->vtp_d_name()
-
(
managementDomainName
) - $vtp->vtp_d_mode()
-
(
managementDomainLocalMode
) - $vtp->vtp_d_rev()
-
(
managementDomainConfigRevNumber
) - $vtp->vtp_d_updater()
-
(
managementDomainLastUpdater
) - $vtp->vtp_d_last()
-
(
managementDomainLastChange
) - $vtp->vtp_d_status()
-
(
managementDomainRowStatus
) - $vtp->vtp_d_tftp()
-
(
managementDomainTftpServer
) - $vtp->vtp_d_tftp_path()
-
(
managementDomainTftpPathname
) - $vtp->vtp_d_pruning()
-
(
managementDomainPruningState
) - $vtp->vtp_d_ver()
-
(
managementDomainVersionInUse
)
VLAN Trunk Port Table (CISCO-VTP-MIB::vlanTrunkPortTable
)
- $vtp->vtp_trunk_mgmt_dom()
-
(
vlanTrunkPortManagementDomain
) - $vtp->vtp_trunk_encaps_t()
-
(
vlanTrunkPortEncapsulationType
) - $vtp->vtp_trunk_vlans()
-
(
vlanTrunkPortVlansEnabled
) - $vtp->vtp_trunk_vlans_2k()
-
(
vlanTrunkPortVlansEnabled2k
) - $vtp->vtp_trunk_vlans_3k()
-
(
vlanTrunkPortVlansEnabled3k
) - $vtp->vtp_trunk_vlans_4k()
-
(
vlanTrunkPortVlansEnabled4k
) - $vtp->vtp_trunk_native()
-
(
vlanTrunkPortNativeVlan
) - $vtp->i_pvid()
-
(
vlanTrunkPortNativeVlan
) - $vtp->vtp_trunk_rstat()
-
(
vlanTrunkPortRowStatus
) - $vtp->vtp_trunk_dyn()
-
(
vlanTrunkPortDynamicState
) - $vtp->vtp_trunk_dyn_stat()
-
(
vlanTrunkPortDynamicStatus
) - $vtp->vtp_trunk_vtp()
-
(
vlanTrunkPortVtpEnabled
) - $vtp->vtp_trunk_encaps()
-
(
vlanTrunkPortEncapsulationOperType
)
SET METHODS
These are methods that provide SNMP set functionality for overridden methods or provide a simpler interface to complex set operations. See "SETTING DATA VIA SNMP" in SNMP::Info for general information on set operations.
- $vtp->set_i_vlan ( vlan, ifIndex )
-
Changes an access (untagged) port VLAN, must be supplied with the numeric VLAN ID and port
ifIndex
. This method should only be used on end station (non-trunk) ports.Example:
my
%if_map
=
reverse
%{
$vtp
->interfaces()};
$vtp
->set_i_vlan(
'2'
,
$if_map
{
'FastEthernet0/1'
})
or
die
"Couldn't change port VLAN. "
,
$vtp
->error(1);
- $vtp->set_i_pvid ( pvid, ifIndex )
-
Sets port default VLAN, must be supplied with the numeric VLAN ID and port
ifIndex
. This method should only be used on trunk ports.Example:
my
%if_map
=
reverse
%{
$vtp
->interfaces()};
$vtp
->set_i_pvid(
'2'
,
$if_map
{
'FastEthernet0/1'
})
or
die
"Couldn't change port default VLAN. "
,
$vtp
->error(1);
- $vtp->set_i_untagged ( vlan, ifIndex )
-
This method attempts to work out whether the port referenced by ifIndex is trunking, and if so will return the value of
set_i_pvid
. Otherwise, the value ofset_i_vlan
is returned. - $vtp->set_add_i_vlan_tagged ( vlan, ifIndex )
-
Adds the VLAN to the enabled VLANs list of the port, must be supplied with the numeric VLAN ID and port
ifIndex
.Example:
my
%if_map
=
reverse
%{
$vtp
->interfaces()};
$vtp
->set_add_i_vlan_tagged(
'2'
,
$if_map
{
'FastEthernet0/1'
})
or
die
"Couldn't add port to egress list. "
,
$vtp
->error(1);
- $vtp->set_remove_i_vlan_tagged ( vlan, ifIndex )
-
Removes the VLAN from the enabled VLANs list of the port, must be supplied with the numeric VLAN ID and port
ifIndex
.Example:
my
%if_map
=
reverse
%{
$vtp
->interfaces()};
$vtp
->set_remove_i_vlan_tagged(
'2'
,
$if_map
{
'FastEthernet0/1'
})
or
die
"Couldn't add port to egress list. "
,
$vtp
->error(1);