PERFORCE change 166629 for review

Gabor Pali pgj at FreeBSD.org
Mon Jul 27 16:08:19 UTC 2009


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

Change 166629 by pgj at petymeg-current on 2009/07/27 16:07:51

	Add support for CARP statistics.

Affected files ...

.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#35 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#33 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_stat.c#3 edit
.. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#39 edit

Differences ...

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

@@ -117,6 +117,7 @@
 enum stat {
     stat_TCP = 0,
     stat_UDP,
+    stat_CARP,
     stat_MAX,
     stat_Invalid,
 };
@@ -144,6 +145,7 @@
 struct stat_type;
 struct tcp_stat;
 struct udp_stat;
+struct carp_stat;
 
 __BEGIN_DECLS
 const char		    *netstat_strerror(int);
@@ -445,4 +447,23 @@
 u_int64_t   netstat_udps_get_fastout(const struct udp_stat *);
 u_int64_t   netstat_udps_get_noportmcast(const struct udp_stat *);
 u_int64_t   netstat_udps_get_filtermcast(const struct udp_stat *);
+
+const struct carp_stat	*netstat_get_carpstats(const struct stat_type *);
+
+u_int64_t   netstat_carps_get_ipackets(const struct carp_stat *);
+u_int64_t   netstat_carps_get_ipackets6(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badif(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badttl(const struct carp_stat *);
+u_int64_t   netstat_carps_get_hdrops(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badsum(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badver(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badlen(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badauth(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badvhid(const struct carp_stat *);
+u_int64_t   netstat_carps_get_badaddrs(const struct carp_stat *);
+u_int64_t   netstat_carps_get_opackets(const struct carp_stat *);
+u_int64_t   netstat_carps_get_opackets6(const struct carp_stat *);
+u_int64_t   netstat_carps_get_onomem(const struct carp_stat *);
+u_int64_t   netstat_carps_get_ostates(const struct carp_stat *);
+u_int64_t   netstat_carps_get_preempt(const struct carp_stat *);
 #endif /* !_NETSTAT_H_ */

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

@@ -44,6 +44,7 @@
 #include <netinet/tcp_var.h>
 #include <netinet/udp.h>
 #include <netinet/udp_var.h>
+#include <netinet/ip_carp.h>
 
 #include "netstat.h"
 
@@ -289,6 +290,10 @@
 	struct udpstat	s;
 };
 
+struct carp_stat {
+	struct carpstats    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#3 (text+ko) ====

@@ -35,6 +35,7 @@
 #include <netinet/tcp_var.h>
 #include <netinet/udp.h>
 #include <netinet/udp_var.h>
+#include <netinet/ip_carp.h>
 
 #include <err.h>
 #include <kvm.h>
@@ -56,6 +57,7 @@
 } stat_info [] = {
 	{ TCPSTAT_VERSION, "net.inet.tcp.stats", "_tcpstat" },
 	{ UDPSTAT_VERSION, "net.inet.udp.stats", "_udpstat" },
+	{ CARPSTAT_VERSION, "net.inet.carp.stats", "_carpstats" },
 };
 
 int

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

@@ -1893,6 +1893,111 @@
 	return (usp->s.udps_filtermcast);
 }
 
+const struct carp_stat *
+netstat_get_carpstats(const struct stat_type *sttp)
+{
+	if (sttp->stt_type == stat_CARP) {
+		return ((const struct carp_stat *) sttp->stt_data);
+	}
+	return (NULL);
+}
+
+u_int64_t
+netstat_carps_get_ipackets(const struct carp_stat *csp)
+{
+	return (csp->s.carps_ipackets);
+}
+
+u_int64_t
+netstat_carps_get_ipackets6(const struct carp_stat *csp)
+{
+	return (csp->s.carps_ipackets6);
+}
+
+u_int64_t
+netstat_carps_get_badif(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badif);
+}
+
+u_int64_t
+netstat_carps_get_badttl(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badttl);
+}
+
+u_int64_t
+netstat_carps_get_hdrops(const struct carp_stat *csp)
+{
+	return (csp->s.carps_hdrops);
+}
+
+u_int64_t
+netstat_carps_get_badsum(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badsum);
+}
+
+u_int64_t
+netstat_carps_get_badver(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badver);
+}
+
+u_int64_t
+netstat_carps_get_badlen(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badlen);
+}
+
+u_int64_t
+netstat_carps_get_badauth(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badauth);
+}
+
+u_int64_t
+netstat_carps_get_badvhid(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badvhid);
+}
+
+u_int64_t
+netstat_carps_get_badaddrs(const struct carp_stat *csp)
+{
+	return (csp->s.carps_badaddrs);
+}
+
+u_int64_t
+netstat_carps_get_opackets(const struct carp_stat *csp)
+{
+	return (csp->s.carps_opackets);
+}
+
+u_int64_t
+netstat_carps_get_opackets6(const struct carp_stat *csp)
+{
+	return (csp->s.carps_opackets6);
+}
+
+u_int64_t
+netstat_carps_get_onomem(const struct carp_stat *csp)
+{
+	return (csp->s.carps_onomem);
+}
+
+u_int64_t
+netstat_carps_get_ostates(const struct carp_stat *csp)
+{
+	return (csp->s.carps_ostates);
+}
+
+u_int64_t
+netstat_carps_get_preempt(const struct carp_stat *csp)
+{
+	return (csp->s.carps_preempt);
+}
+
 
 const char *
 routename(in_addr_t in, int numeric)


More information about the p4-projects mailing list