SNMP::...elStack(3pm)

πŸ’– SNMP::Info::NortelStack πŸ’–

okay so bestie, you've wandered into SNMP::Info::NortelStack(3pm) and honestly? iconic of you. this is the ✨ SNMP Interface to the Avaya/Nortel S5-AGENT-MIB and S5-CHASSIS-MIB ✨ β€” yes, the whole thing, and we're gonna get through it together. no skipping. grab a strawberry πŸ“.


πŸ‘‘ AUTHOR πŸ‘‘

Eric Miller wrote this one. say thank you πŸ’…


✨ SYNOPSIS ✨

okay so here's the whole vibe, copy it exactly, don't freestyle:

# Let SNMP::Info determine the correct subclass for you.
my $stack = new SNMP::Info(
                   AutoSpecify => 1,
                   Debug       => 1,
                   # These arguments are passed directly on to SNMP::Session
                   DestHost    => 'myswitch',
                   Community   => 'public',
                   Version     => 2
                   )
   or die "Can't connect to DestHost.\n";

my $class = $stack->class();
print "SNMP::Info determined this device to fall under subclass : $class\n";

like. she really said "let me figure out my own subclass, you just vibe" and slayed πŸ’… the AutoSpecify => 1 does the whole personality quiz for you, the DestHost / Community / Version bits get handed straight on over to SNMP::Session, and if she can't connect she literally <red>die</red>s on you (Can't connect to DestHost.\n). then you print the subclass she picked and feel sooo validated.


πŸ¦‹ DESCRIPTION πŸ¦‹

so SNMP::Info::NortelStack is a subclass of SNMP::Info that provides an interface to S5-AGENT-MIB and S5-CHASSIS-MIB. these MIBs are used across the Avaya/Nortel Stackable Ethernet Switches (BayStack), and also on older Nortel devices like the Centillion family of ATM switches. yes, old money equipment, still got lore πŸŽ€

the one rule, bestie: "Use or create in a subclass of SNMP::Info. Do not use directly." β€” she is NOT for direct consumption, she's a base to build on. periodt.

🌸 Inherited Classes 🌸

None. she's a whole self-made queen, no inheritance drama πŸ’€

🌈 Required MIBs 🌈

  • S5-AGENT-MIB
  • S5-CHASSIS-MIB

also S5-ROOT-MIB and S5-TCS-MIB are required by the other MIBs β€” like the MIBs' MIBs, the support system of the support system 🫢


πŸ’œ GLOBALS πŸ’œ

these are the methods that return scalar values from SNMP. little single-value besties. one thing each. lowkey minimalist πŸ’…

  • $stack->os_ver() β€” returns the software version, extracted from ("s5AgInfoVer")
  • $stack->os_bin() β€” returns the firmware version, extracted from ("s5AgInfoVer") β€” yeah, same source MIB object, she's just pulling a different interpretation out of it, multi-talented fr fr
  • $stack->serial() β€” returns serial number of the chassis ("s5ChasSerNum")
  • $stack->ns_ag_ver() β€” returns the version of the agent in the form 'major.minor.maintenance[letters]' ("s5AgInfoVer") ✨
  • $stack->ns_op_mode() β€” returns the stacking mode ("s5AgSysCurrentOperationalMode")
  • $stack->tftp_action() β€” this object is used to download or upload a config file or an image file ("s5AgInfoFileAction")
  • $stack->tftp_result() β€” returns the status of the latest action as shown by $stack->tftp_action() ("s5AgInfoFileStatus")
  • $stack->ns_auto_pvid() β€” returns the value indicating whether adding a port as a member of a VLAN automatically results in its PVID being set to be the same as that VLAN ID ("s5AgSysAutoPvid")
  • $stack->tftp_file() β€” name of the binary configuration file that will be downloaded/uploaded when the $stack->tftp_action() object is set ("s5AgSysBinaryConfigFilename")
  • $stack->tftp_host() β€” the IP address of the TFTP server for all TFTP operations ("s5AgSysTftpServerAddress")
  • $stack->vlan() β€” returns the VLAN ID of the system's management VLAN ("s5AgSysManagementVlanId")
  • $stack->ch_ser() β€” returns the serial number of the chassis ("s5ChasSerNum") β€” yes, she has a second way to get a serial number, she's thorough like that πŸ™ˆ
  • $stack->ns_cfg_chg() β€” returns the total number of configuration changes (other than attachment changes, or physical additions or removals) in the chassis that have been detected since cold/warm start ("s5ChasGblConfChngs")
  • $stack->ns_cfg_time() β€” returns the value of "sysUpTime" when the last configuration change (other than attachment changes, or physical additions or removals) in the chassis was detected ("s5ChasGblConfLstChng")

πŸŽ€ TABLE METHODS πŸŽ€

these are the methods that return tables of information in the form of a reference to a hash. key/value girlies. hash refs are their love language πŸ’–

