PERFORCE change 166688 for review

Gabor Pali pgj at FreeBSD.org
Tue Jul 28 18:58:46 UTC 2009


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

Change 166688 by pgj at petymeg-current on 2009/07/28 18:58:23

	Add support for IGMP stats.

Affected files ...

.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#39 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#37 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#7 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#43 edit

Differences ...

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

@@ -121,6 +121,7 @@
     stat_IP,
     stat_ICMP,
     stat_PIM,
+    stat_IGMP,
     stat_MAX,
     stat_Invalid,
 };
@@ -152,6 +153,7 @@
 struct ip_stat;
 struct icmp_stat;
 struct pim_stat;
+struct igmp_stat;
 
 __BEGIN_DECLS
 const char		    *netstat_strerror(int);
@@ -537,4 +539,23 @@
 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 *);
+
+const struct igmp_stat	*netstat_get_igmpstats(const struct stat_type *);
+
+u_int64_t   netstat_igmps_get_rcv_total(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_tooshort(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_badttl(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_badsum(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_v1v2_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_v3_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_badqueries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_gen_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_group_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_gsr_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_drop_gsr_queries(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_reports(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_badreports(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_ourreports(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_rcv_nora(const struct igmp_stat *);
+u_int64_t   netstat_igmps_get_snd_reports(const struct igmp_stat *);
 #endif /* !_NETSTAT_H_ */

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

@@ -48,6 +48,7 @@
 #include <netinet/ip_icmp.h>
 #include <netinet/icmp_var.h>
 #include <netinet/pim_var.h>
+#include <netinet/igmp_var.h>
 
 #include "netstat.h"
 
@@ -309,6 +310,10 @@
 	struct pimstat	s;
 };
 
+struct igmp_stat {
+	struct igmpstat	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#7 (text+ko) ====

@@ -63,6 +63,7 @@
 	{ IPSTAT_VERSION, "net.inet.ip.stats", "_ipstat" },
 	{ ICMPSTAT_VERSION, "net.inet.icmp.stats", "_icmpstat" },
 	{ PIMSTAT_VERSION, "net.inet.pim.stats", "_pimstat" },
+	{ IGMPSTAT_VERSION, "net.inet.igmp.stats", "_igmpstat" },
 };
 
 int

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

@@ -2353,6 +2353,111 @@
 	return (psp->s.pims_snd_registers_bytes);
 }
 
+const struct igmp_stat *
+netstat_get_igmpstats(const struct stat_type *sttp)
+{
+	if (sttp->stt_type == stat_IGMP) {
+		return ((const struct igmp_stat *) sttp->stt_data);
+	}
+	return (NULL);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_total(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_total);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_tooshort(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_tooshort);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_badttl(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_badttl);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_badsum(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_badsum);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_v1v2_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_v1v2_queries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_v3_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_v3_queries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_badqueries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_badqueries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_gen_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_gen_queries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_group_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_group_queries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_gsr_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_gsr_queries);
+}
+
+u_int64_t
+netstat_igmps_get_drop_gsr_queries(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_drop_gsr_queries);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_reports(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_reports);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_badreports(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_badreports);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_ourreports(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_ourreports);
+}
+
+u_int64_t
+netstat_igmps_get_rcv_nora(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_rcv_nora);
+}
+
+u_int64_t
+netstat_igmps_get_snd_reports(const struct igmp_stat *isp)
+{
+	return (isp->s.igps_snd_reports);
+}
+
 
 static	const char *icmpnames[ICMP_MAXTYPE + 1] = {
 	"echo reply",			/* RFC 792 */


More information about the p4-projects mailing list