SNMP::...::BayRS(3pm)

πŸ’– SNMP::...::BayRS(3pm) πŸ’–

okay bestie, welcome to SNMP::Info::Layer3::BayRS β€” it's the SNMP Interface to Avaya/Nortel routers running BayRS. yes that's the whole vibe. it's a Perl module, it's in the SNMP::Info family, and it's here to make your router talk to you nicely 🫢


🌸 AUTHOR 🌸

Eric Miller β€” the icon who wrote this. periodt.


✨ SYNOPSIS ✨

okay so here's the whole "let me connect and see what kind of device this even is" moment:

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

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

like, AutoSpecify => 1 is literally the module doing the work for you. it sniffs around, figures out the subclass, and then class() spills the tea about what it found. if the connection dies it just goes "Can't connect to DestHost.\n" which, honestly, fair. 😭


πŸ¦‹ DESCRIPTION πŸ¦‹

it's an Abstraction subclass for routers running Avaya/Nortel BayRS. that's it, that's the job. it lives on top of the generic stuff so you don't have to hand-parse a million OIDs yourself, iykyk πŸ’…

🌈 Inherited Classes 🌈

  • SNMP::Info::Layer3

πŸŽ€ Required MIBs πŸŽ€

you're gonna need all of these loaded up, no skips:

  • Wellfleet-HARDWARE-MIB
  • Wellfleet-MODULE-MIB
  • Wellfleet-OSPF-MIB
  • Wellfleet-DOT1QTAG-CONFIG-MIB
  • Wellfleet-CSMACD-MIB

πŸ‘‘ Inherited MIBs πŸ‘‘

check out "Required MIBs" in SNMP::Info::Layer3 to see what it needs on top of this. it's got its own whole list, bestie.


⭐ GLOBALS ⭐

these are the methods that hand you back a scalar value straight from SNMP. one value, one answer, no drama.

  • $bayrs->model() β€” gives you the model of the BayRS router πŸŽ€. and get this, it translates between the MIB model and the common model using this exact map:
%MODEL_MAP = (
    'acefn'     => 'FN',
    'aceln'     => 'LN',
    'acecn'     => 'CN',
    'afn'       => 'AFN',
    'in'        => 'IN',
    'an'        => 'AN',
    'arn'       => 'ARN',
    'sys5000'   => '5000',
    'freln'     => 'BLN',
    'frecn'     => 'BCN',
    'frerbln'   => 'BLN-2',
    'asn'       => 'ASN',
    'asnzcable' => 'ASN-Z',
    'asnbcable' => 'ASN-B',
    );
  • $bayrs->vendor() β€” returns 'avaya'. that's it. short king πŸ‘‘
  • $bayrs->os() β€” returns 'bayrs'
  • $bayrs->os_ver() β€” pulls the software version out of "sysDescr" for you
  • $bayrs->serial() β€” returns ("wfHwBpSerialNumber") after converting to ASCII decimal
  • $bayrs->root_ip() β€” returns the primary IP used to talk to the router. it returns the first one it finds: CLIP (CircuitLess IP), then ("wfOspfRouterId"), or undefined if neither shows up. πŸ™ˆ

πŸ’œ Globals imported from SNMP::Info::Layer3 πŸ’œ

peep "GLOBALS" in SNMP::Info::Layer3 for all the details, bestie.


🌸 TABLE METHODS 🌸

these ones return tables</> of info as a reference to a hash. lots of data, one call.

⚠️ heads up, genuinely important: these methods do not support partial table fetches. you can pass a partial and it'll just politely ignore you and return the entire table anyway. no cap. πŸ“

πŸ’… Overrides πŸ’…

  • $bayrs->interfaces() β€” returns a reference to the map between IID and physical Port. the physical port name gets stripped down to letters and numbers to signal port type and slot port (like S11) if the default platform naming was kept. if it wasn't, then guess what, the port is just the interface description. main character energy ✨
  • $bayrs->i_name() β€” returns ("ifDescr"), plus the VLAN name ("wfDot1qTagCfgVlanName") when it's a VLAN interface
  • $bayrs->i_duplex() β€” returns a reference to hash. maps port operational duplexes to IIDs, for Ethernet interfaces
  • $bayrs->i_duplex_admin() β€” returns a reference to hash. maps port admin duplexes to IIDs, for Ethernet interfaces
  • $bayrs->i_vlan() β€” returns a reference to hash. maps port VLAN ID to IIDs
  • $bayrs->i_pvid() β€” returns a reference to hash. maps port VLAN ID to IIDs

🧚 Pseudo ENTITY-MIB information 🧚

these methods emulate ENTITY-MIB Physical Table methods, but they do it using Wellfleet-HARDWARE-MIB and Wellfleet-MODULE-MIB. fake it till you make it honestly. πŸ’–

  • $bayrs->e_index() β€” returns a reference to hash. key and value: Integer. the index is built by smooshing the slot, module and position into a five or six digit integer. slot can be one or two digits, while module and position are each two digits and get padded with a leading zero if they need it. math girlies rise πŸŽ€
  • $bayrs->e_class() β€” returns a reference to hash. Key: IID, Value: general hardware type. the catch? this class only returns container and module types.
  • $bayrs->e_descr() β€” returns a reference to hash. Key: IID, Value: human friendly name 🫢
  • $bayrs->e_name() β€” returns a reference to hash. Key: IID, Value: human friendly name
  • $bayrs->e_hwver() β€” returns a reference to hash. Key: IID, Value: hardware version
  • $bayrs->e_vendor() β€” returns a reference to hash. Key: IID, Value: avaya
  • $bayrs->e_serial() β€” returns a reference to hash. Key: IID, Value: serial number
  • $bayrs->e_pos() β€” returns a reference to hash. Key: IID, Value: the relative position among all entities that share the same parent
  • $bayrs->e_type() β€” returns a reference to hash. Key: IID, Value: the type of component/sub-component β€” defined in Wellfleet-HARDWARE-MIB for processors and link modules, or Wellfleet-MODULE-MIB for hardware modules
  • $bayrs->e_fwver() β€” returns a reference to hash. Key: IID, Value: firmware revision. ⚠️ only available on processors!
  • $bayrs->e_swver() β€” returns a reference to hash. Key: IID, Value: software revision. ⚠️ only available on processors!
  • $bayrs->e_parent() β€” returns a reference to hash. Key: IID, Value: the value of e_index() for the entity that 'contains' this entity. a value of zero means this entity isn't inside any other entity. it's free, it's independent, it's living its best life πŸ¦‹

🌈 Table Methods imported from SNMP::Info::Layer3 🌈

go read "TABLE METHODS" in SNMP::Info::Layer3 for the details, bestie.


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

the little helper girlies ✨

  • $bayrs->munge_hw_rev() β€” converts octets to a decimal major.minor string
  • $bayrs->munge_wf_serial() β€” converts octets to a decimal string

aaaaand that's the whole page bestie πŸ’– this came to you on perl v5.40.1, dated 2026-02-28, straight from the SNMP::...::BayRS(3pm) era of User Contributed Perl Documentation. slay, stay connected, and remember: partial table fetches will never work here. periodt. πŸ‘‘πŸ’…

πŸ“¦ where this page comes from