SNMP::Info::Layer3::Extreme - Perl5 Interface to Extreme Network Devices
Eric Miller, Bill Fenner
# 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";
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(...);
See classes listed above for their required MIBs.
These are methods that return scalar value from SNMP
model()
Returns model type. Checks $extreme->id() against the EXTREME-BASE-MIB.
vendor()
Returns extreme
os()
Returns extreme
os_ver()
Parses device operating system version from description()
serial()
Returns serial number
(extremeSystemID)
temp()
Returns system temperature
(extremeCurrentTemperature)
ps1_status()
Returns status of power supply 1
(extremePowerSupplyStatus.1)
ps2_status()
Returns status of power supply 2
(extremePowerSupplyStatus.2)
fan()
Returns fan status
(extremeFanOperational.1)
mac()
Returns base mac
(dot1dBaseBridgeAddress)
See documentation in GLOBALS in the SNMP::Info::Layer3 manpage for details.
See documentation in GLOBALS in the SNMP::Info::MAU manpage for details.
These are methods that return tables of information in the form of a reference to a hash.
interfaces()
Returns a mapping between the Interface Table Index (iid) and the physical port name.
i_duplex()
Parses mau_index and mau_link to return the duplex information for interfaces.
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).
i_ignore()
Returns reference to hash. Increments value of IID if port is to be ignored.
Ignores VLAN meta interfaces and loopback
fw_mac()
(extremeFdbMacFdbMacAddress)
fw_port()
(extremeFdbMacFdbPortIfIndex)
fw_status()
(extremeFdbMacFdbStatus)
i_vlan()
Returns a mapping between ifIndex and the VLAN.
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";
}
v_index()
Returns VLAN IDs
v_name()
Returns VLAN names
(extremeVlanIfDescr)
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.
See documentation in TABLE METHODS in the SNMP::Info::Layer3 manpage for details.
See documentation in TABLE METHODS in the SNMP::Info::MAU manpage for details.
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 the SNMP::Info manpage for general information on set operations.
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);
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);
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);
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);
munge_power_stat()
Removes 'present' and changes 'not' to 'Not' in the front of a string.
munge_true_ok()
Replaces 'true' with ``OK'' and 'false' with ``Not OK''.