> On 4 Sep 2023, at 16:19, Alexander Bluhm <alexander.bl...@gmx.net> wrote:
> 
> Hi,
> 
> Variable scs_use is basically counting packet insertions to syn
> cache, so I would prefer type long to exclude overflow on fast
> machines.  With the current limits int should be enough, but long
> does not hurt.
> 
> It can be negative as it starts at a positive limit and counts
> backwards.  After all entries in the current syn cache have been
> timed out, it is reset to positive limit.  If timeout takes a while,
> it may get well below zero.
> 
> To prevent netstat output like this
>        18446744073709531826 uses of current SYN cache left
> make tcps_sc_uses_left signed and print it as long long integer.
> 
> ok?
> 

Does the negative value output makes sense? If not, could you
prevent negative value output too?

> bluhm
> 
> Index: sys/netinet/tcp_var.h
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/tcp_var.h,v
> retrieving revision 1.170
> diff -u -p -r1.170 tcp_var.h
> --- sys/netinet/tcp_var.h     28 Aug 2023 14:50:02 -0000      1.170
> +++ sys/netinet/tcp_var.h     4 Sep 2023 13:02:40 -0000
> @@ -288,9 +288,9 @@ struct syn_cache_head {
> 
> struct syn_cache_set {
>       struct          syn_cache_head *scs_buckethead;
> +     long            scs_use;
>       int             scs_size;
>       int             scs_count;
> -     int             scs_use;
>       u_int32_t       scs_random[5];
> };
> 
> @@ -430,7 +430,7 @@ struct    tcpstat {
>       u_int64_t tcps_sc_entry_limit;  /* limit of syn cache entries */
>       u_int64_t tcps_sc_bucket_maxlen;/* maximum # of entries in any bucket */
>       u_int64_t tcps_sc_bucket_limit; /* limit of syn cache bucket list */
> -     u_int64_t tcps_sc_uses_left;    /* use counter of current syn cache */
> +     int64_t tcps_sc_uses_left;      /* use counter of current syn cache */
> 
>       u_int64_t tcps_conndrained;     /* # of connections drained */
> 
> Index: usr.bin/netstat/inet.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/usr.bin/netstat/inet.c,v
> retrieving revision 1.178
> diff -u -p -r1.178 inet.c
> --- usr.bin/netstat/inet.c    7 Jul 2023 09:15:13 -0000       1.178
> +++ usr.bin/netstat/inet.c    4 Sep 2023 12:51:01 -0000
> @@ -498,7 +498,7 @@ tcp_stats(char *name)
>           "\t%llu entr%s in current SYN cache, limit is %llu\n");
>       p2b(tcps_sc_bucket_maxlen, tcps_sc_bucket_limit,
>           "\t%llu longest bucket length in current SYN cache, limit is 
> %llu\n");
> -     p(tcps_sc_uses_left, "\t%llu use%s of current SYN cache left\n");
> +     p(tcps_sc_uses_left, "\t%lld use%s of current SYN cache left\n");
> 
>       p(tcps_sack_recovery_episode, "\t%llu SACK recovery episode%s\n");
>       p(tcps_sack_rexmits,
> 

Reply via email to