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?

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