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