Re: struct ipipstat: use 64 bits counters

2017-02-20 Thread Alexander Bluhm
On Mon, Feb 20, 2017 at 04:30:31PM +0100, Jeremie Courreges-Anglas wrote:
> Jeremie Courreges-Anglas  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 -  1.6
> > +++ sys/netinet/ip_ipip.h   10 Feb 2017 15:48:13 -
> > @@ -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_TTL0
> > 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 -   1.154
> > +++ usr.bin/netstat/inet.c  10 Feb 2017 15:39:13 -
> > @@ -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



Re: struct ipipstat: use 64 bits counters

2017-02-20 Thread Jeremie Courreges-Anglas
Jeremie Courreges-Anglas  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

> 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 -  1.6
> +++ sys/netinet/ip_ipip.h 10 Feb 2017 15:48:13 -
> @@ -43,18 +43,17 @@
>   * Not quite all the functionality of RFC-1853, but the main idea is there.
>   */
>  
> -struct ipipstat
> -{
> -u_int32_tipips_ipackets; /* total input packets */
> -u_int32_tipips_opackets; /* total output packets */
> -u_int32_tipips_hdrops;   /* packet shorter than header 
> shows */
> -u_int32_tipips_qfull;
> -u_int64_t   ipips_ibytes;
> -u_int64_t   ipips_obytes;
> -u_int32_tipips_pdrops;   /* packet dropped due to policy 
> */
> -u_int32_tipips_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_tipips_ipackets; /* total input packets */
> +u_int64_tipips_opackets; /* total output packets */
> +u_int64_tipips_hdrops;   /* packet shorter than header 
> shows */
> +u_int64_tipips_qfull;
> +u_int64_tipips_ibytes;
> +u_int64_tipips_obytes;
> +u_int64_tipips_pdrops;   /* packet dropped due to policy 
> */
> +u_int64_tipips_spoof;/* IP spoofing attempts */
> +u_int64_tipips_family;   /* Protocol family mismatch */
> +u_int64_tipips_unspec;/* Missing tunnel endpoint 
> address */
>  };
>  
>  #define IP4_DEFAULT_TTL0
> 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.c7 Feb 2017 18:18:16 -   1.154
> +++ usr.bin/netstat/inet.c10 Feb 2017 15:39:13 -
> @@ -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



struct ipipstat: use 64 bits counters

2017-02-10 Thread Jeremie Courreges-Anglas

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?


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 -  1.6
+++ sys/netinet/ip_ipip.h   10 Feb 2017 15:48:13 -
@@ -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_TTL0
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 -   1.154
+++ usr.bin/netstat/inet.c  10 Feb 2017 15:39:13 -
@@ -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