PERFORCE change 166868 for review
Gabor Pali
pgj at FreeBSD.org
Fri Jul 31 20:23:58 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=166868
Change 166868 by pgj at petymeg-current on 2009/07/31 20:23:53
Add header for IP6 statistics.
Affected files ...
.. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_input.c#2 edit
.. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_var.h#2 edit
Differences ...
==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_input.c#2 (text+ko) ====
@@ -131,6 +131,11 @@
#ifdef VIMAGE_GLOBALS
static int ip6qmaxlen;
struct in6_ifaddr *in6_ifaddr;
+
+struct stat_header ip6stat_header = {
+ .sth_version = IP6STAT_VERSION,
+ .sth_len = sizeof(struct ip6stat)
+};
struct ip6stat ip6stat;
extern struct callout in6_tmpaddrtimer_ch;
==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_var.h#2 (text+ko) ====
@@ -180,38 +180,40 @@
* Control options for incoming packets
*/
+#define IP6STAT_VERSION 0x00000001
+
struct ip6stat {
- u_quad_t ip6s_total; /* total packets received */
- u_quad_t ip6s_tooshort; /* packet too short */
- u_quad_t ip6s_toosmall; /* not enough data */
- u_quad_t ip6s_fragments; /* fragments received */
- u_quad_t ip6s_fragdropped; /* frags dropped(dups, out of space) */
- u_quad_t ip6s_fragtimeout; /* fragments timed out */
- u_quad_t ip6s_fragoverflow; /* fragments that exceeded limit */
- u_quad_t ip6s_forward; /* packets forwarded */
- u_quad_t ip6s_cantforward; /* packets rcvd for unreachable dest */
- u_quad_t ip6s_redirectsent; /* packets forwarded on same net */
- u_quad_t ip6s_delivered; /* datagrams delivered to upper level*/
- u_quad_t ip6s_localout; /* total ip packets generated here */
- u_quad_t ip6s_odropped; /* lost packets due to nobufs, etc. */
- u_quad_t ip6s_reassembled; /* total packets reassembled ok */
- u_quad_t ip6s_fragmented; /* datagrams successfully fragmented */
- u_quad_t ip6s_ofragments; /* output fragments created */
- u_quad_t ip6s_cantfrag; /* don't fragment flag was set, etc. */
- u_quad_t ip6s_badoptions; /* error in option processing */
- u_quad_t ip6s_noroute; /* packets discarded due to no route */
- u_quad_t ip6s_badvers; /* ip6 version != 6 */
- u_quad_t ip6s_rawout; /* total raw ip packets generated */
- u_quad_t ip6s_badscope; /* scope error */
- u_quad_t ip6s_notmember; /* don't join this multicast group */
- u_quad_t ip6s_nxthist[256]; /* next header history */
- u_quad_t ip6s_m1; /* one mbuf */
- u_quad_t ip6s_m2m[32]; /* two or more mbuf */
- u_quad_t ip6s_mext1; /* one ext mbuf */
- u_quad_t ip6s_mext2m; /* two or more ext mbuf */
- u_quad_t ip6s_exthdrtoolong; /* ext hdr are not continuous */
- u_quad_t ip6s_nogif; /* no match gif found */
- u_quad_t ip6s_toomanyhdr; /* discarded due to too many headers */
+ u_int64_t ip6s_total; /* total packets received */
+ u_int64_t ip6s_tooshort; /* packet too short */
+ u_int64_t ip6s_toosmall; /* not enough data */
+ u_int64_t ip6s_fragments; /* fragments received */
+ u_int64_t ip6s_fragdropped; /* frags dropped(dups, out of space) */
+ u_int64_t ip6s_fragtimeout; /* fragments timed out */
+ u_int64_t ip6s_fragoverflow; /* fragments that exceeded limit */
+ u_int64_t ip6s_forward; /* packets forwarded */
+ u_int64_t ip6s_cantforward; /* packets rcvd for unreachable dest */
+ u_int64_t ip6s_redirectsent; /* packets forwarded on same net */
+ u_int64_t ip6s_delivered; /* datagrams delivered to upper level*/
+ u_int64_t ip6s_localout; /* total ip packets generated here */
+ u_int64_t ip6s_odropped; /* lost packets due to nobufs, etc. */
+ u_int64_t ip6s_reassembled; /* total packets reassembled ok */
+ u_int64_t ip6s_fragmented; /* datagrams successfully fragmented */
+ u_int64_t ip6s_ofragments; /* output fragments created */
+ u_int64_t ip6s_cantfrag; /* don't fragment flag was set, etc. */
+ u_int64_t ip6s_badoptions; /* error in option processing */
+ u_int64_t ip6s_noroute; /* packets discarded due to no route */
+ u_int64_t ip6s_badvers; /* ip6 version != 6 */
+ u_int64_t ip6s_rawout; /* total raw ip packets generated */
+ u_int64_t ip6s_badscope; /* scope error */
+ u_int64_t ip6s_notmember; /* don't join this multicast group */
+ u_int64_t ip6s_nxthist[256]; /* next header history */
+ u_int64_t ip6s_m1; /* one mbuf */
+ u_int64_t ip6s_m2m[32]; /* two or more mbuf */
+ u_int64_t ip6s_mext1; /* one ext mbuf */
+ u_int64_t ip6s_mext2m; /* two or more ext mbuf */
+ u_int64_t ip6s_exthdrtoolong; /* ext hdr are not continuous */
+ u_int64_t ip6s_nogif; /* no match gif found */
+ u_int64_t ip6s_toomanyhdr; /* discarded due to too many headers */
/*
* statistics for improvement of the source address selection
@@ -219,26 +221,26 @@
* XXX: hardcoded 16 = # of ip6 multicast scope types + 1
*/
/* number of times that address selection fails */
- u_quad_t ip6s_sources_none;
+ u_int64_t ip6s_sources_none;
/* number of times that an address on the outgoing I/F is chosen */
- u_quad_t ip6s_sources_sameif[16];
+ u_int64_t ip6s_sources_sameif[16];
/* number of times that an address on a non-outgoing I/F is chosen */
- u_quad_t ip6s_sources_otherif[16];
+ u_int64_t ip6s_sources_otherif[16];
/*
* number of times that an address that has the same scope
* from the destination is chosen.
*/
- u_quad_t ip6s_sources_samescope[16];
+ u_int64_t ip6s_sources_samescope[16];
/*
* number of times that an address that has a different scope
* from the destination is chosen.
*/
- u_quad_t ip6s_sources_otherscope[16];
+ u_int64_t ip6s_sources_otherscope[16];
/* number of times that a deprecated address is chosen */
- u_quad_t ip6s_sources_deprecated[16];
+ u_int64_t ip6s_sources_deprecated[16];
/* number of times that each rule of source selection is applied. */
- u_quad_t ip6s_sources_rule[16];
+ u_int64_t ip6s_sources_rule[16];
};
#ifdef _KERNEL
@@ -292,6 +294,7 @@
#endif
#ifdef VIMAGE_GLOBALS
+extern struct stat_header ip6stat_header;
extern struct ip6stat ip6stat; /* statistics */
extern int ip6_defhlim; /* default hop limit */
extern int ip6_defmcasthlim; /* default multicast hop limit */
More information about the p4-projects
mailing list