SNMP::Info::Layer3::Extreme(3) 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''.