.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Info::Layer2::Baystack 3pm" .TH Info::Layer2::Baystack 3pm "2016-12-21" "perl v5.24.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SNMP::Info::Layer2::Baystack \- SNMP Interface to Avaya Ethernet Switch (Baystack) and VSP 7000 series switches .SH "AUTHOR" .IX Header "AUTHOR" Eric Miller .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 9 \& # Let SNMP::Info determine the correct subclass for you. \& my $baystack = new SNMP::Info( \& AutoSpecify => 1, \& Debug => 1, \& DestHost => \*(Aqmyswitch\*(Aq, \& Community => \*(Aqpublic\*(Aq, \& Version => 2 \& ) \& or die "Can\*(Aqt connect to DestHost.\en"; \& \& my $class = $baystack\->class(); \& print "SNMP::Info determined this device to fall under subclass : $class\en"; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Provides abstraction to the configuration information obtainable from an Avaya Ethernet Switch (formerly Nortel/Bay Baystack) and \s-1VSP 7000\s0 series through \s-1SNMP. \s0 .PP For speed or debugging purposes you can call the subclass directly, but not after determining a more specific class using the method above. .PP my \f(CW$baystack\fR = new SNMP::Info::Layer2::Baystack(...); .SS "Inherited Classes" .IX Subsection "Inherited Classes" .IP "SNMP::Info::SONMP" 4 .IX Item "SNMP::Info::SONMP" .PD 0 .IP "SNMP::Info::NortelStack" 4 .IX Item "SNMP::Info::NortelStack" .IP "SNMP::Info::RapidCity" 4 .IX Item "SNMP::Info::RapidCity" .IP "SNMP::Info::LLDP" 4 .IX Item "SNMP::Info::LLDP" .IP "SNMP::Info::Layer3" 4 .IX Item "SNMP::Info::Layer3" .PD .SS "Required MIBs" .IX Subsection "Required MIBs" .IP "\fIBAY-STACK-PETH-EXT-MIBB\fR" 4 .IX Item "BAY-STACK-PETH-EXT-MIBB" .SS "Inherited MIBs" .IX Subsection "Inherited MIBs" See \*(L"Required MIBs\*(R" in SNMP::Info::SONMP for its \s-1MIB\s0 requirements. .PP See \*(L"Required MIBs\*(R" in SNMP::Info::NortelStack for its \s-1MIB\s0 requirements. .PP See \*(L"Required MIBs\*(R" in SNMP::Info::RapidCity for its \s-1MIB\s0 requirements. .PP See \*(L"Required MIBs\*(R" in SNMP::Info::LLDP for its \s-1MIB\s0 requirements. .PP See \*(L"Required MIBs\*(R" in SNMP::Info::Layer3 for its \s-1MIB\s0 requirements. .SH "GLOBALS" .IX Header "GLOBALS" These are methods that return scalar value from \s-1SNMP\s0 .ie n .IP "$baystack\->\fIvendor()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIvendor()\fR" 4 .IX Item "$baystack->vendor()" Returns 'avaya' .ie n .IP "$baystack\->\fImodel()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fImodel()\fR" 4 .IX Item "$baystack->model()" Cross references \f(CW$baystack\fR\->\fIid()\fR to the \fISYNOPTICS-MIB\fR and returns the results. 303s and 304s have the same \s-1ID,\s0 so we have a hack to return depending on which it is. .Sp Returns \s-1BPS\s0 for Business Policy Switch .Sp For others extracts and returns the switch numeric designation. .ie n .IP "$baystack\->\fIos()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIos()\fR" 4 .IX Item "$baystack->os()" Returns 'baystack' or 'boss' depending on software version. .ie n .IP "$baystack\->\fIos_bin()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIos_bin()\fR" 4 .IX Item "$baystack->os_bin()" Returns the firmware version extracted from \f(CW\*(C`sysDescr\*(C'\fR. .ie n .IP "$baystack\->\fIstp_ver()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIstp_ver()\fR" 4 .IX Item "$baystack->stp_ver()" Returns the particular \s-1STP\s0 version running on this device. .Sp Values: \f(CW\*(C`nortelStpg\*(C'\fR, \f(CW\*(C`pvst\*(C'\fR, \f(CW\*(C`rstp\*(C'\fR, \f(CW\*(C`mstp\*(C'\fR, \f(CW\*(C`ieee8021d\*(C'\fR .Sp (\f(CW\*(C`s5AgSysSpanningTreeOperMode\*(C'\fR) .SS "Overrides" .IX Subsection "Overrides" .ie n .IP "$baystack\->\fIindex_factor()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIindex_factor()\fR" 4 .IX Item "$baystack->index_factor()" Required by SNMP::Info::SONMP. Number representing the number of ports reserved per slot within the device \s-1MIB.\s0 .Sp Index factor on the Baystack switches are determined by the formula: Index Factor = 64 if (model = 470 or (os eq 'boss' and operating in pure mode)) or else Index factor = 32. .Sp Returns either 32 or 64 based upon the formula. .SS "Global Methods imported from SNMP::Info::SONMP" .IX Subsection "Global Methods imported from SNMP::Info::SONMP" See \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::SONMP for details. .SS "Globals imported from SNMP::Info::NortelStack" .IX Subsection "Globals imported from SNMP::Info::NortelStack" See \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::NortelStack for details. .SS "Global Methods imported from SNMP::Info::RapidCity" .IX Subsection "Global Methods imported from SNMP::Info::RapidCity" See \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::RapidCity for details. .SS "Globals imported from SNMP::Info::LLDP" .IX Subsection "Globals imported from SNMP::Info::LLDP" See documentation in \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::LLDP for details. .SS "Globals imported from SNMP::Info::Layer3" .IX Subsection "Globals imported from SNMP::Info::Layer3" See \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::Layer3 for details. .SH "TABLE METHODS" .IX Header "TABLE METHODS" These are methods that return tables of information in the form of a reference to a hash. .SS "Overrides" .IX Subsection "Overrides" .ie n .IP "$baystack\->\fIinterfaces()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIinterfaces()\fR" 4 .IX Item "$baystack->interfaces()" Returns reference to the map between \s-1IID\s0 and physical Port. .Sp .Vb 2 \& Slot and port numbers on the Baystack switches are determined by the \& formula: \& \& port = (Interface index % Index factor) \& slot = (int(Interface index / Index factor)) + Slot offset \& \& The physical port name is returned as slot.port. .Ve .ie n .IP "$baystack\->\fIi_ignore()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIi_ignore()\fR" 4 .IX Item "$baystack->i_ignore()" Returns reference to hash of IIDs to ignore. .ie n .IP "$baystack\->\fIi_mac()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIi_mac()\fR" 4 .IX Item "$baystack->i_mac()" Returns the \f(CW\*(C`ifPhysAddress\*(C'\fR table entries. .Sp Removes all entries matching '00:00:00:00:00:00' \*(-- Certain revisions of Baystack firmware report all zeros for each port mac. .ie n .IP "$baystack\->\fIi_name()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIi_name()\fR" 4 .IX Item "$baystack->i_name()" Crosses \f(CW\*(C`ifName\*(C'\fR with \f(CW\*(C`ifAlias\*(C'\fR and returns the human set port name if exists. .ie n .IP "$baystack\->\fIpeth_port_ifindex()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIpeth_port_ifindex()\fR" 4 .IX Item "$baystack->peth_port_ifindex()" Maps the \f(CW\*(C`pethPsePortTable\*(C'\fR to \f(CW\*(C`ifIndex\*(C'\fR by way of the \fIENTITY-MIB\fR. .ie n .IP "$baystack\->\fIpeth_port_power()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIpeth_port_power()\fR" 4 .IX Item "$baystack->peth_port_power()" Power supplied by PoE ports, in milliwatts .Sp (\f(CW\*(C`bspePethPsePortExtMeasuredPower\*(C'\fR) .SS "\fIENTITY-MIB\fP Information" .IX Subsection "ENTITY-MIB Information" For older devices which do not support \fIENTITY-MIB\fR, these methods emulate Physical Table methods using \fIS5\-CHASSIS\-MIB\fR. See \&\*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::NortelStack for details on ns_e_* methods. .ie n .IP "$baystack\->\fIe_index()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_index()\fR" 4 .IX Item "$baystack->e_index()" If the device doesn't support \f(CW\*(C`entPhysicalDescr\*(C'\fR, this will try \fIns_e_index()\fR. Note that this is based on \f(CW\*(C`entPhysicalDescr\*(C'\fR due to implementation details of \fISNMP::Info::Entity::e_index()\fR. .ie n .IP "$baystack\->\fIe_class()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_class()\fR" 4 .IX Item "$baystack->e_class()" If the device doesn't support \f(CW\*(C`entPhysicalClass\*(C'\fR, this will try \fIns_e_class()\fR. .ie n .IP "$baystack\->\fIe_descr()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_descr()\fR" 4 .IX Item "$baystack->e_descr()" If the device doesn't support \f(CW\*(C`entPhysicalDescr\*(C'\fR, this will try \fIns_e_descr()\fR. .ie n .IP "$baystack\->\fIe_name()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_name()\fR" 4 .IX Item "$baystack->e_name()" If the device doesn't support \f(CW\*(C`entPhysicalName\*(C'\fR, this will try \fIns_e_name()\fR. .ie n .IP "$baystack\->\fIe_fwver()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_fwver()\fR" 4 .IX Item "$baystack->e_fwver()" If the device doesn't support \f(CW\*(C`entPhysicalFirmwareRev\*(C'\fR, this will try \&\fIns_e_fwver()\fR. .ie n .IP "$baystack\->\fIe_hwver()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_hwver()\fR" 4 .IX Item "$baystack->e_hwver()" If the device doesn't support \f(CW\*(C`entPhysicalHardwareRev\*(C'\fR, this will try \&\fIns_e_hwver()\fR. .ie n .IP "$baystack\->\fIe_parent()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_parent()\fR" 4 .IX Item "$baystack->e_parent()" If the device doesn't support \f(CW\*(C`entPhysicalContainedIn\*(C'\fR, this will try \&\fIns_e_parent()\fR. .ie n .IP "$baystack\->\fIe_pos()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_pos()\fR" 4 .IX Item "$baystack->e_pos()" If the device doesn't support \f(CW\*(C`entPhysicalParentRelPos\*(C'\fR, this will try \&\fIns_e_pos()\fR. .ie n .IP "$baystack\->\fIe_serial()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_serial()\fR" 4 .IX Item "$baystack->e_serial()" If the device doesn't support \f(CW\*(C`entPhysicalSerialNum\*(C'\fR, this will try \&\fIns_e_serial()\fR. .ie n .IP "$baystack\->\fIe_swver()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_swver()\fR" 4 .IX Item "$baystack->e_swver()" If the device doesn't support \f(CW\*(C`entPhysicalSoftwareRev\*(C'\fR, this will try \&\fIns_e_swver()\fR. .ie n .IP "$baystack\->\fIe_type()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_type()\fR" 4 .IX Item "$baystack->e_type()" If the device doesn't support \f(CW\*(C`entPhysicalVendorType\*(C'\fR, this will try \&\fIns_e_type()\fR. .ie n .IP "$baystack\->\fIe_vendor()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIe_vendor()\fR" 4 .IX Item "$baystack->e_vendor()" If the device doesn't support \f(CW\*(C`entPhysicalMfgName\*(C'\fR, this will try \&\fIns_e_vendor()\fR. .SS "Layer 2 Forwarding Database" .IX Subsection "Layer 2 Forwarding Database" These methods try to obtain the layer 2 forwarding database entries via the normal bridge methods as well as \s-1SPBM\s0 entries via rapid city methods. .ie n .IP "$baystack\->\fIfw_mac()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIfw_mac()\fR" 4 .IX Item "$baystack->fw_mac()" Returns reference to hash of forwarding table \s-1MAC\s0 Addresses .ie n .IP "$baystack\->\fIfw_port()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIfw_port()\fR" 4 .IX Item "$baystack->fw_port()" Returns reference to hash of forwarding table entries port interface identifier (iid) .ie n .IP "$baystack\->\fIqb_fw_vlan()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIqb_fw_vlan()\fR" 4 .IX Item "$baystack->qb_fw_vlan()" Returns reference to hash of forwarding table entries \s-1VLAN ID\s0 .ie n .IP "$baystack\->\fIfw_status()\fR" 4 .el .IP "\f(CW$baystack\fR\->\fIfw_status()\fR" 4 .IX Item "$baystack->fw_status()" Returns reference to hash of forwarding table entries status .SS "Table Methods imported from SNMP::Info::SONMP" .IX Subsection "Table Methods imported from SNMP::Info::SONMP" See \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::SONMP for details. .SS "Table Methods imported from SNMP::Info::NortelStack" .IX Subsection "Table Methods imported from SNMP::Info::NortelStack" See \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::NortelStack for details. .SS "Table Methods imported from SNMP::Info::RapidCity" .IX Subsection "Table Methods imported from SNMP::Info::RapidCity" See \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::RapidCity for details. .SS "Table Methods imported from SNMP::Info::LLDP" .IX Subsection "Table Methods imported from SNMP::Info::LLDP" See documentation in \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::LLDP for details. .SS "Table Methods imported from SNMP::Info::Layer3" .IX Subsection "Table Methods imported from SNMP::Info::Layer3" See \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::Layer3 for details.