3.3 Polling with Other MIBs

The following polls from MIBs other than the Corente MIB will also provide information about the Corente Services Gateway. In general, for definitions of variables in other MIBs, see the MIB or RFC associated with that MIB.

3.3.1 System Information

To find out the general system information about the Corente Services Gateway, you can poll mib-2.system.

Sample Result:

system.sysDescr.0 = Linux New_York 2.4.20-13.8or13 #1 Mon Dec 8 13:09:37 EDT 2003 i686
system.sysObjectID.0 = OID: enterprises.8072.3.2.10
system.sysUpTime.0 = Timeticks: (111287) 0:18:32.87
system.sysContact.0 = Sally Thompson|sthompson@largecompany.com|555-555-5555
system.sysName.0 = New_York
system.sysLocation.0 = 123 Main Street|New York City|NY|12345|US

The Unix top utility also provides good indicators to the utilization of the processors, processes, memory, and swap spaces. The top five lines of Linux top utility are covered by SNMP polls.

  • Uptime: The first line displays the time the system has been up and the three load averages for the system. They are the average number of process ready to run during the last 1, 5, and 15 minutes since the system has been up.

  • Processes: The second line displays the total number of processes running at the time of the last update.

  • CPU states: The third line displays the percentage of the CPU time in user mode, system mode, niced tasks, and idle.

  • Mem: The fourth displays statistics on memory usage.

  • Swap: The fifth line displays swap space.

A sample top screen is shown below.

2:26pm up 2 days, 4:09, 3 users, load average: 0.93, 0.82, 0.65
128 processes: 126 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 50.1% user, 29.4% system, 0.0% nice, 20.3% idle
Mem: 255684K av, 82224K used, 173460K free, 0K shrd, 3776K buff
Swap: 40120K av, 19536K used, 20584K free 21712K cached 

PID     USER   PRI NI   SIZE   RSS   SHARE   STAT   %CPU   %MEM   TIME   COMMAND
28868   root   18   0   37448   36M    148      R   79.0   14.6  20:58   dummy
28888   root   11   0    1032  1032    732      R    0.3    0.4   0:00   top
    6   root    9   0       0     0      0     SW    0.1    0.0   0:08   kscand
    1   root    8   0     116    52     40      S    0.0    0.0   0:04   init
    2   root    9   0       0     0      0     SW    0.0    0.0   0:00   keventd
    3   root    9   0       0     0      0     SW    0.0    0.0   0:00   kapmd
    4   root   19  19       0     0      0    SWN    0.0    0.0   0:00   ksoftirqd_CPU0
    5   root    9   0       0     0      0     SW    0.0    0.0   0:00   kswapd
    7   root    9   0       0     0      0     SW    0.0    0.0   0:00   bdflush
    8   root    9   0       0     0      0     SW    0.0    0.0   0:00   kupdated
   99   root    9   0       0     0      0     SW    0.0    0.0   0:00   kjournald
  100   root    9   0       0     0      0     SW    0.0    0.0   0:03   kjournald
  208   root    9   0     216   156    112      S    0.0    0.0   0:03   syslogd
  212   root    9   0     188   116    116      S    0.0    0.0   0:00   klogd
  221   rpc     9   0      88     0      0     SW    0.0    0.0   0:00   portmap
  467   root    9   0     232     0      0     SW    0.0    0.0   0:04   sshd
  483   root    9   0    1320    64     48      S    0.0    0.0   0:01   httpd

3.3.2 System Uptime

To poll for information that is on the first line of the top display, you can poll the MIBs: HOST-RESOURCES-MIB and UCB-SNMP-MIB.

General information about the host is available in the host.hrSystem subtree.

Poll: HOST-RESOURCES-MIB::host.hrSystem (.1.3.6.1.2.1.25.1)

Sample Poll Result:

host.hrSystem.hrSystemUptime.0 = Timeticks: (19133140) 2 days, 5:08:51.40
host.hrSystem.hrSystemDate.0 = 2003-6-5,15:25:42.0,+0:0
host.hrSystem.hrSystemInitialLoadDevice.0 = 1536
host.hrSystem.hrSystemInitialLoadParameters.0 = "auto BOOT_IMAGE=linux-clone \
ro root=301 BOOT_FILE=/clone/boot/vmlinuz."
host.hrSystem.hrSystemNumUsers.0 = Gauge32: 3
host.hrSystem.hrSystemProcesses.0 = Gauge32: 128
host.hrSystem.hrSystemMaxProcesses.0 = 0

