From owner-p4-projects@FreeBSD.ORG Mon Jul 27 18:32:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 40A471065673; Mon, 27 Jul 2009 18:32:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F12F8106566C for ; Mon, 27 Jul 2009 18:32:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DEEF38FC1A for ; Mon, 27 Jul 2009 18:32:57 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6RIWvWJ020382 for ; Mon, 27 Jul 2009 18:32:57 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6RIWvGK020380 for perforce@freebsd.org; Mon, 27 Jul 2009 18:32:57 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 27 Jul 2009 18:32:57 GMT Message-Id: <200907271832.n6RIWvGK020380@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 166641 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jul 2009 18:32:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=166641 Change 166641 by pgj@petymeg-current on 2009/07/27 18:32:28 Standardize IP statistics and add header. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_input.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_var.h#2 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_input.c#3 (text+ko) ==== @@ -84,6 +84,7 @@ #endif /* IPSEC */ #include +#include /* XXX: Temporary until ipfw_ether and ipfw_bridge are converted. */ #include @@ -112,6 +113,10 @@ struct in_ifaddrhead in_ifaddrhead; /* first inet address */ struct in_ifaddrhashhead *in_ifaddrhashtbl; /* inet addr hash table */ u_long in_ifaddrhmask; /* mask for hash table */ +struct stat_header ipstat_header = { + .sth_version = IPSTAT_VERSION, + .sth_len = sizeof(struct ipstat) +}; struct ipstat ipstat; static int ip_rsvp_on; struct socket *ip_rsvpd; @@ -180,6 +185,9 @@ SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_ip, IPCTL_STATS, stats, CTLFLAG_RW, ipstat, ipstat, "IP statistics (struct ipstat, netinet/ip_var.h)"); +SYSCTL_V_STRUCT(V_NET, vnet_inet, _net_inet_ip, OID_AUTO, stats_header, + CTLFLAG_RD, ipstat_header, stat_header, "IP statistics header"); + #ifdef VIMAGE_GLOBALS static uma_zone_t ipq_zone; #endif ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_var.h#2 (text+ko) ==== @@ -98,36 +98,38 @@ struct in_mfilter *imo_mfilters; /* source filters */ }; +#define IPSTAT_VERSION 0x00000001 + struct ipstat { - u_long ips_total; /* total packets received */ - u_long ips_badsum; /* checksum bad */ - u_long ips_tooshort; /* packet too short */ - u_long ips_toosmall; /* not enough data */ - u_long ips_badhlen; /* ip header length < data size */ - u_long ips_badlen; /* ip length < ip header length */ - u_long ips_fragments; /* fragments received */ - u_long ips_fragdropped; /* frags dropped (dups, out of space) */ - u_long ips_fragtimeout; /* fragments timed out */ - u_long ips_forward; /* packets forwarded */ - u_long ips_fastforward; /* packets fast forwarded */ - u_long ips_cantforward; /* packets rcvd for unreachable dest */ - u_long ips_redirectsent; /* packets forwarded on same net */ - u_long ips_noproto; /* unknown or unsupported protocol */ - u_long ips_delivered; /* datagrams delivered to upper level*/ - u_long ips_localout; /* total ip packets generated here */ - u_long ips_odropped; /* lost packets due to nobufs, etc. */ - u_long ips_reassembled; /* total packets reassembled ok */ - u_long ips_fragmented; /* datagrams successfully fragmented */ - u_long ips_ofragments; /* output fragments created */ - u_long ips_cantfrag; /* don't fragment flag was set, etc. */ - u_long ips_badoptions; /* error in option processing */ - u_long ips_noroute; /* packets discarded due to no route */ - u_long ips_badvers; /* ip version != 4 */ - u_long ips_rawout; /* total raw ip packets generated */ - u_long ips_toolong; /* ip length > max ip packet size */ - u_long ips_notmember; /* multicasts for unregistered grps */ - u_long ips_nogif; /* no match gif found */ - u_long ips_badaddr; /* invalid address on header */ + u_int64_t ips_total; /* total packets received */ + u_int64_t ips_badsum; /* checksum bad */ + u_int64_t ips_tooshort; /* packet too short */ + u_int64_t ips_toosmall; /* not enough data */ + u_int64_t ips_badhlen; /* ip header length < data size */ + u_int64_t ips_badlen; /* ip length < ip header length */ + u_int64_t ips_fragments; /* fragments received */ + u_int64_t ips_fragdropped; /* frags dropped (dups, out of space) */ + u_int64_t ips_fragtimeout; /* fragments timed out */ + u_int64_t ips_forward; /* packets forwarded */ + u_int64_t ips_fastforward; /* packets fast forwarded */ + u_int64_t ips_cantforward; /* packets rcvd for unreachable dest */ + u_int64_t ips_redirectsent; /* packets forwarded on same net */ + u_int64_t ips_noproto; /* unknown or unsupported protocol */ + u_int64_t ips_delivered; /* datagrams delivered to upper level*/ + u_int64_t ips_localout; /* total ip packets generated here */ + u_int64_t ips_odropped; /* lost packets due to nobufs, etc. */ + u_int64_t ips_reassembled; /* total packets reassembled ok */ + u_int64_t ips_fragmented; /* datagrams successfully fragmented */ + u_int64_t ips_ofragments; /* output fragments created */ + u_int64_t ips_cantfrag; /* don't fragment flag was set, etc. */ + u_int64_t ips_badoptions; /* error in option processing */ + u_int64_t ips_noroute; /* packets discarded due to no route */ + u_int64_t ips_badvers; /* ip version != 4 */ + u_int64_t ips_rawout; /* total raw ip packets generated */ + u_int64_t ips_toolong; /* ip length > max ip packet size */ + u_int64_t ips_notmember; /* multicasts for unregistered grps */ + u_int64_t ips_nogif; /* no match gif found */ + u_int64_t ips_badaddr; /* invalid address on header */ }; #ifdef _KERNEL