SNMP::...::S3000(3pm)
๐ SNMP::Info::Layer1::S3000 ๐
okay bestie, gather round, because this is the manual page for SNMP::Info::Layer1::S3000 โ the Perl module that talks SNMP to Synoptics / Nortel Hubs. yes, hubs. the little blinkenlights boxes. she's vintage, she's iconic, and she has opinions about duplex. ๐
โจ NAME โจ
SNMP::Info::Layer1::S3000 โ SNMP Interface to Synoptics / Nortel Hubs ๐ซถ
๐ AUTHOR ๐
Eric Miller
like, the whole thing. one person. main character energy fr fr. ๐
๐ SYNOPSIS ๐
#Let SNMP::Info determine the correct subclass for you.
my $s3000 = new SNMP::Info(
AutoSpecify => 1,
Debug => 1,
DestHost => 'myswitch',
Community => 'public',
Version => 2
)
or die "Can't connect to DestHost.\n";
my $class = $s3000->class();
print "SNMP::Info determined this device to fall under subclass : $class\n";
so the whole vibe here is that you don't hardcode the subclass yourself. you let SNMP::Info do the detective work โ set AutoSpecify => 1 and she'll sniff out which device class you're actually talking to and hand it back to you from $s3000->class(). lowkey genius, no cap. โจ
also note the or die "Can't connect to DestHost.\n"; โ if the connection doesn't happen, you die. as you should. ๐ญ
๐ฆ DESCRIPTION ๐ฆ
Provides abstraction to the configuration information obtainable from a Bay hub device through SNMP.
Also provides device MAC to port mapping through the proprietary MIB. iykyk โ the proprietary MIB is where the โจrealโจ mapping lives.
๐ง Inherited Classes
SNMP::Info::Layer2
๐ Required MIBs
SYNOPTICS-COMMON-MIBSYNOPTICS-ETHERNET-MIB
๐ Inherited MIBs
See "Required MIBs" in SNMP::Info::Layer2 for its MIB requirements.
๐ GLOBALS ๐
These are methods that return scalar value from SNMP. scalar. singular. one value. not a table, babes. ๐
๐ธ $s3000->vendor()
Returns 'nortel'
๐ธ $s3000->os()
Returns 'synoptics'
๐ธ $s3000->model()
Cross references $s3000->id() to the SYNOPTICS-MIB and returns the results.
Removes "sreg-" from the model name and returns only the numeric model identifier. so if you were hoping for the pretty string, sorry babe, she's giving you digits only. ๐ข
โญ $stack->os_ver()
Returns the software version specified as major.minor.maint.
("s3AgentSwMajorVer").("s3AgentSwMinorVer").("s3AgentSwMaintVer")
three separate OIDs glued together with dots, periodt. ๐
โญ $stack->os_bin()
Returns the firmware version. ("s3AgentFwVer")
๐บ $s3000->mac()
Returns MAC of the advertised IP address of the device.
๐ Overrides ๐
๐ท $s3000->layers()
Returns 00000011. Class emulates Layer 2 functionality through proprietary MIBs. fake it till you make it, bestie. ๐ซ
๐ Globals imported from SNMP::Info::Layer2 ๐
See "GLOBALS" in SNMP::Info::Layer2 for details.
๐ฅ TABLE METHODS ๐ฅ
These are methods that return tables of information in the form of a reference to a hash. hash refs. the whole squad. ๐ซ
๐ Overrides ๐
๐ฆ $s3000->i_index()
Returns reference to map of IIDs to Interface index.
Since hubs do not support "ifIndex", the interface index is created using the formula (board * 256 + port). This is required to support devices with more than one module.
ok so this is the important one. noifIndexon a hub, so we manufacture one:board * 256 + port. it's giving math homework but it's necessary. you're welcome. ๐งฎโจ
๐ฆ $s3000->interfaces()
Returns reference to map of IIDs to physical ports.
๐ฆ $s3000->i_duplex()
Returns half, hubs do not support full duplex. she's a half-duplex girlie and that's just the truth. ๐
๐ฆ $s3000->i_duplex_admin()
Returns half, hubs do not support full duplex. same energy, admin flavour. ๐
๐ฆ $s3000->i_speed()
Returns 10000000. The hubs only support 10 Mbs Ethernet. ten megabits. that's it. that's the number. ๐
๐ฆ $s3000->i_up()
Returns ("s3EnetPortLinkStatus") for each port. Translates on/off to up/down.
๐ฆ $s3000->i_up_admin()
Returns ("s3EnetPortPartStatus") for each port.
๐ฆ $s3000->set_i_up_admin(state, ifIndex)
Sets port state, must be supplied with state and port "ifIndex"
State choices are 'up' or 'down'
Example:
my %if_map = reverse %{$s3000->interfaces()};
$s3000->set_i_up_admin('down', $if_map{'1.1'})
or die "Couldn't change port state. ",$s3000->error(1);
notice the reverse %{$s3000->interfaces()} trick โ you flip the map so you can look up by the '1.1' style name instead of the raw index. cute, right? and if it fails you die with $s3000->error(1). ๐ญ
๐ฆ $s3000->bp_index()
Simulates bridge MIB by returning reference to a hash containing the index for both the keys and values. yes, both. keys AND values. same thing twice. it's giving mirror selfie. ๐ช
๐ฆ $s3000->fw_port()
Returns reference to map of IIDs of the "SYNOPTICS-ETHERNET-MIB::s3EnetShowNodesTable" to the Interface index.
๐ฆ $s3000->fw_mac()
("s3EnetShowNodesMacAddress")
๐ฆ $s3000->s3000_topo_port()
Returns reference to hash. Key: Table entry, Value: Port Number (interface iid)
("s3EnetTopNmmPort")
๐ฆ $s3000->s3000_topo_mac()
("s3EnetTopNmmMacAddr")
Returns reference to hash. Key: Table entry, Value: Remote MAC address
๐ Table Methods imported from SNMP::Info::Layer2 ๐
See "TABLE METHODS" in SNMP::Info::Layer2 for details.
remember: every single one of these is a hash ref when it's a table method and a plain scalar when it's a global. don't @ me. ๐ซถ
and that's the whole page, bestie! this lil doc ships with perl v5.40.1 and was dated 2026-02-28 โ go forth and poll those hubs, you absolute legend. ๐โจ๐ฆ๐๐
๐ฆ 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