---
name: "SNMP::Info::Layer2::C2900"
section: "3pm"
platform: "linux"
package: "libsnmp-info-perl"
version: "3.972002-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SNMP::Info::Layer2::C2900"
---

# SNMP::Info::Layer2::C2900(3pm)

SNMP Interface to Cisco Catalyst 2900 Switches running IOS

## NAME

SNMP::Info::Layer2::C2900 - SNMP Interface to Cisco Catalyst 2900 Switches running IOS

## AUTHOR

Max Baker

## SYNOPSIS

```
 # 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";
```

## DESCRIPTION

Provides abstraction to the configuration information obtainable from a C2900 device through SNMP.

### Inherited Classes

- SNMP::Info::Layer2::Cisco

  ### Required MIBs

- *CISCO-C2900-MIB*

  Part of the v2 MIBs from Cisco.

### Inherited MIBs

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

## GLOBALS

These are methods that return scalar value from SNMP

### Overrides

- $c2900-\>**vendor()**

  Returns 'cisco'

- $c2900-\>**cisco\_comm\_indexing()**

  Returns 1.  Use vlan indexing.

### Globals imported from SNMP::Info::Layer2::Cisco

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

## TABLE METHODS

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

### Overrides

- $c2900-\>**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.

- $c2900-\>**i\_duplex()**

  Returns reference to map of IIDs to current link duplex

  Crosses `$c2900`-\>**c2900\_p\_index()** with `$c2900`-\>**c2900\_p\_duplex()**

- $c2900-\>**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-\>**i\_speed\_admin()**

  Returns reference to hash of IIDs to admin speed setting.

### *C2900-MIB* Port Entry Table

- $c2900-\>**c2900\_p\_index()**

  Maps the Switch Port Table to the IID

  (`"c2900PortIfIndex"`)

- $c2900-\>**c2900\_p\_duplex()**

  Gives Port Duplex Info

  (`"c2900PortDuplexStatus"`)

- $c2900-\>**c2900\_p\_duplex\_admin()**

  Gives admin setting for Duplex Info

  (`"c2900PortDuplexState"`)

- $c2900-\>**c2900\_p\_speed\_admin()**

  Gives Admin speed of port

  (`"c2900PortAdminSpeed"`)

### Table Methods imported from SNMP::Info::Layer2::Cisco

See "TABLE METHODS" in SNMP::Info::Layer2::Cisco 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.

- $c2900-\>set\_i\_speed\_admin(speed, ifIndex)

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

- $c2900-\>set\_i\_duplex\_admin(duplex, ifIndex)

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