Provided by: libsnmp-info-perl_3.39-1_all bug

NAME

       SNMP::Info::CiscoStack - SNMP Interface to data from CISCO-STACK-MIB and
       CISCO-PORT-SECURITY-MIB

AUTHOR

       Max Baker

SYNOPSIS

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

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

DESCRIPTION

       SNMP::Info::CiscoStack is a subclass of SNMP::Info that provides an interface to the
       "CISCO-STACK-MIB".  This MIB is used across the Catalyst family under CatOS and IOS.

       Use or create in a subclass of SNMP::Info.  Do not use directly.

   Inherited Classes
       none.

   Required MIBs
       CISCO-STACK-MIB

GLOBALS

       $stack->broadcast()
           ("sysBroadcast")

       $stack->fan()
           ("chassisFanStatus")

       $stack->model()
           ("chassisModel")

       $stack->netmask()
           ("sysNetMask")

       $stack->ps1_type()
           ("chassisPs1Type")

       $stack->ps2_type()
           ("chassisPs2Type")

       $stack->ps1_status()
           ("chassisPs1Status")

       $stack->ps2_status()
           ("chassisPs2Status")

       $stack->serial()
           ("chassisSerialNumberString") or ("chassisSerialNumber")

       $stack->slots()
           ("chassisNumSlots")

TABLE METHODS

   Interface Tables
       $stack->i_physical()
           Returns a map to IID for ports that are physical ports, not vlans, etc.

       $stack->i_type()
           Crosses p_port() with p_type() and returns the results.

           Overrides with "ifType" if p_type() isn't available.

       $stack->i_duplex()
           Returns reference to hash of iid to current link duplex setting.

           First checks for fixed gigabit ports which are always full duplex.  Next, if the port
           is not operational and reported port duplex ("portDuplex") is auto then the
           operational duplex can not be determined.  Otherwise it uses the reported port duplex
           ("portDuplex").

       $stack->i_duplex_admin()
           Returns reference to hash of iid to administrative duplex setting.

           First checks for fixed gigabit ports which are always full duplex. Next checks the
           port administrative speed ("portAdminSpeed") which if set to autonegotiate then the
           duplex will also autonegotiate, otherwise it uses the reported port duplex
           ("portDuplex").

       $stack->i_speed_admin()
           Returns reference to hash of iid to administrative speed setting.

           "portAdminSpeed"

       $stack->set_i_speed_admin(speed, ifIndex)
               Sets port speed, must be supplied with speed and port C<ifIndex>

               Speed choices are 'auto', '10', '100', '1000'

               Crosses $stack->p_port() with $stack->p_duplex() to
               utilize port C<ifIndex>.

               Example:
               my %if_map = reverse %{$stack->interfaces()};
               $stack->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
                   or die "Couldn't change port speed. ",$stack->error(1);

       $stack->set_i_duplex_admin(duplex, ifIndex)
               Sets port duplex, must be supplied with duplex and port C<ifIndex>

               Speed choices are 'auto', 'half', 'full'

               Crosses $stack->p_port() with $stack->p_duplex() to
               utilize port C<ifIndex>.

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

   Module table
       This table holds configuration information for each of the blades installed in the
       Catalyst device.

       $stack->m_type()
           ("moduleType")

       $stack->m_model()
           ("moduleModel")

       $stack->m_serial()
           ("moduleSerialNumber")

       $stack->m_status()
           ("moduleStatus")

       $stack->m_name()
           ("moduleName")

       $stack->m_ports()
           ("moduleNumPorts")

       $stack->m_ports_status()
           Returns a list of space separated status strings for the ports.

           To see the status of port 4 :

               @ports_status = split(' ', $stack->m_ports_status() );
               $port4 = $ports_status[3];

           ("modulePortStatus")

       $stack->m_ports_hwver()
           ("moduleHwVersion")

       $stack->m_ports_fwver()
           ("moduleFwVersion")

       $stack->m_ports_swver()
           ("moduleSwVersion")

       $stack->m_ports_ip()
           ("moduleIPAddress")

       $stack->m_ports_sub1()
           ("moduleSubType")

       $stack->m_ports_sub2()
           ("moduleSubType2")

   Modules - Router Blades
       $stack->m_ip()
           ("moduleIPAddress")

       $stack->m_sub1()
           ("moduleSubType")

       $stack->m_sub2()
           ("moduleSubType2")

   Port Entry Table ("CISCO-STACK-MIB::portTable")
       $stack->p_name()
           ("portName")

       $stack->p_type()
           ("portType")

       $stack->p_status()
           ("portOperStatus")

       $stack->p_status2()
           ("portAdditionalStatus")

       $stack->p_speed()
           ("portAdminSpeed")

       $stack->p_duplex()
           ("portDuplex")

       $stack->p_port()
           ("portIfIndex")

       $stack->p_rx_flow_control()
           Can be either "on" "off" or "disagree"

           "Indicates the receive flow control operational status of the port. If the port could
           not agree with the far end on a link protocol, its operational status will be
           disagree(3)."

           "portOperRxFlowControl"

       $stack->p_tx_flow_control()
           Can be either "on" "off" or "disagree"

           "Indicates the transmit flow control operational status of the port. If the port could
           not agree with the far end on a link protocol, its operational status will be
           disagree(3)."

           "portOperTxFlowControl"

       $stack->p_rx_flow_control_admin()
           Can be either "on" "off" or "desired"

           "Indicates the receive flow control administrative status set on the port. If the
           status is set to on(1), the port will require the far end to send flow control. If the
           status is set to off(2), the port will not allow far end to send flow control.  If the
           status is set to desired(3), the port will allow the far end to send the flow
           control."

           "portAdminRxFlowControl"

       $stack->p_tx_flow_control_admin()
           Can be either "on" "off" or "desired"

           "Indicates the transmit flow control administrative status set on the port.  If the
           status is set to on(1), the port will send flow control to the far end.  If the status
           is set to off(2), the port will not send flow control to the far end. If the status is
           set to desired(3), the port will send flow control to the far end if the far end
           supports it."

           "portAdminTxFlowControl"

   Port Capability Table ("CISCO-STACK-MIB::portCpbTable")
       $stack->p_speed_admin()
           ("portCpbSpeed")

       $stack->p_duplex_admin()
           ("portCpbDuplex")

Data Munging Callback Subroutines

       $stack->munge_port_status()
           Munges binary byte describing each port into ascii, and returns an ascii list
           separated by spaces.