SNMP::Info::CiscoVTP(3pm)

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);