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

Required MIBs

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

Overrides

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.

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->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->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.

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.

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".