# This module contains the code used by the snmpInfo CGI script to produce its
# output in the form of HTML lists.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub get {
local($v) = shift;
local($c,$p,$t,$x);
print "
#get v=\"$v\" instance=(@_)\n" if $D>2;
if ($t = $mib{$v}) {
if ($t eq 'g' || $t eq 't' || $t eq 'e') {
$c = "&$v()";
print "
#get Group c=\"$c\"\n" if $D>2;
$x = eval($c);
print "
$v.@_\t$x\n" if $D>2;
} elsif ($t eq 'v') {
$c = "&$v(@_)";
print "
#get Variable c=\"$c\"\n" if $D>2;
$x = eval($c);
print "
#get x=$x\n" if $D>2;
} elsif ($t eq 'sv') {
($p = $v) =~ s/[A-Z].*//;
print "
#get Simple var p=\"$p\"\n" if $D>2;
$x = &vvar($p,$v);
print "
#get x=$x\n" if $D>2;
} elsif ($t eq 'vv') {
($p = $v) =~ s/[A-Z].*//;
print "
#get Vector var p=\"$p\"\n" if $D>2;
$x = &vvar($p,$v,@_);
print "
#get x=$x\n" if $D>2;
} else {
print "
#get t=$t unknown for v=\"$v\"\n" if $D>2;
}
}
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub snmp {
&system;
&interfaces;
&at;
&ip;
&icmp;
&tcp;
&udp;
&egp;
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub system { # group.
print "${G1}system${G2}\n";
print "
\n";
print "\n";
&iftbl() unless $ifNumber;
for ($i=1; $i <= $ifNumber; $i++) {
print "- #ifTable i=$i.\n" if $D>2;
&ifEntry($i);
}
print "
\n";
}
sub th {for (@_) {print "$_\n"}}
sub td {for (@_) {print " | $_\n"}}
sub ifEntry { # entry.
local($i) = @_;
print "ifEntry $i:\n";
print "\n";
&vvar('if','ifIndex',$i);
&vvar('if','ifDescr',$i);
&vvar('if','ifType',$i);
&vvar('if','ifMtu',$i);
&vvar('if','ifSpeed',$i);
&vvar('if','ifPhysAddress',$i);
&vvar('if','ifAdminStat',$i);
&vvar('if','ifOperStat',$i);
&vvar('if','ifLastChange',$i);
&vvar('if','ifInOctets',$i);
&vvar('if','ifInUcastPkts',$i);
&vvar('if','ifInNUcastPkts',$i);
&vvar('if','ifInDiscards',$i);
&vvar('if','ifInErrors',$i);
&vvar('if','ifInUnknownProtos',$i);
&vvar('if','ifOutOctets',$i);
&vvar('if','ifOutUcastPkts',$i);
&vvar('if','ifOutNUcastPkts',$i);
&vvar('if','ifOutDiscards',$i);
&vvar('if','ifOutErrors',$i);
&vvar('if','ifOutQLen',$i);
print " \n";
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub at { # group.
print "${G1}at${G2}\n";
print "\n";
&atTable();
print " \n";
}
sub atTable { # dl.
local($i);
print "atTable\n";
print "\n";
&iftbl() unless $ifNumber;
for ($i=1; $i <= $ifNumber; $i++) {
print " #atTable i=$i.\n" if $D>2;
&atEntry($i);
}
print " \n";
}
sub atEntry { # entry.
local($i) = @_;
print "atEntry $i\n";
print "\n";
&atIfIndex($i);
&atPhysAddress($i);
&atNetAddress($i);
print " \n";
}
sub atIfIndex {
local($i) = $_[0] || 1;
&attbl() unless $atNumber;
print "atIfIndex.$i" . $atIfIndex{$i} . "\n";
}
sub atPhysAddress {
local($i) = $_[0] || 1;
&attbl() unless $atNumber;
print "atPhysAddress.$i" . $atPhysAddress{$i} . "\n";
}
sub atNetAddress {
local($i) = $_[0] || 1;
&attbl() unless $atNumber;
print "atNetAddress.$i" . $atNetAddress{$i} . "\n";
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub ip { # group.
print "${G1}ip${G2}\n";
print "\n";
&svar('ip','ipForwarding');
&svar('ip','ipDefaultTTL');
&svar('ip','ipInReceives');
&svar('ip','ipInHdrErrors');
&svar('ip','ipInAddrErrors');
&svar('ip','ipForwDatagrams');
&svar('ip','ipInUnknownProtos');
&svar('ip','ipInDiscards');
&svar('ip','ipInDelivers');
&svar('ip','ipOutRequests');
&svar('ip','ipOutDiscards');
&svar('ip','ipOutNoRoutes');
&svar('ip','ipReasmTimeout');
&svar('ip','ipReasmRecords');
&svar('ip','ipReasmOKs');
&svar('ip','ipReasmFails');
&svar('ip','ipFragOKs');
&svar('ip','ipFragFails');
&svar('ip','ipFragCreates');
&svar('ip','ipAddrs');
&ipAddrTable();
&svar('ip','ipRoutes');
&ipRoutingTable();
print " \n";
}
sub ipInReceives {
&iftbl() unless $ifNumber;
print "ipInReceives$ipInReceives\n";
}
sub ipOutRequests {
&iftbl() unless $ifNumber;
print "ipOutRequests$ipOutRequests\n";
}
#sub ipForwarding {print "ipForwarding$ipForwarding\n"}
#sub ipDefaultTTL {print "ipDefaultTTL$ipDefaultTTL\n"}
#sub ipInHdrErrors {print "ipInHdrErrors$ipInHdrErrors\n"}
#sub ipInAddrErrors {print "ipInAddrErrors$ipInAddrErrors\n"}
#sub ipForwDatagrams {print "ipForwDatagrams$ipForwDatagrams\n"}
#sub ipInUnknownProtos {print "ipInUnknownProtos$ipInUnknownProtos\n"}
#sub ipInDiscards {print "ipInDiscards$ipInDiscards\n"}
#sub ipInDelivers {print "ipInDelivers$ipInDelivers\n"}
#sub ipOutDiscards {print "ipOutDiscards$ipOutDiscards\n"}
#sub ipOutNoRoutes {print "ipOutNoRoutes$ipOutNoRoutes\n"}
#sub ipReasmTimeout {print "ipReasmTimeout$ipReasmTimeout\n"}
#sub ipReasmRecords {print "ipReasmRecords$ipReasmRecords\n"}
#sub ipReasmOKs {print "ipReasmOKs$ipReasmOKs\n"}
#sub ipReasmFails {print "ipReasmFails$ipReasmFails\n"}
#sub ipFragOKs {print "ipFragOKs$ipFragOKs\n"}
#sub ipFragFails {print "ipFragFails$ipFragFails\n"}
#sub ipFragCreates {print "ipFragCreates$ipFragCreates\n"}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub ipAddr { # group.
print "ipAddr\n";
print "\n";
&ipAddrTable();
print " \n";
}
sub ipAddrTable { # group.
print "ipAddrTable\n";
print "\n";
&ipadtbl() unless %ipAdEntAddr;
print "- #ipAddrTable entries
- \n" if $D>2;
for $a (sort oidorder keys(%ipAdEntAddr)) {
&ipAddrEntry($a);
}
print "
\n";
}
sub ipAddrEntry { # entry.
local($i) = @_;
print "ipAddrEntry $i\n";
print "\n";
&ipAdEntAddr($i);
&ipAdEntIfIndex($i);
&ipAdEntNetMask($i);
&ipAdEntBcastAddr($i);
print " \n";
}
sub ipAdEntAddr {local($a) = @_; print "ipAdEntAddr$ipAdEntAddr{$a}\n"}
sub ipAdEntIfIndex {local($a) = @_; print "ipAdEntIfIndex$ipAdEntIfIndex{$a}\n"}
sub ipAdEntNetMask {local($a) = @_; print "ipAdEntNetMask$ipAdEntNetMask{$a}\n"}
sub ipAdEntBcastAddr {local($a) = @_; print "ipAdEntBcastAddr$ipAdEntBcastAddr{$a}\n"}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub ipRoutingTable { # group.
print "ipRoutingTable\n";
print "\n";
&rttbl() unless $ipRoutes;
print "- #ipRoutingTable $ipRoutes entries
- \n" if $D>2;
for $a (sort oidorder keys(%ipRouteDest)) {
&ipRouteEntry($a);
}
print "
\n";
}
sub ipRouteEntry { # entry.
local($x) = @_;
print "ipRouteEntry $x\n";
print "\n";
&ipRouteDest($x);
&ipRouteIfIndex($x);
&ipRouteMetric1($x);
&ipRouteMetric2($x);
&ipRouteMetric3($x);
&ipRouteMetric4($x);
&ipRouteNextHop($x);
&ipRouteType($x);
&ipRouteProto($x);
&ipRouteAge($x);
print " \n";
}
sub ipRouteDest {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteDest.$a" . $ipRouteDest{$a} . "\n";
}
sub ipRouteIfIndex {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteIfIndex.$a" . $ipRouteIfIndex{$a} . "\n";
}
sub ipRouteMetric1 {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteMetric1.$a" . $ipRouteMetric1{$a} . "\n";
}
sub ipRouteMetric2 {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteMetric2.$a" . $ipRouteMetric2{$a} . "\n";
}
sub ipRouteMetric3 {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteMetric3.$a" . $ipRouteMetric3{$a} . "\n";
}
sub ipRouteMetric4 {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteMetric4.$a" . $ipRouteMetric4{$a} . "\n";
}
sub ipRouteNextHop {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteNextHop.$a" . $ipRouteNextHop{$a} . "\n";
}
sub ipRouteType {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteType.$a" . $ipRouteType{$a} . "\n";
}
sub ipRouteProto {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteProto.$a" . $ipRouteProto{$a} . "\n";
}
sub ipRouteAge {
local($a) = @_;
&rttbl() unless $ipRoutes;
print "ipRouteAge.$a" . $ipRouteAge{$a} . "\n";
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub icmp { # group.
print "${G1}icmp${G2}\n";
print "\n";
&icmpOutAddrMaskReps();
&icmpOutAddrMasks();
&icmpOutTimestampReps();
&icmpOutTimestamps();
&icmpOutEchoReps();
&icmpOutEchos();
&icmpOutRedirects();
&icmpOutSrcQuenchs();
&icmpOutParmProbs();
&icmpOutTimeExcds();
&icmpOutDestUnreachs();
&icmpOutErrors();
&icmpOutMsgs();
&icmpInAddrMaskReps();
&icmpInAddrMasks();
&icmpInTimestampReps();
&icmpInTimestamps();
&icmpInEchoReps();
&icmpInEchos();
&icmpInRedirects();
&icmpInSrcQuenchs();
&icmpInParmProbs();
&icmpInTimeExcds();
&icmpInDestUnreachs();
&icmpInErrors();
&icmpInMsgs();
print " \n";
}
sub icmpInMsgs {print "icmpInMsgs$icmpInMsgs\n"}
sub icmpInErrors {print "icmpInErrors$icmpInErrors\n"}
sub icmpInDestUnreachs {print "icmpInDestUnreachs$icmpInDestUnreachs\n"}
sub icmpInTimeExcds {print "icmpInTimeExcds$icmpInTimeExcds\n"}
sub icmpInParmProbs {print "icmpInParmProbs$icmpInParmProbs\n"}
sub icmpInSrcQuenchs {print "icmpInSrcQuenchs$icmpInSrcQuenchs\n"}
sub icmpInRedirects {print "icmpInRedirects$icmpInRedirects\n"}
sub icmpInEchos {print "icmpInEchos$icmpInEchos\n"}
sub icmpInEchoReps {print "icmpInEchoReps$icmpInEchoReps\n"}
sub icmpInTimestamps {print "icmpInTimestamps$icmpInTimestamps\n"}
sub icmpInTimestampReps {print "icmpInTimestampReps$icmpInTimestampReps\n"}
sub icmpInAddrMasks {print "icmpInAddrMasks$icmpInAddrMasks\n"}
sub icmpInAddrMaskReps {print "icmpInAddrMaskReps$icmpInAddrMaskReps\n"}
sub icmpOutMsgs {print "icmpOutMsgs$icmpOutMsgs\n"}
sub icmpOutErrors {print "icmpOutErrors$icmpOutErrors\n"}
sub icmpOutDestUnreachs {print "icmpOutDestUnreachs$icmpOutDestUnreachs\n"}
sub icmpOutTimeExcds {print "icmpOutTimeExcds$icmpOutTimeExcds\n"}
sub icmpOutParmProbs {print "icmpOutParmProbs$icmpOutParmProbs\n"}
sub icmpOutSrcQuenchs {print "icmpOutSrcQuenchs$icmpOutSrcQuenchs\n"}
sub icmpOutRedirects {print "icmpOutRedirects$icmpOutRedirects\n"}
sub icmpOutEchos {print "icmpOutEchos$icmpOutEchos\n"}
sub icmpOutEchoReps {print "icmpOutEchoReps$icmpOutEchoReps\n"}
sub icmpOutTimestamps {print "icmpOutTimestamps$icmpOutTimestamps\n"}
sub icmpOutTimestampReps {print "icmpOutTimestampReps$icmpOutTimestampReps\n"}
sub icmpOutAddrMasks {print "icmpOutAddrMasks$icmpOutAddrMasks\n"}
sub icmpOutAddrMaskReps {print "icmpOutAddrMaskReps$icmpOutAddrMaskReps\n"}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub tcp { # group.
print "${G1}tcp${G2}\n";
print "\n";
&tcpRtoAlgorithm();
&tcpRtoMin();
&tcpRtoMax();
&tcpMaxConn();
&tcpActiveOpens();
&tcpPassiveOpens();
&tcpAttemptFails();
&tcpEstabResets();
&tcpCurrEstab();
&tcpInSegs();
&tcpOutSegs();
&tcpRetransSegs();
&tcpConnTable();
print " \n";
}
sub tcpRtoAlgorithm {print "tcpRtoAlgorithm$tcpRtoAlgorithm\n"}
sub tcpRtoMin {print "tcpRtoMin$tcpRtoMin\n"}
sub tcpRtoMax {print "tcpRtoMax$tcpRtoMax\n"}
sub tcpMaxConn {print "tcpMaxConn$tcpMaxConn\n"}
sub tcpPassiveOpens {print "tcpPassiveOpens$tcpPassiveOpens\n"}
sub tcpAttemptFails {print "tcpAttemptFails$tcpAttemptFails\n"}
sub tcpEstabResets {print "tcpEstabResets$tcpEstabResets\n"}
sub tcpInSegs {print "tcpInSegs$tcpInSegs\n"}
sub tcpOutSegs {print "tcpOutSegs$tcpOutSegs\n"}
sub tcpRetransSegs {print "tcpRetransSegs$tcpRetransSegs\n"}
sub tcpConnTable { # dl.
local($i);
print "tcpConnTable\n";
print "\n";
&tcpinfo() unless defined($tcpConnNumber);
for $i (sort oidorder keys(%tcpConnTable)) {
&tcpConnEntry($i);
}
print " \n";
}
sub tcpConnEntry { # entry.
local($i) = @_;
print "tcpConnEntry $i\n";
print "\n";
&tcpConnState($i);
&tcpConnLocalAddress($i);
&tcpConnLocalPort($i);
&tcpConnRemAddress($i);
&tcpConnRemPort($i);
print " \n";
}
sub tcpActiveOpens {
&tcptbl() unless defined($tcpConnNumber);
print "tcpActiveOpens$tcpActiveOpens\n";
}
sub tcpCurrEstab {
&tcptbl() unless defined($tcpConnNumber);
print "tcpCurrEstab$tcpCurrEstab\n";
}
sub tcpConnState {
local($i) = $_[0] || 1;
&tcptbl() if (!@tcpConnState);
print "tcpConnState.$i" . $tcpConnState{$i} . "\n";
}
sub tcpConnLocalAddress {
local($i) = $_[0] || 1;
&tcptbl() if (!@tcpConnLocalAddress);
print "tcpConnLocalAddress.$i" . $tcpConnLocalAddress{$i} . "\n";
}
sub tcpConnLocalPort {
local($i) = $_[0] || 1;
&tcptbl() if (!@tcpConnLocalPort);
print "tcpConnLocalPort.$i" . $tcpConnLocalPort{$i} . "\n";
}
sub tcpConnRemAddress {
local($i) = $_[0] || 1;
&tcptbl() if (!@tcpConnRemAddress);
print "tcpConnRemAddress.$i" . $tcpConnRemAddress{$i} . "\n";
}
sub tcpConnRemPort {
local($i) = $_[0] || 1;
&tcptbl() if (!@tcpConnRemPort);
print "tcpConnRemPort.$i" . $tcpConnRemPort{$i} . "\n";
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub udp { # group.
print "${G1}udp${G2}\n";
print "\n";
&udpInDatagrams();
&udpNoPorts();
&udpInErrors();
&udpOutDatagrams();
print " \n";
}
sub udpInDatagrams {print "udpInDatagrams$udpInDatagrams\n"}
sub udpNoPorts {print "udpNoPorts$udpNoPorts\n"}
sub udpInErrors {print "udpInErrors$udpInErrors\n"}
sub udpOutDatagrams {print "udpOutDatagrams$udpOutDatagrams\n"}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub egp { # group.
print "${G1}egp${G2}\n";
print "\n";
&egpTable();
print " \n";
}
sub egpTable { # group.
print "egpTable\n";
print "\n";
&rttbl() unless $egpNumber;
print "- #egpTable $egpNumber entries
- \n" if $D>2;
for $a (sort oidorder keys(%egpDest)) {
&egpEntry($a);
}
print "
\n";
}
sub egpEntry { # entry.
local($i) = @_;
print "egpEntry $i\n";
print "\n";
&egpInMsgs($i);
&egpInErrors($i);
&egpOutMsgs($i);
&egpOutErrors($i);
&egpNeighTable($i);
&egpNeighEntry($i);
&egpNeighState($i);
&egpNeighAddr($i);
print " \n";
}
sub egpInMsgs {print "egpInMsgs$egpInMsgs\n"}
sub egpInErrors {print "egpInErrors$egpInErrors\n"}
sub egpOutMsgs {print "egpOutMsgs$egpOutMsgs\n"}
sub egpOutErrors {print "egpOutErrors$egpOutErrors\n"}
sub egpNeighTable {print "egpNeighTable$egpNeighTable\n"}
sub egpNeighEntry {print "egpNeighEntry$egpNeighEntry\n"}
sub egpNeighState {print "egpNeighState$egpNeighState\n"}
sub egpNeighAddr {print "egpNeighAddr$egpNeighAddr\n"}
1;
|