NAME

SNMP::Info::Layer2::C1900 - SNMP Interface to data from Cisco Catalyst 1900 Network Switches running CatOS

AUTHOR

Max Baker

SYNOPSIS

# Let SNMP::Info determine the correct subclass for you.
my $c1900 = new SNMP::Info(
                         AutoSpecify => 1,
                         Debug       => 1,
                         DestHost    => 'myswitch',
                         Community   => 'public',
                         Version     => 1
                       )
   or die "Can't connect to DestHost.\n";

my $class      = $c1900->class();
print "SNMP::Info determined this device to fall under subclass : $class\n";

DESCRIPTION

Provides abstraction to the configuration information obtainable from a Catalyst 1900 device through SNMP. See SNMP::Info for full documentation

Note that most of these devices only talk SNMP version 1, but not all.

Inherited classes

SNMP::Info::CDP
SNMP::Info::CiscoStats
SNMP::Info::CiscoConfig
SNMP::Info::CiscoStpExtensions
SNMP::Info::CiscoAgg
SNMP::Info::Layer2

Required MIBs

STAND-ALONE-ETHERNET-SWITCH-MIB (ESSWITCH-MIB)

ESSWITCH-MIB is included in the Version 1 MIBs from Cisco.

Inherited MIBs

See "Required MIBs" in SNMP::Info::CDP for its MIB requirements.

See "Required MIBs" in SNMP::Info::CiscoStats for its MIB requirements.

See "Required MIBs" in SNMP::Info::CiscoConfig for its MIB requirements.

See "Required MIBs" in SNMP::Info::CiscoStpExtensions for its MIB requirements.

See "Required MIBs" in SNMP::Info::CiscoAgg for its MIB requirements.

See "Required MIBs" in SNMP::Info::Layer2 for its MIB requirements.

GLOBALS

These are methods that return scalar value from SNMP

$c1900->c1900_flash_status()

Usually contains the version of the software loaded in flash. Used by os_ver()

STAND-ALONE-ETHERNET-SWITCH-MIB::upgradeFlashBankStatus

$c1900->os()

Returns 'catalyst'

$c1900->os_ver()

Returns CatOS version if obtainable. First tries to use SNMP::Info::CiscoStats->os_ver() . If that fails then it checks for the presence of $c1900->c1900_flash_status() and culls the version from there.

$c1900->vendor()

Returns 'cisco'

Overrides

$c1900->cisco_comm_indexing()

Returns 1. Use vlan indexing.

$c1900->bulkwalk_no

Return 1. Bulkwalk is turned off for this class.

Globals imported from SNMP::Info::CDP

See "GLOBALS" in SNMP::Info::CDP for details.

Globals imported from SNMP::Info::CiscoStats

See "GLOBALS" in SNMP::Info::CiscoStats for details.

Globals imported from SNMP::Info::CiscoConfig

See "GLOBALS" in SNMP::Info::CiscoConfig for details.

Globals imported from SNMP::Info::CiscoStpExtensions

See "GLOBALS" in SNMP::Info::CiscoStpExtensions for details.

Globals imported from SNMP::Info::Layer2

See "GLOBALS" in SNMP::Info::Layer2 for details.

TABLE METHODS

These are methods that return tables of information in the form of a reference to a hash.

Overrides

$c1900->interfaces()

Returns reference to the map between IID and physical Port.

$c1900->i_duplex()

Returns reference to map of IIDs to current link duplex

$c1900->i_duplex_admin()

Returns reference to hash of IIDs to admin duplex setting

$c1900->i_name()

Crosses ifName with $c1900->c1900_p_name() and returns the human set port name if exists.

$c1900->i_vlan()

Returns a mapping between the interface and the VLAN / bridge group if overlap is not enabled.

$c1900->i_vlan_membership()

Returns reference to hash of arrays: key = interface, value = array of VLAN / bridge group IDs.

Example:
my $interfaces = $c1900->interfaces();
my $vlans      = $c1900->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";
}
$c1900->i_vlan_membership_untagged()

Unsupported, returns nothing.

$c1900->bp_index()

Returns a bp_index that contains the original bp_index entries and extra entries for those interfaces listed in if_index, as some C1900 devices do not return complete bp_indexes.

STAND-ALONE-ETHERNET-SWITCH-MIB Switch Port Table Entries:

$c1900->c1900_p_index()

Maps the Switch Port Table to the IID

swPortIfIndex

$c1900->c1900_p_duplex()

Gives Port Duplex Info

(swPortDuplexStatus)

$c1900->c1900_p_duplex_admin()

Gives admin setting for Duplex Info

(swPortFullDuplex)

$c1900->c1900_p_name()

Gives human set name for port

(swPortName)

$c1900->c1900_p_up_admin()

Gives Admin status of port enabled.

(swPortAdminStatus)

$c1900->c1900_p_type()

Gives Type of port, i.e. "general-ethernet"

(swPortMediaCapability)

$c1900->c1900_p_media()

Gives the media of the port , i.e. "fiber-sc"

(swPortConnectorType)

Table Methods imported from SNMP::Info::CDP

See "TABLE METHODS" in SNMP::Info::CDP for details.

Table Methods imported from SNMP::Info::CiscoStats

See "TABLE METHODS" in SNMP::Info::CiscoStats for details.

Table Methods imported from SNMP::Info::CiscoConfig

See "TABLE METHODS" in SNMP::Info::CiscoConfig for details.

Table Methods imported from SNMP::Info::CiscoStpExtensions

See "TABLE METHODS" in SNMP::Info::CiscoStpExtensions for details.

Table Methods imported from SNMP::Info::CiscoAgg

See "TABLE METHODS" in SNMP::Info::CiscoAgg for details.

Table Methods imported from SNMP::Info::Layer2

See "TABLE METHODS" in SNMP::Info::Layer2 for details.

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.

$c1900->set_i_duplex_admin(duplex, ifIndex)

Sets port duplex, must be supplied with duplex and port ifIndex. Speed choices are 'auto', 'half', 'full'.

Example:
my %if_map = reverse %{$c1900->interfaces()};
$c1900->set_i_duplex_admin('auto', $if_map{'1'})
  or die "Couldn't change port duplex. ",$c1900->error(1);