Convert tcp_now() time counter to 64 bit.
authorbluhm <bluhm@openbsd.org>
Thu, 6 Jul 2023 09:15:23 +0000 (09:15 +0000)
committerbluhm <bluhm@openbsd.org>
Thu, 6 Jul 2023 09:15:23 +0000 (09:15 +0000)
commit9e96aff02fd3b9b2a5aeff4ca2926342e2d9ae15
tree43918ad1ab588b274c301b77c7237e161bc66df5
parent06b367b11b8bb6008a8685f8c7f84f5988f0f96e
Convert tcp_now() time counter to 64 bit.

After changing tcp now tick to milliseconds, 32 bits will wrap
around after 49 days of uptime.  That may be a problem in some
places of our stack.  Better use a 64 bit counter.

As timestamp option is 32 bit in TCP protocol, use the lower 32 bit
there.  There are casts to 32 bits that should behave correctly.

Start with random 63 bit offset to avoid uptime leakage.  2^63
milliseconds result in 2.9*10^8 years of possible uptime.

OK yasuoka@
sys/netinet/tcp_input.c
sys/netinet/tcp_output.c
sys/netinet/tcp_subr.c
sys/netinet/tcp_timer.c
sys/netinet/tcp_usrreq.c
sys/netinet/tcp_var.h