Reference

SNMP::Info::CiscoVTP(3pm)

SNMP Interface to Cisco's VLAN Management MIBs

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();
 print "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

CISCO-VTP-MIB
CISCO-VLAN-MEMBERSHIP-MIB
CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB

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 of "ifIndex". 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")

$vtp->i_voice_vlan()

("vmVoiceVlanId")

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 of "set_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);

History