🌟 Agent Interface Table ("s5AgMyIfTable") 🌟

  • $stack->i_cfg_file() β€” returns reference to hash. Key: Table entry, Value: Name of the file ("s5AgMyIfCfgFname")
  • $stack->i_cfg_host() β€” returns reference to hash. Key: Table entry, Value: IP address of the load server ("s5AgMyIfLdSvrAddr")

🌟 Chassis Components Table ("s5ChasComTable") 🌟

  • $stack->ns_com_grp_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the chassis level group which contains this component ("s5ChasComGrpIndx")
  • $stack->ns_com_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the component in the group. For modules in the 'board' group, this is the slot number ("s5ChasComIndx")
  • $stack->ns_com_sub_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the sub-component in the component ("s5ChasComSubIndx")
  • $stack->ns_com_type() β€” returns reference to hash. Key: Table entry, Value: Type ("s5ChasComType")
  • $stack->ns_com_descr() β€” returns reference to hash. Key: Table entry, Value: Description ("s5ChasComDescr")
  • $stack->ns_com_ver() β€” returns reference to hash. Key: Table entry, Value: Version ("s5ChasComVer")
  • $stack->ns_com_serial() β€” returns reference to hash. Key: Table entry, Value: Serial Number ("s5ChasComSerNum")

🌟 Storage Area Table ("s5ChasStoreTable") 🌟

  • $stack->ns_store_grp_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the chassis level group ("s5ChasStoreGrpIndx")
  • $stack->ns_store_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the group ("s5ChasStoreComIndx")
  • $stack->ns_store_sub_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the sub-component ("s5ChasStoreSubIndx")
  • $stack->ns_store_idx() β€” returns reference to hash. Key: Table entry, Value: Index of the storage area ("s5ChasStoreIndx") β€” okay ngl, yes, ns_store_idx shows up twice in here, pointed at two different MIB objects. that's just how the page lists it, so that's how we're listing it. not me editing the source πŸ’€
  • $stack->ns_store_type() β€” returns reference to hash. Key: Table entry, Value: Type ("s5ChasStoreType")
  • $stack->ns_store_size() β€” returns reference to hash. Key: Table entry, Value: Size ("s5ChasStoreCurSize")
  • $stack->ns_store_ver() β€” returns reference to hash. Key: Table entry, Value: Version ("s5ChasStoreCntntVer")

🧚 Pseudo ENTITY-MIB information 🧚

these methods emulate ENTITY-MIB Physical Table methods using S5-CHASSIS-MIB. cosplay but make it accurate πŸ’…

  • $stack->ns_e_index() β€” returns reference to hash. Key: IID, Value: Integer, Indices are combined into a six digit integer, each index is two digits padded with leading zero if required
  • $stack->ns_e_class() β€” returns reference to hash. Key: IID, Value: General hardware type ("s5ChasGrpDescr"). Group is stripped from the string. Values may be Supervisory Module, Back Plane, Board, Power Supply, Sensor, Fan, Clock, Unit
  • $stack->ns_e_descr() β€” returns reference to hash. Key: IID, Value: Human friendly name ("s5ChasComDescr")
  • $stack->ns_e_name() β€” returns reference to hash. Key: IID, Value: Human friendly name
  • $stack->ns_e_hwver() β€” returns reference to hash. Key: IID, Value: Hardware version ("s5ChasComVer")
  • $stack->ns_e_vendor() β€” returns reference to hash. Key: IID, Value: avaya
  • $stack->ns_e_serial() β€” returns reference to hash. Key: IID, Value: Serial number ("s5ChasComSerNum")
  • $stack->ns_e_pos() β€” returns reference to hash. Key: IID, Value: The relative position among all entities sharing the same parent ("s5ChasComSubIndx")
  • $stack->ns_e_type() β€” returns reference to hash. Key: IID, Value: Type of component/sub-component as defined under "s5ChasComTypeVal" in S5-REG-MIB
  • $stack->ns_e_fwver() β€” returns reference to hash. Key: IID, Value: Firmware revision. Value of "s5ChasStoreCntntVer" for entries with rom, boot, or firmware in "s5ChasStoreType"
  • $stack->ns_e_swver() β€” returns reference to hash. Key: IID, Value: Software revision. Value of "s5ChasStoreCntntVer" for entries with "flash" in "s5ChasStoreType"
  • $stack->ns_e_parent() β€” returns reference to hash. Key: IID, Value: The value of ns_e_index() for the entity which 'contains' this entity. A value of zero indicates this entity is not contained in any other entity

πŸ“ Data Munging Callback Subroutines πŸ“

  • $stack->munge_ns_grp_type() β€” munges "s5ChasGrpType" into an "ENTITY-MIB PhysicalClass" equivalent. munging is just translating for the girlies who only speak ENTITY-MIB, we love a bilingual queen 🌈

okay that's literally the whole page, every flag, every method, every MIB object name, all of it, and you ate every bite πŸ’…

she's from perl v5.40.1, dated 2026-02-28, and filed under SNMP::...elStack(3pm) in the User Contributed Perl Documentation directory β€” go forth and subclass, bestie, but remember: do not use directly. mwah 🫢✨

πŸ“¦ where this page comes from