Load average information is available in the table ucdavis.laTable.

Poll: UCB-SNMP-MIB::ucdavis.laTable (.1.3.6.1.4.1.2021.10)

Sample Poll Result:

SNMP table: enterprises.ucdavis.laTable
 laIndex laNames laLoad laConfig laLoadInt laLoadFloat laErrorFlag laErrMessage
 1 Load-1 0.69 12.00 68 0.690000 0 0
 2 Load-5 0.78 12.00 78 0.780000 0 0
 3 Load-15 0.74 12.00 73 0.740000 0 0

3.3.3 CPU States

To poll for the information on the third line of the top display, you can poll UCBSNMP-MIB.ucdavis.systemStats twice. Do not poll ssCpuUser, ssCpuSystem, ssCpuIdle because they are deprecated and replaced by ssCpuRawUser, ssCpuRawSystem, ssCpuRawIdle, and ssCpuRawNice.

Poll: UCB-SNMP-MIB.ucdavis.systemStats (.1.3.6.1.4.1.2012.11)

Sample First Poll Result at time t0:

enterprises.ucdavis.systemStats.ssIndex.0 = 1
enterprises.ucdavis.systemStats.ssErrorName.0 = systemStats
enterprises.ucdavis.systemStats.ssSwapIn.0 = 0
enterprises.ucdavis.systemStats.ssSwapOut.0 = 1
enterprises.ucdavis.systemStats.ssIOSent.0 = 0
enterprises.ucdavis.systemStats.ssIOReceive.0 = 1
enterprises.ucdavis.systemStats.ssSysInterrupts.0 = 114
enterprises.ucdavis.systemStats.ssSysContext.0 = 38
enterprises.ucdavis.systemStats.ssCpuUser.0 = 0
enterprises.ucdavis.systemStats.ssCpuSystem.0 = 0
enterprises.ucdavis.systemStats.ssCpuIdle.0 = 99
enterprises.ucdavis.systemStats.ssCpuRawUser.0 = Counter32: 29954
enterprises.ucdavis.systemStats.ssCpuRawNice.0 = Counter32: 0
enterprises.ucdavis.systemStats.ssCpuRawSystem.0 = Counter32: 25187
enterprises.ucdavis.systemStats.ssCpuRawIdle.0 = Counter32: 18585381

Sample Second Poll Result at time t1 where t1>t0:

enterprises.ucdavis.systemStats.ssIndex.0 = 1
enterprises.ucdavis.systemStats.ssErrorName.0 = systemStats
enterprises.ucdavis.systemStats.ssSwapIn.0 = 0
enterprises.ucdavis.systemStats.ssSwapOut.0 = 1
enterprises.ucdavis.systemStats.ssIOSent.0 = 0
enterprises.ucdavis.systemStats.ssIOReceive.0 = 1
enterprises.ucdavis.systemStats.ssSysInterrupts.0 = 114
enterprises.ucdavis.systemStats.ssSysContext.0 = 38
enterprises.ucdavis.systemStats.ssCpuUser.0 = 0
enterprises.ucdavis.systemStats.ssCpuSystem.0 = 0
enterprises.ucdavis.systemStats.ssCpuIdle.0 = 99
enterprises.ucdavis.systemStats.ssCpuRawUser.0 = Counter32: 32787
enterprises.ucdavis.systemStats.ssCpuRawNice.0 = Counter32: 0
enterprises.ucdavis.systemStats.ssCpuRawSystem.0 = Counter32: 26681
enterprises.ucdavis.systemStats.ssCpuRawIdle.0 = Counter32: 18586494

The raw numbers represent the actual CPU ticks between the two polls. You can use these numbers to compute the best statistics on average CPU utilization over a period of time. Below is an example on how to compute the average CPU utilization:

To compute average CPU utilization over a period of t1 – t0:

Total CPU ticks for users = ssCpuRawUser at t1 – ssCpuRawUser at t0 = 2833
Total CPU ticks for niced tasks = ssCpuRawNice at t1 – ssCpuRawNice at t0 = 0
Total CPU ticks for system = ssCpuRawSystem at t1 – ssCpuRawSystem at t0 = 1494
Total CPU ticks for idle = ssCpuRawIdle at t1 – ssCpuRawIdle at t0 = 1113
Total CPU ticks between t0 and t1 = 2833 + 0 + 1494 + 1113 = 5440
CPU user% = 2833/5440 x 100 = 52.08%
CPU system% = 1494/5440 x 100 = 27.46%
CPU nice% = 0/5440 x 100 = 0%
CPU idle% = 1113/5440 x 100 = 20.46%
Average CPU utilization over a period of t1 – t0 = 52.08 + 27.46 + 0% = 79.54%

3.3.4 Memory and Swap Space

To poll for the information on the fourth and fifth lines of the top display, you can poll UCB-SNMP-MIB.ucdavis.memory.

Poll: UCD-SNMP-MIB::ucdavis.memory

Sample Poll Result:

enterprises.ucdavis.memory.memIndex.0 = 0
enterprises.ucdavis.memory.memErrorName.0 = swap
enterprises.ucdavis.memory.memTotalSwap.0 = 40120
enterprises.ucdavis.memory.memAvailSwap.0 = 25316
enterprises.ucdavis.memory.memTotalReal.0 = 255684
enterprises.ucdavis.memory.memAvailReal.0 = 5004
enterprises.ucdavis.memory.memTotalFree.0 = 30288
enterprises.ucdavis.memory.memMinimumSwap.0 = 16000
enterprises.ucdavis.memory.memShared.0 = 0
enterprises.ucdavis.memory.memBuffer.0 = 7512
enterprises.ucdavis.memory.memCached.0 = 26976
enterprises.ucdavis.memory.memSwapError.0 = 0
enterprises.ucdavis.memory.memSwapErrorMsg.0 =

The poll results translate as follows to the variables in the Linux top command:

Memory available = memTotalReal = 255684 Kb
Memory used = memTotalReal – memAvailReal = 255684 – 5004 = 250680 Kb
Memery free = memAvailReal = 5005 Kb
Memory shared = memShared = 0
Memory buffer = memBuffer = 7512 Kb

Swap available = memTotalSwap = 40120 Kb
Swap used = memTotalSwap – memAvailSwap = 14804 Kb
Swap free = memAvailSwap = 25316 Kb
Swap cached = memCached = 26976 Kb

Mem: 255684K av, 82224K used, 173460K free, 0K shrd, 3776K buff
Swap: 40120K av, 19536K used, 20584K free, 21712K cached

3.3.5 Processes

To view the processes that are currently running on a Corente Services Gateway, you would poll HOST-RESOURCES-MIB::host.hrSWRun.hrSWRunTable.

The hrSWRunTable contains an entry for each distinct piece of software that is running or loaded into physical or virtual memory of the Location gateway in preparation for running. This includes the Location gateway's operating system, device drivers, and applications.

Sample Poll Result:

SNMP table: host.hrSWRun.hrSWRunTable

hrSWRunIndex  hrSWRunName  hrSWRunID  hrSWRunPath  hrSWRunParameters  hrSWRunType  hrSWRunStatus 

1             "init"       .ccitt.ze  "init [3]"   ""                 application  runnable
2             "keventd"    .ccitt.ze  "keventd"    ""                 application  runnable
:
:
208           "syslogd"    .ccitt.ze  "syslogd"    "-m 0"             application  runnable
15186         "or-restart" .ccitt.ze  "/usr/lo.."  "-d 30 -r /etc.."  application  runnable
15188         "tcptd"      .ccitt.ze  "/usr/lo.."  "--udp --port .."  application  runnable
15296         "pluto"      .ccitt.ze  "/usr/lo.."  "--nofork --de.."  application  runnable
15357         "sessmgr"    .ccitt.ze  "/usr/lo.."  "--local --tim.."  application  runnable
15365         "redird"     .ccitt.ze  "/usr/lo.."  "-f /usr/local.."  application  runnable
15403         "org"        .ccitt.ze  "/usr/lo.."  "-f /usr/local.."  application  runnable
15404         "localdb"    .ccitt.ze  "/usr/lo.."  ""                 application  runnable
28729         "snmpd"      .ccitt.ze  "/usr/sb.."  "-s -f -P /var.."  application  running
28868         "dummy"      .ccitt.ze  "./dummy"    "32 200"           application  running 

Number of processes = number of hrSWRunTable entries
Number of sleeping processes = number of hrSWRuntable entries that have hrSWRunStatus=runnable
Number of running processes = number of hrSWRuntable entries that have hrSWRunStatus=running
Number of zombie processes = number of hrSWRuntable entries that have hrSWRunStatus=invalid
Number of stopped processes = number of hrSWRuntable entries that have hrSWRunStatus=notRunnable

3.3.6 Network Interfaces

By polling for interface information with MIB-II (mib-2.interfaces.ifTable), you can view information about each network interface on a Corente Services Gateway. Interfaces commonly revealed are eth0, eth1, tcpt0, ipsec0, and ipsec1.

  • eth0 and eth1: The physical interfaces for either the LAN or the WAN.

  • tcpt0: The virtual network interface used for all tunnel traffic.

  • ipsec0 and ipsec1: The virtual network interfaces for all IPSec traffic.

The interface tcpt0, ipsec0 and ipsec1 are not physical; they are virtual network interfaces. All Corente Services network tunnel traffic goes through the tcpt0 interface. The statistical information of tcpt0 is the aggregate of all Corente Services network tunnels. For example, the sum of all corente.tunnelRecvKb should be approximately equal to the ifInOctects value of the tcpt0 entry. Similarly, if the ifInErrors or ifOurErrors value of tcpt0 is greater than zero, we know that at least one of the Corente Services network tunnels has problems.

To monitor data for Corente Services network tunnels, monitor tcpt0. In the Corente MIB, corente.tunnelTable is a refinement of this tcpt0 entry.

Sample Poll Result:

SNMP table: interfaces.ifTable

ifIndex ifDescr ifType ifMtu ifSpeed ifPhysAddress
1 lo softwareLoopback 16436 10000000 10000000
2 eth0 ethernetCsmacd 1500 10000000 0:1:3:1c:97:c9
3 tcpt0 ethernetCsmacd 1400 10000000 0:54:43:50:54:30
4 ipsec0 ethernetCsmacd 16260 10000000 0:54:43:50:54:30
5 ipsec1 ethernetCsmacd 16260 10000000 0:1:3:1c:97:c9
6 ipsec2 tunnel 0 0 0
7 ipsec3 tunnel 0 0 0

ifAdminStatus  ifOperStatus  ifLastChange  ifInOctets  ifInUcastPkts  ifInNUcastPkts
           up            up             ?      197681           2062               ?
           up            up             ?   966949898        2603112               ?
           up            up             ?     4251992          40785               ?
           up            up             ?     1969784          40714               ?
           up            up             ?           0              0               ?
         down          down             ?           0              0               ?
         down          down             ?           0              0               ?
 
ifInDiscards  ifInErrors  ifInUnknownProtos  ifOutOctets  ifOutUcastPkts
           0           0                  ?       197681            2062
           0           0                  ?     13425106          110277
           0           0                  ?      4689744           41135
           0           0                  ?      5255638           40841
           0           0                  ?            0               0
           0           0                  ?            0               0
           0           0                  ?            0               0

ifOutNUcastPkts  ifOutDiscards  ifOutErrors  ifOutQLen          ifSpecific
              ?              0            0          0  .ccitt.zeroDotZero
              ?              0            0          0  .ccitt.zeroDotZero
              ?              0            0          0  .ccitt.zeroDotZero
              ?            293            0          0  .ccitt.zeroDotZero
              ?              0            0          0  .ccitt.zeroDotZero
              ?              0            0          0  .ccitt.zeroDotZero
              ?              0            0          0  .ccitt.zeroDotZero

3.3.7 IP Addresses

To view the IP addresses assigned to a Corente Services Gateway, you would poll mib-2.ip.ipAddrTable. The IP address table is displayed, which contains this Location gateway's IP addressing information.

Sample Poll Result:

SNMP table: ip.ipAddrTable

    ipAdEntAddr  ipAdEntIfIndex  ipAdEntNetMask  ipAdEntBcastAddr  ipAdEntReasmMaxSize
        0.0.0.0               6         0.0.0.0                 0                    ?
    10.0.24.167               3       255.0.0.0                 1                    ?
      127.0.0.1               1       255.0.0.0                 0                    ?
192.168.164.223               2   255.255.192.0                 1                    ?

3.3.8 Routes

To view the routes that are configured for the Location gateway to get to its various LAN subnets, you would poll mib-2.ip.ipRouteTable. The IP routing table is displayed, which contains an entry for each route presently known to this Corente Services Gateway.

Sample Poll Result:

SNMP table: ip.ipRouteTable

  ipRouteDest  ipRouteIfIndex  ipRouteMetric1  ipRouteMetric2  ipRouteMetric3  ipRouteMetric4
      0.0.0.0               2               1               ?               ?               ?
     10.0.0.0               4               0               ?               ?               ?
 172.16.246.0               2               1               ?               ?               ?
 172.16.250.0               4               0               ?               ?               ?
192.168.128.0               2               0               ?               ?               ?
 
 ipRouteNextHop ipRouteType ipRouteProto ipRouteAge   ipRouteMask ipRouteMetric5        ipRouteInfo
  192.168.165.1    indirect        local       ?          0.0.0.0           ?    .ccitt.zeroDotZero
        0.0.0.0      direct        local       ?        255.0.0.0           ?    .ccitt.zeroDotZero
192.168.164.136    indirect        local       ?    255.255.255.0           ?    .ccitt.zeroDotZero
        0.0.0.0      direct        local       ?    255.255.255.0           ?    .ccitt.zeroDotZero
        0.0.0.0      direct        local       ?    255.255.192.0           ?    .ccitt.zeroDotZero

3.3.9 IP Information

To view IP information about the Location gateway, you would poll mib-2.ip.

Sample Poll Result:

ip.ipForwarding.0 = forwarding(1)
ip.ipDefaultTTL.0 = 64
ip.ipInReceives.0 = Counter32: 15603
ip.ipInHdrErrors.0 = Counter32: 0
ip.ipInAddrErrors.0 = Counter32: 0
ip.ipForwDatagrams.0 = Counter32: 0
ip.ipInUnknownProtos.0 = Counter32: 0
ip.ipInDiscards.0 = Counter32: 0
ip.ipInDelivers.0 = Counter32: 10827
ip.ipOutRequests.0 = Counter32: 8105
ip.ipOutDiscards.0 = Counter32: 0
ip.ipOutNoRoutes.0 = Counter32: 0
ip.ipReasmTimeout.0 = 0
ip.ipReasmReqds.0 = Counter32: 47
ip.ipReasmOKs.0 = Counter32: 23
ip.ipReasmFails.0 = Counter32: 0
ip.ipFragOKs.0 = Counter32: 46
ip.ipFragFails.0 = Counter32: 0
ip.ipFragCreates.0 = Counter32: 94

3.3.10 TCP Connections

To view the TCP connections of the Location gateway, you would poll mib-2.tcp.tcpConnTable.

The TCP connection table is displayed, which contains information about this Location gateway's existing TCP connections.

Sample Poll Result:

SNMP table: tcp.tcpConnTable

tcpConnState  tcpConnLocalAddress  tcpConnLocalPort  tcpConnRemAddress  tcpConnRemPort
      listen              0.0.0.0                22            0.0.0.0               0
      listen              0.0.0.0                80            0.0.0.0               0
      listen              0.0.0.0               111            0.0.0.0               0
      listen              0.0.0.0               199            0.0.0.0               0
      listen              0.0.0.0               443            0.0.0.0               0
      listen              0.0.0.0               551            0.0.0.0               0
      listen              0.0.0.0               900            0.0.0.0               0
      listen              0.0.0.0              8000            0.0.0.0               0
 established          10.0.24.167               900         10.0.22.40            1137
 established          10.0.24.167             32866     208.185.38.242            3000
 established      192.168.164.223                22     192.168.165.96           32956
 established      192.168.164.223                22     192.168.165.96           32959
 established      192.168.164.223               551       172.16.250.4            1136
 established      192.168.164.223             32865     172.16.254.158             551

3.3.11 TCP Information

To view the TCP information of the Location gateway, you would poll mib-2.tcp. The TCP group is displayed. Note that instances of object types that represent information about a particular TCP connection are transient; they persist only as long as the connection in question.

Sample Poll Result:

tcp.tcpRtoAlgorithm.0 = other(1)
tcp.tcpRtoMin.0 = 200
tcp.tcpRtoMax.0 = 120000
tcp.tcpMaxConn.0 = -1
tcp.tcpActiveOpens.0 = Counter32: 6
tcp.tcpPassiveOpens.0 = Counter32: 6
tcp.tcpAttemptFails.0 = Counter32: 0
tcp.tcpEstabResets.0 = Counter32: 1
tcp.tcpCurrEstab.0 = Gauge32: 4
tcp.tcpInSegs.0 = Counter32: 682
tcp.tcpOutSegs.0 = Counter32: 745
tcp.tcpRetransSegs.0 = Counter32: 4

3.3.12 UDP Listening Ports

To view the UDP listening ports of the Location gateway, you would poll mib-2.udp.udpTable.

The UDP listener table is displayed, which contains information about this Location gateway’s UDP end-points which are currently accepting datagrams.

Sample Poll Result:

SNMP table: udp.udpTable
 
 udpLocalAddress  udpLocalPort
         0.0.0.0            68
         0.0.0.0           111
         0.0.0.0           161
         0.0.0.0           551
         0.0.0.0           900
         0.0.0.0           902
         0.0.0.0           907
         0.0.0.0           908
         0.0.0.0           912
         0.0.0.0          1010
         0.0.0.0         32791
         0.0.0.0         32795
         0.0.0.0         32796
         0.0.0.0         32797
     10.0.24.167           500
       127.0.0.1           901
       127.0.0.1           920
 192.168.164.223           137
 192.168.164.223           500

3.3.13 UDP Information

To view the UDP information of the Location gateway, you would poll mib-2.udp.

Sample Poll Result:

udp.udpInDatagrams.0 = Counter32: 6757
udp.udpNoPorts.0 = Counter32: 106
udp.udpInErrors.0 = Counter32: 0
udp.udpOutDatagrams.0 = Counter32: 6371

3.3.14 ICMP Information

To view the ICMP information of the Location gateway, you would poll mib-2.icmp.

Sample Poll Result:

icmp.icmpInMsgs.0 = Counter32: 2445
icmp.icmpInErrors.0 = Counter32: 0
icmp.icmpInDestUnreachs.0 = Counter32: 111
icmp.icmpInTimeExcds.0 = Counter32: 0
icmp.icmpInParmProbs.0 = Counter32: 0
icmp.icmpInSrcQuenchs.0 = Counter32: 0
icmp.icmpInRedirects.0 = Counter32: 0
icmp.icmpInEchos.0 = Counter32: 1287
icmp.icmpInEchoReps.0 = Counter32: 1047
icmp.icmpInTimestamps.0 = Counter32: 0
icmp.icmpInTimestampReps.0 = Counter32: 0
icmp.icmpInAddrMasks.0 = Counter32: 0
icmp.icmpInAddrMaskReps.0 = Counter32: 0
icmp.icmpOutMsgs.0 = Counter32: 1423
icmp.icmpOutErrors.0 = Counter32: 0
icmp.icmpOutDestUnreachs.0 = Counter32: 136
icmp.icmpOutTimeExcds.0 = Counter32: 0
icmp.icmpOutParmProbs.0 = Counter32: 0
icmp.icmpOutSrcQuenchs.0 = Counter32: 0
icmp.icmpOutRedirects.0 = Counter32: 0
icmp.icmpOutEchos.0 = Counter32: 0
icmp.icmpOutEchoReps.0 = Counter32: 1287
icmp.icmpOutTimestamps.0 = Counter32: 0
icmp.icmpOutTimestampReps.0 = Counter32: 0
icmp.icmpOutAddrMasks.0 = Counter32: 0
icmp.icmpOutAddrMaskReps.0 = Counter 32: 0