.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" 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 .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SNMP::Info::Layer2::C2900 3pm" .TH SNMP::Info::Layer2::C2900 3pm "2019-02-25" "perl v5.28.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::C2900 \- SNMP Interface to Cisco Catalyst 2900 Switches running IOS .SH "AUTHOR" .IX Header "AUTHOR" Max Baker .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& # Let SNMP::Info determine the correct subclass for you. \& my $c2900 = new SNMP::Info( \& AutoSpecify => 1, \& Debug => 1, \& # These arguments are passed directly to SNMP::Session \& DestHost => \*(Aqmyswitch\*(Aq, \& Community => \*(Aqpublic\*(Aq, \& Version => 2 \& ) \& or die "Can\*(Aqt connect to DestHost.\en"; \& \& my $class = $c2900\->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 a C2900 device 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 .Vb 1 \& my $c2900 = new SNMP::Info::Layer2::C2900(...); .Ve .SS "Inherited Classes" .IX Subsection "Inherited Classes" .IP "SNMP::Info::Layer2::Cisco" 4 .IX Item "SNMP::Info::Layer2::Cisco" .SS "Required MIBs" .IX Subsection "Required MIBs" .PD 0 .IP "\fI\s-1CISCO\-C2900\-MIB\s0\fR" 4 .IX Item "CISCO-C2900-MIB" .PD Part of the v2 MIBs from Cisco. .SS "Inherited MIBs" .IX Subsection "Inherited MIBs" See \*(L"Required MIBs\*(R" in SNMP::Info::Layer2::Cisco for its \s-1MIB\s0 requirements. .SH "GLOBALS" .IX Header "GLOBALS" These are methods that return scalar value from \s-1SNMP\s0 .SS "Overrides" .IX Subsection "Overrides" .ie n .IP "$c2900\->\fBvendor()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBvendor()\fR" 4 .IX Item "$c2900->vendor()" Returns 'cisco' :) .ie n .IP "$c2900\->\fBcisco_comm_indexing()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBcisco_comm_indexing()\fR" 4 .IX Item "$c2900->cisco_comm_indexing()" Returns 1. Use vlan indexing. .SS "Globals imported from SNMP::Info::Layer2::Cisco" .IX Subsection "Globals imported from SNMP::Info::Layer2::Cisco" See \*(L"\s-1GLOBALS\*(R"\s0 in SNMP::Info::Layer2::Cisco 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 "$c2900\->\fBinterfaces()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBinterfaces()\fR" 4 .IX Item "$c2900->interfaces()" Returns reference to the map between \s-1IID\s0 and physical Port. .Sp On the 2900 devices i_name isn't reliable, so we override to just the description. .Sp Next all dots are changed for forward slashes so that the physical port name is the same as the broad-casted \s-1CDP\s0 port name. (Ethernet0.1 \-> Ethernet0/1) .Sp Also, any weird characters are removed, as I saw a few pop up. .ie n .IP "$c2900\->\fBi_duplex()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBi_duplex()\fR" 4 .IX Item "$c2900->i_duplex()" Returns reference to map of IIDs to current link duplex .Sp Crosses \f(CW$c2900\fR\->\fBc2900_p_index()\fR with \f(CW$c2900\fR\->\fBc2900_p_duplex()\fR .ie n .IP "$c2900\->\fBi_duplex_admin()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBi_duplex_admin()\fR" 4 .IX Item "$c2900->i_duplex_admin()" Returns reference to hash of IIDs to admin duplex setting .Sp Crosses \f(CW$c2900\fR\->\fBc2900_p_index()\fR with \f(CW$c2900\fR\->\fBc2900_p_duplex_admin()\fR .ie n .IP "$c2900\->\fBi_speed_admin()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBi_speed_admin()\fR" 4 .IX Item "$c2900->i_speed_admin()" Returns reference to hash of IIDs to admin speed setting. .SS "\fIC2900\-MIB\fP Port Entry Table" .IX Subsection "C2900-MIB Port Entry Table" .ie n .IP "$c2900\->\fBc2900_p_index()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBc2900_p_index()\fR" 4 .IX Item "$c2900->c2900_p_index()" Maps the Switch Port Table to the \s-1IID\s0 .Sp (\f(CW\*(C`c2900PortIfIndex\*(C'\fR) .ie n .IP "$c2900\->\fBc2900_p_duplex()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBc2900_p_duplex()\fR" 4 .IX Item "$c2900->c2900_p_duplex()" Gives Port Duplex Info .Sp (\f(CW\*(C`c2900PortDuplexStatus\*(C'\fR) .ie n .IP "$c2900\->\fBc2900_p_duplex_admin()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBc2900_p_duplex_admin()\fR" 4 .IX Item "$c2900->c2900_p_duplex_admin()" Gives admin setting for Duplex Info .Sp (\f(CW\*(C`c2900PortDuplexState\*(C'\fR) .ie n .IP "$c2900\->\fBc2900_p_speed_admin()\fR" 4 .el .IP "\f(CW$c2900\fR\->\fBc2900_p_speed_admin()\fR" 4 .IX Item "$c2900->c2900_p_speed_admin()" Gives Admin speed of port .Sp (\f(CW\*(C`c2900PortAdminSpeed\*(C'\fR) .SS "Table Methods imported from SNMP::Info::Layer2::Cisco" .IX Subsection "Table Methods imported from SNMP::Info::Layer2::Cisco" See \*(L"\s-1TABLE METHODS\*(R"\s0 in SNMP::Info::Layer2::Cisco for details. .SH "SET METHODS" .IX Header "SET METHODS" These are methods that provide \s-1SNMP\s0 set functionality for overridden methods or provide a simpler interface to complex set operations. See \&\*(L"\s-1SETTING DATA VIA SNMP\*(R"\s0 in SNMP::Info for general information on set operations. .ie n .IP "$c2900\->set_i_speed_admin(speed, ifIndex)" 4 .el .IP "\f(CW$c2900\fR\->set_i_speed_admin(speed, ifIndex)" 4 .IX Item "$c2900->set_i_speed_admin(speed, ifIndex)" Sets port speed, must be supplied with speed and port \f(CW\*(C`ifIndex\*(C'\fR .Sp Speed choices are 'auto', '10', '100' .Sp Crosses \f(CW$c2900\fR\->\fBc2900_p_index()\fR with \f(CW$c2900\fR\->\fBc2900_p_speed_admin()\fR to utilize port \f(CW\*(C`ifIndex\*(C'\fR. .Sp .Vb 4 \& Example: \& my %if_map = reverse %{$c2900\->interfaces()}; \& $c2900\->set_i_speed_admin(\*(Aqauto\*(Aq, $if_map{\*(AqFastEthernet0/1\*(Aq}) \& or die "Couldn\*(Aqt change port speed. ",$c2900\->error(1); .Ve .ie n .IP "$c2900\->set_i_duplex_admin(duplex, ifIndex)" 4 .el .IP "\f(CW$c2900\fR\->set_i_duplex_admin(duplex, ifIndex)" 4 .IX Item "$c2900->set_i_duplex_admin(duplex, ifIndex)" Sets port duplex, must be supplied with duplex and port \f(CW\*(C`ifIndex\*(C'\fR .Sp Speed choices are 'auto', 'half', 'full' .Sp Crosses \f(CW$c2900\fR\->\fBc2900_p_index()\fR with \f(CW$c2900\fR\->\fBc2900_p_duplex_admin()\fR to utilize port \f(CW\*(C`ifIndex\*(C'\fR. .Sp .Vb 4 \& Example: \& my %if_map = reverse %{$c2900\->interfaces()}; \& $c2900\->set_i_duplex_admin(\*(Aqauto\*(Aq, $if_map{\*(AqFastEthernet0/1\*(Aq}) \& or die "Couldn\*(Aqt change port duplex. ",$c2900\->error(1); .Ve