Date: Tue, 28 Jul 2009 18:58:43 GMT From: Gabor Pali <pgj@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 166688 for review Message-ID: <200907281858.n6SIwh7g019749@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=166688 Change 166688 by pgj@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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907281858.n6SIwh7g019749>
