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