---
name: "SNMP::Info::Layer3::Extreme"
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::Layer3::Extreme"
---

# SNMP::Info::Layer3::Extreme(3pm)

Perl5 Interface to Extreme Network Devices

## NAME

SNMP::Info::Layer3::Extreme - Perl5 Interface to Extreme Network Devices

## AUTHOR

Eric Miller, Bill Fenner

## SYNOPSIS

```
 # Let SNMP::Info determine the correct subclass for you.
 my $extreme = new SNMP::Info(
                          AutoSpecify => 1,
                          Debug       => 1,
                          DestHost    => 'myswitch',
                          Community   => 'public',
                          Version     => 2
                        )
    or die "Can't connect to DestHost.\n";
 my $class      = $extreme->class();
 print "SNMP::Info determined this device to fall under subclass : $class\n";
```

## DESCRIPTION

Provides abstraction to the configuration information obtainable from an Extreme device through SNMP.

### Inherited Classes

- SNMP::Info::Layer3

  - SNMP::Info::MAU

  - SNMP::Info::EDP

  ### Required MIBs

- *EXTREME-BASE-MIB*

  - *EXTREME-SYSTEM-MIB*

  - *EXTREME-FDB-MIB*

  - *EXTREME-VLAN-MIB*

  - *EXTREME-POE-MIB*

  - *EXTREME-STP-EXTENSIONS-MIB*

  - Inherited Classes' MIBs

  See classes listed above for their required MIBs.

## GLOBALS

These are methods that return scalar value from SNMP

- $extreme-\>**model()**

  Returns model type.  Checks `$extreme`-\>**id()** against the *EXTREME-BASE-MIB*.

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

  Returns `"extreme"`

- $extreme-\>**os()**

  Returns `"xos"` or `"extremeware"` depending on **description()**

- $extreme-\>**os\_ver()**

  Parses device operating system version from **description()**

- $extreme-\>**serial()**

  Returns serial number

  (`"extremeSystemID"`)

- $extreme-\>**temp()**

  Returns system temperature

  (`"extremeCurrentTemperature"`)

- $extreme-\>**ps1\_status()**

  Returns status of power supply 1

  (`"extremePowerSupplyStatus.1"`)

- $extreme-\>**ps2\_status()**

  Returns status of power supply 2

  (`"extremePowerSupplyStatus.2"`)

- $extreme-\>**fan()**

  Returns fan status

  (`"extremeFanOperational.1"`)

- $extreme-\>**mac()**

  Returns base mac

  (`"dot1dBaseBridgeAddress"`)

### Globals imported from SNMP::Info::Layer3

See documentation in "GLOBALS" in SNMP::Info::Layer3 for details.

### Globals imported from SNMP::Info::MAU

See documentation in "GLOBALS" in SNMP::Info::MAU for details.

### Globals imported from SNMP::Info::EDP

See documentation in "GLOBALS" in SNMP::Info::EDP for details.

## TABLE METHODS

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

### Overrides

- $extreme-\>**interfaces()**

  Returns a mapping between the Interface Table Index (iid) and the physical port name.

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

  Parses mau\_index and mau\_link to return the duplex information for interfaces.

- $extreme-\>**i\_duplex\_admin()**

  Parses `"mac_index"`,`"mau_autostat"`,`"mau_type_admin"` in order to find the admin duplex setting for all the interfaces.

  Returns either (auto,full,half).

- $extreme-\>**i\_ignore()**

  Returns reference to hash.  Increments value of IID if port is to be ignored.

  Ignores VLAN meta interfaces and loopback

- $extreme-\>**fw\_mac()**

  (`"extremeFdbMacFdbMacAddress"`)

- $extreme-\>**fw\_port()**

  (`"extremeFdbMacFdbPortIfIndex"`)

- $extreme-\>**fw\_status()**

  (`"extremeFdbMacFdbStatus"`)

- $extreme-\>**lldp\_if()**

  Returns the mapping to the SNMP Interface Table. Extreme LLDP uses the bridge index rather than ifIndex.

- $extreme-\>**i\_vlan()**

  Returns a mapping between `"ifIndex"` and the VLAN.

- $extreme-\>**i\_vlan\_membership()**

  Returns reference to hash of arrays: key = `"ifIndex"`, value = array of VLAN IDs.  These are the VLANs which are members of the egress list for the port.

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

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

