SNMP::Info::Layer2::C2900 - SNMP Interface to Cisco Catalyst 2900 Switches running IOS
Max Baker
# Let SNMP::Info determine the correct subclass for you. my $c2900 = new SNMP::Info( AutoSpecify => 1, Debug => 1, # These arguments are passed directly to SNMP::Session DestHost => 'myswitch', Community => 'public', Version => 2 ) or die "Can't connect to DestHost.\n";
my $class = $c2900->class(); print "SNMP::Info determined this device to fall under subclass : $class\n";
Provides abstraction to the configuration information obtainable from a C2900 device through SNMP.
For speed or debugging purposes you can call the subclass directly, but not after determining a more specific class using the method above.
my $c2900 = new SNMP::Info::Layer2::C2900(...);
Part of the v2 MIBs from Cisco.
See Required MIBs in the SNMP::Info::CiscoVTP manpage for its MIB requirements.
See Required MIBs in the SNMP::Info::CDP manpage for its MIB requirements.
See Required MIBs in the SNMP::Info::CiscoStats manpage for its MIB requirements.
See Required MIBs in the SNMP::Info::CiscoConfig manpage for its MIB requirements.
See Required MIBs in the SNMP::Info::Layer2 manpage for its MIB requirements.
These are methods that return scalar value from SNMP
vendor()
Returns 'cisco' :)
cisco_comm_indexing()
Returns 1. Use vlan indexing.
See GLOBALS in the SNMP::Info::CiscoVTP manpage for details.
See GLOBALS in the SNMP::Info::CDP manpage for details.
See GLOBALS in the SNMP::Info::CiscoStats manpage for details.
See GLOBALS in the SNMP::Info::CiscoConfig manpage for details.
See GLOBALS in the SNMP::Info::Layer2 manpage for details.
These are methods that return tables of information in the form of a reference to a hash.
interfaces()
Returns reference to the map between IID and physical Port.
On the 2900 devices i_name isn't reliable, so we override to just the description.
Next all dots are changed for forward slashes so that the physical port name is the same as the broad-casted CDP port name. (Ethernet0.1 -> Ethernet0/1)
Also, any weird characters are removed, as I saw a few pop up.
i_duplex()
Returns reference to map of IIDs to current link duplex
Crosses $c2900->c2900_p_index()
with $c2900->c2900_p_duplex()
i_duplex_admin()
Returns reference to hash of IIDs to admin duplex setting
Crosses $c2900->c2900_p_index()
with $c2900->c2900_p_duplex_admin()
c2900_p_index()
Maps the Switch Port Table to the IID
(c2900PortIfIndex
)
c2900_p_duplex()
Gives Port Duplex Info
(c2900PortDuplexStatus
)
c2900_p_duplex_admin()
Gives admin setting for Duplex Info
(c2900PortDuplexState
)
c2900_p_speed_admin()
Gives Admin speed of port
(c2900PortAdminSpeed
)
See TABLE METHODS in the SNMP::Info::CiscoVTP manpage for details.
See TABLE METHODS in the SNMP::Info::CDP manpage for details.
See TABLE METHODS in the SNMP::Info::CiscoStats manpage for details.
See TABLE METHODS in the SNMP::Info::CiscoConfig manpage for details.
See TABLE METHODS in the SNMP::Info::Layer2 manpage for details.
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 the SNMP::Info manpage for general information on set operations.
Sets port speed, must be supplied with speed and port ifIndex
Speed choices are 'auto', '10', '100'
Crosses $c2900->c2900_p_index()
with $c2900->c2900_p_speed_admin()
to utilize
port ifIndex
.
Example: my %if_map = reverse %{$c2900->interfaces()}; $c2900->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'}) or die "Couldn't change port speed. ",$c2900->error(1);
Sets port duplex, must be supplied with duplex and port ifIndex
Speed choices are 'auto', 'half', 'full'
Crosses $c2900->c2900_p_index()
with $c2900->c2900_p_duplex_admin()
to utilize
port ifIndex
.
Example: my %if_map = reverse %{$c2900->interfaces()}; $c2900->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'}) or die "Couldn't change port duplex. ",$c2900->error(1);