The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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     => 1
                        ) 
    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.

For speed or debugging purposes you can call the subclass directly, but not after determining a more specific class using the method above.

my $extreme = new SNMP::Info::Layer3::Extreme(...);

Inherited Classes

SNMP::Info::Layer3
SNMP::Info::MAU
SNMP::Info::LLDP
SNMP::Info::EDP

Required MIBs

EXTREME-BASE-MIB
EXTREME-SYSTEM-MIB
EXTREME-FDB-MIB
EXTREME-VLAN-MIB
EXTREME-POE-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 extreme

$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::LLDP

See documentation in "GLOBALS" in SNMP::Info::LLDP 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::LLDP

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