- $extreme-\>**v\_index()**

  Returns VLAN IDs

- $extreme-\>**v\_name()**

  Returns VLAN names

  (`"extremeVlanIfDescr"`)

- $extreme-\>**bp\_index()**

  Returns reference to hash of bridge port table entries map back to interface identifier (iid)

  Returns (`"ifIndex"`) for both key and value since we're using *EXTREME-FDB-MIB* rather than *BRIDGE-MIB*.

- $extreme-\>**peth\_port\_power()**

  Power supplied by PoE ports, in milliwatts

  (`"extremePethPortMeasuredPower"`)

- $extreme-\>**peth\_power\_watts()**

  The configured maximum amount of in-line power available to the slot.

  (`"extremePethSlotPowerLimit"`)

### Spanning Tree Instance Globals

- $extreme-\>**stp\_i\_mac()**

  Returns the MAC extracted from (`"extremeStpDomainBridgeId"`).

- $extreme-\>**stp\_i\_id()**

  Returns the unique identifier of the STP domain.

  (`"extremeStpDomainStpdInstance"`)

- $extreme-\>**stp\_i\_time()**

  Returns time since last topology change detected. (100ths/second)

  (`"extremeStpDomainTimeSinceTopologyChange"`)

- $extreme-\>**stp\_i\_time()**

  Returns time since last topology change detected. (100ths/second)

  (`"extremeStpDomainTimeSinceTopologyChange"`)

- $extreme-\>**stp\_i\_time()**

  Returns the total number of topology changes detected.

  (`"extremeStpDomainTopChanges"`)

- $extreme-\>**stp\_i\_root()**

  Returns root of STP.

  (`"extremeStpDomainDesignatedRoot"`)

- $extreme-\>**stp\_i\_root\_port()**

  Returns the port number of the port that offers the lowest cost path to the root bridge.

  (`"extremeStpDomainRootPortIfIndex"`)

- $extreme-\>**stp\_i\_priority()**

  Returns the port number of the port that offers the lowest cost path to the root bridge.

  (`"extremeStpDomainBridgePriority"`)

### Spanning Tree Protocol Port Table

- $extreme-\>**stp\_p\_id()**

  (`"extremeStpPortPortIfIndex"`)

- $extreme-\>**stp\_p\_stg\_id()**

  (`"extremeStpDomainStpdInstance"`)

- $extreme-\>**stp\_p\_priority()**

  (`"extremeStpPortPortPriority"`)

- $extreme-\>**stp\_p\_state()**

  (`"extremeStpPortPortState"`)

- $extreme-\>**stp\_p\_cost()**

  (`"extremeStpPortPathCost"`)

- $extreme-\>**stp\_p\_root()**

  (`"extremeStpPortDesignatedRoot"`)

- $extreme-\>**stp\_p\_bridge()**

  (`"extremeStpPortDesignatedBridge"`)

- $extreme-\>**stp\_p\_port()**

  (`"extremeStpPortDesignatedPort"`)

### Table Methods imported from SNMP::Info::Layer3

See documentation in "TABLE METHODS" in SNMP::Info::Layer3 for details.

### Table Methods imported from SNMP::Info::MAU

See documentation in "TABLE METHODS" in SNMP::Info::MAU for details.

### Table Methods imported from SNMP::Info::EDP

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

- $extreme-\>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 %{$extreme->interfaces()};
    $extreme->set_i_vlan('2', $if_map{'FastEthernet0/1'})
      or die "Couldn't change port VLAN. ",$extreme->error(1);
  ```

- $extreme-\>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 %{$extreme->interfaces()};
    $extreme->set_i_pvid('2', $if_map{'FastEthernet0/1'})
      or die "Couldn't change port default VLAN. ",$extreme->error(1);
  ```

- $extreme-\>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 %{$extreme->interfaces()};
    $extreme->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
      or die "Couldn't add port to egress list. ",$extreme->error(1);
  ```

- $extreme-\>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 %{$extreme->interfaces()};
    $extreme->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
      or die "Couldn't add port to egress list. ",$extreme->error(1);
  ```

## Data Munging Callback Subroutines

- $extreme-\>**munge\_power\_stat()**

  Removes 'present' and changes 'not' to 'Not' in the front of a string.

- $extreme-\>**munge\_true\_ok()**

  Replaces 'true' with "OK" and 'false' with "Not OK".
