.\" 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::Layer3::F5 3pm" .TH Info::Layer3::F5 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::Layer3::F5 \- SNMP Interface to F5 network devices. .SH "AUTHOR" .IX Header "AUTHOR" Eric Miller .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 9 \& # Let SNMP::Info determine the correct subclass for you. \& my $f5 = 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 = $f5\->class(); \& print "SNMP::Info determined this device to fall under subclass : $class\en"; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Abstraction subclass for F5 network devices. .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 .Vb 1 \& my $f5 = new SNMP::Info::Layer3::F5(...); .Ve .SS "Inherited Classes" .IX Subsection "Inherited Classes" .IP "SNMP::Info::Layer3" 4 .IX Item "SNMP::Info::Layer3" .SS "Required MIBs" .IX Subsection "Required MIBs" .PD 0 .IP "\fIF5\-BIGIP\-COMMON\-MIB\fR" 4 .IX Item "F5-BIGIP-COMMON-MIB" .IP "\fIF5\-BIGIP\-SYSTEM\-MIB\fR" 4 .IX Item "F5-BIGIP-SYSTEM-MIB" .IP "Inherited Classes' MIBs" 4 .IX Item "Inherited Classes' MIBs" .PD See \*(L"Required MIBs\*(R" in SNMP::Info::Layer3 for its own \s-1MIB\s0 requirements. .SH "GLOBALS" .IX Header "GLOBALS" These are methods that return scalar value from \s-1SNMP\s0 .ie n .IP "$f5\->\fImodel()\fR" 4 .el .IP "\f(CW$f5\fR\->\fImodel()\fR" 4 .IX Item "$f5->model()" Return (\f(CW\*(C`sysPlatformInfoMarketingName\*(C'\fR), otherwise tries to reference \&\f(CW$f5\fR\->\fIid()\fR to \fIF5\-BIGIP\-COMMON\-MIB\fR. .ie n .IP "$f5\->\fIvendor()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIvendor()\fR" 4 .IX Item "$f5->vendor()" Returns 'f5' .ie n .IP "$f5\->\fIos()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIos()\fR" 4 .IX Item "$f5->os()" Returns 'f5' .ie n .IP "$f5\->\fIos_ver()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIos_ver()\fR" 4 .IX Item "$f5->os_ver()" Returns the software version reported by \f(CW\*(C`sysProductVersion\*(C'\fR .ie n .IP "$f5\->\fIfan()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIfan()\fR" 4 .IX Item "$f5->fan()" Combines (\f(CW\*(C`sysChassisFanStatus\*(C'\fR) into a single string. .ie n .IP "$f5\->\fIps1_status()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIps1_status()\fR" 4 .IX Item "$f5->ps1_status()" Returns status of primary power supply .ie n .IP "$f5\->\fIps2_status()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIps2_status()\fR" 4 .IX Item "$f5->ps2_status()" Returns status of redundant power supply .SS "Globals imported from SNMP::Info::Layer3" .IX Subsection "Globals imported from SNMP::Info::Layer3" See documentation in \*(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 "$f5\->\fIinterfaces()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIinterfaces()\fR" 4 .IX Item "$f5->interfaces()" Returns reference to the map between \s-1IID\s0 and physical port. .Sp (\f(CW\*(C`sysInterfaceName\*(C'\fR). .ie n .IP "$f5\->\fIi_duplex()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_duplex()\fR" 4 .IX Item "$f5->i_duplex()" Returns reference to hash. Maps port operational duplexes to IIDs. .ie n .IP "$f5\->\fIi_vlan()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_vlan()\fR" 4 .IX Item "$f5->i_vlan()" Returns a mapping between \f(CW\*(C`ifIndex\*(C'\fR and the default \s-1VLAN.\s0 .ie n .IP "$f5\->\fIi_vlan_membership()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_vlan_membership()\fR" 4 .IX Item "$f5->i_vlan_membership()" Returns reference to hash of arrays: key = \f(CW\*(C`ifIndex\*(C'\fR, value = array of \s-1VLAN\s0 IDs. .Sp .Vb 3 \& Example: \& my $interfaces = $f5\->interfaces(); \& my $vlans = $f5\->i_vlan_membership(); \& \& foreach my $iid (sort keys %$interfaces) { \& my $port = $interfaces\->{$iid}; \& my $vlan = join(\*(Aq,\*(Aq, sort(@{$vlans\->{$iid}})); \& print "Port: $port VLAN: $vlan\en"; \& } .Ve .ie n .IP "$f5\->\fIi_vlan_membership_untagged()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_vlan_membership_untagged()\fR" 4 .IX Item "$f5->i_vlan_membership_untagged()" Returns reference to hash of arrays: key = \f(CW\*(C`ifIndex\*(C'\fR, value = array of \s-1VLAN\s0 IDs. These are the VLANs which are members of the untagged egress list for the port. .ie n .IP "$f5\->\fIv_index()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIv_index()\fR" 4 .IX Item "$f5->v_index()" Returns \s-1VLAN\s0 IDs .ie n .IP "$f5\->\fIv_name()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIv_name()\fR" 4 .IX Item "$f5->v_name()" Human-entered name for vlans. .ie n .IP "$f5\->\fIi_name()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_name()\fR" 4 .IX Item "$f5->i_name()" Returns the human set port name if exists. .ie n .IP "$f5\->\fIi_type()\fR" 4 .el .IP "\f(CW$f5\fR\->\fIi_type()\fR" 4 .IX Item "$f5->i_type()" Returns \f(CW\*(AqethernetCsmacd\*(Aq\fR for each \f(CW\*(C`ifIndex\*(C'\fR. .SS "Table Methods imported from SNMP::Info::Layer3" .IX Subsection "Table Methods imported from SNMP::Info::Layer3" See documentation in \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::Layer3 for details.