SNMP::...Extreme(3pm)
π SNMP::Info::Layer3::Extreme π
okay bestie, welcome to SNMP::Info::Layer3::Extreme β your Perl5 interface to Extreme Network Devices π (yes it lives in the SNMP::...Extreme(3pm) manual, that's just how the header was feeling that day)
β¨ NAME β¨
SNMP::Info::Layer3::Extreme β Perl5 Interface to Extreme Network Devices π
π«Ά AUTHOR π«Ά
Eric Miller, Bill Fenner β iconic legends, we stan π
πΈ SYNOPSIS πΈ
okay so, let SNMP::Info figure out the right subclass for you, it's giving helpful:
# Let SNMP::Info determine the correct subclass for you.
my $extreme = new SNMP::Info(
AutoSpecify => 1,
Debug => 1,
DestHost => 'myswitch',
Community => 'public',
Version => 2
)
or die "Can't connect to DestHost.\n";
my $class = $extreme->class();
print "SNMP::Info determined this device to fall under subclass : $class\n";
like, that's it. it just knows. main character energy fr fr β¨
π¦ DESCRIPTION π¦
Provides abstraction to the configuration information obtainable from an Extreme device through SNMP. no cap, that's the whole vibe. π
π Inherited Classes
the girls it inherited its whole personality from:
SNMP::Info::Layer3SNMP::Info::MAUSNMP::Info::EDP
π Required MIBs
these are non-negotiable, you literally cannot sit with us without them:
EXTREME-BASE-MIBEXTREME-SYSTEM-MIBEXTREME-FDB-MIBEXTREME-VLAN-MIBEXTREME-POE-MIBEXTREME-STP-EXTENSIONS-MIB
π Inherited Classes' MIBs
See classes listed above for their required MIBs. yep, go check them, i'm not doing that homework for you bestie π
π GLOBALS π
These are methods that return scalar value from SNMP β lil single-value girlypops π
$extreme->model()β Returns model type. Checks$extreme->id()against theEXTREME-BASE-MIB.$extreme->vendor()β Returns"extreme"$extreme->os()β Returns"xos"or"extremeware"depending ondescription()$extreme->os_ver()β Parses device operating system version fromdescription()$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. (go read it, i believe in you π«Ά)
π« Globals imported from SNMP::Info::MAU
See documentation in "GLOBALS" in SNMP::Info::MAU 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. tables!! the whole squad, all at once π
π Overrides
$extreme->interfaces()β Returns a mapping between the Interface Table Index (iid) and the physical port name.$extreme->i_duplex()β Parsesmau_indexandmau_linkto 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 thanifIndex. (not like other girls π )$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")
bestie not gonna lie,stp_i_time()really said "i contain multitudes" and showed up three times π andstp_i_priority()is wearingstp_i_root_port()'s outfit. that's literally what the page says though, so i'm reporting it exactly as found. no editing the lore. π
π 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::EDP
See documentation in "TABLE METHODS" in SNMP::Info::EDP for details. (yes bestie, everything is imported, that's the whole point of inheritance β¨)
β 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.
ok so this is the part where you're actually CHANGING things on the device. live wires, bestie. be careful, be deliberate, and read the error checks. π
$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
the lil glow-up artists that clean up ugly strings before you see them:
$extreme->munge_power_stat()β Removespresentand changesnottoNotin the front of a string.$extreme->munge_true_ok()β Replacestruewith"OK"andfalsewith"Not OK".
and that's the whole page bestie!! πβ¨π¦πΈπ π«Ά
one last thing before you go β this gorgeous lil document came to you courtesy of perl v5.40.1, dated 2026-02-28, and it lives under the name SNMP::...Extreme(3pm) (yes it's still called that, no we're not renaming her, she's iconic π). mwah, go configure some switches responsibly. π
π¦ where this page comes from
- ubuntu stonking: libsnmp-info-perl 3.975000-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms