Index: data_gatherers/orcallator/orcallator.cfg.in =================================================================== --- data_gatherers/orcallator/orcallator.cfg.in (revision 530) +++ data_gatherers/orcallator/orcallator.cfg.in (working copy) @@ -601,6 +601,36 @@ } plot { +title %g UDP datagram rate +source orcallator +data udpInDatagrams +data udpOutDatagrams +data_type counter +line_type area +line_type line1 +legend Input +legend Output +y_legend Datagrams/s +data_min 0 +} + +plot { +title %g UDP drop rate +source orcallator +data udpInOverflows +data udpInCksumErrs +data udpNoPorts +data udpInErrors +data_type counter +legend Queue overflow +legend Checksum errors +legend No port +legend Not deliverable +y_legend Drops/s +data_min 0 +} + +plot { title %g Sleeps on Mutex Rate source orcallator data smtx Index: data_gatherers/orcallator/orcallator.se =================================================================== --- data_gatherers/orcallator/orcallator.se (revision 530) +++ data_gatherers/orcallator/orcallator.se (working copy) @@ -35,6 +35,7 @@ #define WATCH_MUTEX 1 #define WATCH_NET 1 #define WATCH_TCP 1 +#define WATCH_UDP 1 #define WATCH_NFS_CLIENT 1 #define WATCH_NFS_SERVER 1 #define WATCH_MOUNTS 1 @@ -217,6 +218,12 @@ tcp tcp$tcp; tcp tmp_tcp; #endif +#ifdef WATCH_UDP +mib2_ip_t mib$ip; +mib2_ip_t tmp_mib_ip; +mib2_udp_t mib$udp; +mib2_udp_t tmp_mib_udp; +#endif #ifdef WATCH_PAGES ks_system_pages kstat$pages; ks_system_pages tmp_kstat_pages; @@ -770,6 +777,7 @@ fprintf(stderr, " -DWATCH_MUTEX watch the number of mutex spins\n"); fprintf(stderr, " -DWATCH_NET watch all Ethernet interfaces\n"); fprintf(stderr, " -DWATCH_TCP watch all the TCP/IP stack\n"); + fprintf(stderr, " -DWATCH_UDP watch all the UDP/IP stack\n"); fprintf(stderr, " -DWATCH_NFS_CLIENT watch NFS client requests\n"); fprintf(stderr, " -DWATCH_NFS_SERVER watch NFS server requests\n"); fprintf(stderr, " -DWATCH_MOUNTS watch usage of mount points\n"); @@ -945,6 +953,10 @@ #ifdef WATCH_TCP tmp_tcp = tcp$tcp; #endif +#ifdef WATCH_UDP + tmp_mib_ip = mib$ip; + tmp_mib_udp = mib$udp; +#endif #if defined (USE_KSTAT_IO) && (defined (WATCH_DISK) || defined (WATCH_TAPE)) orca_io_info_update(); @@ -1006,6 +1018,11 @@ measure_tcp(); #endif + // Take care of UDP/IP. +#ifdef WATCH_UDP + measure_udp(); +#endif + // Take care of NFS client statistics. #ifdef WATCH_NFS_CLIENT measure_nfs_client(); @@ -1368,6 +1385,18 @@ } #endif +#ifdef WATCH_UDP +measure_udp() +{ + put_output("udpNoPorts", sprintf("%8lu", tmp_mib_ip.udpNoPorts)); + put_output("udpInOverflows", sprintf("%8lu", tmp_mib_ip.udpInOverflows)); + put_output("udpInCksumErrs", sprintf("%8lu", tmp_mib_ip.udpInCksumErrs)); + put_output("udpInDatagrams", sprintf("%8lu", tmp_mib_udp.udpInDatagrams)); + put_output("udpInErrors", sprintf("%8lu", tmp_mib_udp.udpInErrors)); + put_output("udpOutDatagrams", sprintf("%8lu", tmp_mib_udp.udpOutDatagrams)); +} +#endif + #ifdef WATCH_NFS_CLIENT measure_nfs_client() {