On Mon, Feb 20, 2017 at 04:30:31PM +0100, Jeremie Courreges-Anglas wrote:
> Jeremie Courreges-Anglas <[email protected]> writes:
>
> > Using a mix of 32 and 64 bits counters leads to an ugly conversion to
> > percpu counters. Why not move to 64 bits counters? struct ipipstat is
> > afaik only used by netstat and ports/shells/nsh (I can cook a fix for
> > the latter).
> >
> > ok?
>
> ping
OK bluhm@
>
> > Index: sys/netinet/ip_ipip.h
> > ===================================================================
> > RCS file: /d/cvs/src/sys/netinet/ip_ipip.h,v
> > retrieving revision 1.6
> > diff -u -p -r1.6 ip_ipip.h
> > --- sys/netinet/ip_ipip.h 14 Dec 2007 18:33:41 -0000 1.6
> > +++ sys/netinet/ip_ipip.h 10 Feb 2017 15:48:13 -0000
> > @@ -43,18 +43,17 @@
> > * Not quite all the functionality of RFC-1853, but the main idea is there.
> > */
> >
> > -struct ipipstat
> > -{
> > - u_int32_t ipips_ipackets; /* total input packets */
> > - u_int32_t ipips_opackets; /* total output packets */
> > - u_int32_t ipips_hdrops; /* packet shorter than header
> > shows */
> > - u_int32_t ipips_qfull;
> > - u_int64_t ipips_ibytes;
> > - u_int64_t ipips_obytes;
> > - u_int32_t ipips_pdrops; /* packet dropped due to policy
> > */
> > - u_int32_t ipips_spoof; /* IP spoofing attempts */
> > - u_int32_t ipips_family; /* Protocol family mismatch */
> > - u_int32_t ipips_unspec; /* Missing tunnel endpoint
> > address */
> > +struct ipipstat {
> > + u_int64_t ipips_ipackets; /* total input packets */
> > + u_int64_t ipips_opackets; /* total output packets */
> > + u_int64_t ipips_hdrops; /* packet shorter than header
> > shows */
> > + u_int64_t ipips_qfull;
> > + u_int64_t ipips_ibytes;
> > + u_int64_t ipips_obytes;
> > + u_int64_t ipips_pdrops; /* packet dropped due to policy
> > */
> > + u_int64_t ipips_spoof; /* IP spoofing attempts */
> > + u_int64_t ipips_family; /* Protocol family mismatch */
> > + u_int64_t ipips_unspec; /* Missing tunnel endpoint
> > address */
> > };
> >
> > #define IP4_DEFAULT_TTL 0
> > Index: usr.bin/netstat/inet.c
> > ===================================================================
> > RCS file: /d/cvs/src/usr.bin/netstat/inet.c,v
> > retrieving revision 1.154
> > diff -u -p -r1.154 inet.c
> > --- usr.bin/netstat/inet.c 7 Feb 2017 18:18:16 -0000 1.154
> > +++ usr.bin/netstat/inet.c 10 Feb 2017 15:39:13 -0000
> > @@ -1065,16 +1065,16 @@ ipip_stats(char *name)
> > #define p(f, m) if (ipipstat.f || sflag <= 1) \
> > printf(m, ipipstat.f, plural(ipipstat.f))
> >
> > - p(ipips_ipackets, "\t%u total input packet%s\n");
> > - p(ipips_opackets, "\t%u total output packet%s\n");
> > - p(ipips_hdrops, "\t%u packet%s shorter than header shows\n");
> > - p(ipips_pdrops, "\t%u packet%s dropped due to policy\n");
> > - p(ipips_spoof, "\t%u packet%s with possibly spoofed local addresses\n");
> > - p(ipips_qfull, "\t%u packet%s were dropped due to full output queue\n");
> > + p(ipips_ipackets, "\t%llu total input packet%s\n");
> > + p(ipips_opackets, "\t%llu total output packet%s\n");
> > + p(ipips_hdrops, "\t%llu packet%s shorter than header shows\n");
> > + p(ipips_pdrops, "\t%llu packet%s dropped due to policy\n");
> > + p(ipips_spoof, "\t%llu packet%s with possibly spoofed local
> > addresses\n");
> > + p(ipips_qfull, "\t%llu packet%s were dropped due to full output
> > queue\n");
> > p(ipips_ibytes, "\t%llu input byte%s\n");
> > p(ipips_obytes, "\t%llu output byte%s\n");
> > - p(ipips_family, "\t%u protocol family mismatche%s\n");
> > - p(ipips_unspec, "\t%u attempt%s to use tunnel with unspecified
> > endpoint(s)\n");
> > + p(ipips_family, "\t%llu protocol family mismatche%s\n");
> > + p(ipips_unspec, "\t%llu attempt%s to use tunnel with unspecified
> > endpoint(s)\n");
> > #undef p
> > }
>
>
> --
> jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE