PERFORCE change 166661 for review

Gabor Pali pgj at FreeBSD.org
Mon Jul 27 22:05:54 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=166661

Change 166661 by pgj at petymeg-current on 2009/07/27 22:05:13

	Add support for PIM statistics.

Affected files ...

.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#38 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#36 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#6 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#42 edit

Differences ...

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#38 (text+ko) ====

@@ -120,6 +120,7 @@
     stat_CARP,
     stat_IP,
     stat_ICMP,
+    stat_PIM,
     stat_MAX,
     stat_Invalid,
 };
@@ -150,6 +151,7 @@
 struct carp_stat;
 struct ip_stat;
 struct icmp_stat;
+struct pim_stat;
 
 __BEGIN_DECLS
 const char		    *netstat_strerror(int);
@@ -521,4 +523,18 @@
 u_int64_t   netstat_icmps_get_noroute(const struct icmp_stat *);
 const char  *netstat_icmpname(int);
 int	    netstat_icmp_get_maskrepl(void *kvm_handle);
+
+const struct pim_stat	*netstat_get_pimstats(const struct stat_type *);
+
+u_int64_t   netstat_pims_get_rcv_total_msgs(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_total_bytes(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_tooshort(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_badsum(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_badversion(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_registers_msgs(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_registers_bytes(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_registers_wrongiif(const struct pim_stat *);
+u_int64_t   netstat_pims_get_rcv_badregisters(const struct pim_stat *);
+u_int64_t   netstat_pims_get_snd_registers_msgs(const struct pim_stat *);
+u_int64_t   netstat_pims_get_snd_registers_bytes(const struct pim_stat *);
 #endif /* !_NETSTAT_H_ */

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#36 (text+ko) ====

@@ -47,6 +47,7 @@
 #include <netinet/ip_carp.h>
 #include <netinet/ip_icmp.h>
 #include <netinet/icmp_var.h>
+#include <netinet/pim_var.h>
 
 #include "netstat.h"
 
@@ -304,6 +305,10 @@
 	struct icmpstat	s;
 };
 
+struct pim_stat {
+	struct pimstat	s;
+};
+
 int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size);
 int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen);
 

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#6 (text+ko) ====

@@ -62,6 +62,7 @@
 	{ CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" },
 	{ IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" },
 	{ ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" },
+	{ PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" },
 };
 
 int

==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#42 (text+ko) ====

@@ -2278,6 +2278,80 @@
 	return (isp->s.icps_noroute);
 }
 
+const struct pim_stat *
+netstat_get_pimstats(const struct stat_type *sttp)
+{
+	if (sttp->stt_type == stat_PIM) {
+		return ((const struct pim_stat *) sttp->stt_data);
+	}
+	return (NULL);
+}
+
+u_int64_t
+netstat_pims_get_rcv_total_msgs(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_total_msgs);
+}
+
+u_int64_t
+netstat_pims_get_rcv_total_bytes(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_total_bytes);
+}
+
+u_int64_t
+netstat_pims_get_rcv_tooshort(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_tooshort);
+}
+
+u_int64_t
+netstat_pims_get_rcv_badsum(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_badsum);
+}
+
+u_int64_t
+netstat_pims_get_rcv_badversion(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_badversion);
+}
+
+u_int64_t
+netstat_pims_get_rcv_registers_msgs(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_registers_msgs);
+}
+
+u_int64_t
+netstat_pims_get_rcv_registers_bytes(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_registers_bytes);
+}
+
+u_int64_t
+netstat_pims_get_rcv_registers_wrongiif(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_registers_wrongiif);
+}
+
+u_int64_t
+netstat_pims_get_rcv_badregisters(const struct pim_stat *psp)
+{
+	return (psp->s.pims_rcv_badregisters);
+}
+
+u_int64_t
+netstat_pims_get_snd_registers_msgs(const struct pim_stat *psp)
+{
+	return (psp->s.pims_snd_registers_msgs);
+}
+
+u_int64_t
+netstat_pims_get_snd_registers_bytes(const struct pim_stat *psp)
+{
+	return (psp->s.pims_snd_registers_bytes);
+}
 
 
 static	const char *icmpnames[ICMP_MAXTYPE + 1] = {


More information about the p4-projects mailing list