Use generic checksum calculation for TCP SYN+ACK packets.
authorbluhm <bluhm@openbsd.org>
Tue, 30 May 2023 19:32:57 +0000 (19:32 +0000)
committerbluhm <bluhm@openbsd.org>
Tue, 30 May 2023 19:32:57 +0000 (19:32 +0000)
commiteb45cfdb2f086f4326781f6af8406f5aa13f13e2
treed6cbc55e129e4725296863e560b59ec4b48bd5e6
parentc884b39a9b4c3c4c7a4874c3a3dac591f56fdfc7
Use generic checksum calculation for TCP SYN+ACK packets.

Our syn cache did checksum calculation by hand, instead of the
established mechanism in ip output.  The software-checksummed counter
increased once per incoming TCP connection.

Just set the flag M_TCP_CSUM_OUT in syn_cache_respond() and let
in_proto_cksum_out() do the work later.  Then hardware checksumming
is used where available.  Also remove redundant code.  The unhandled
af case is handled in the first switch statement of the function.

tested by Hrvoje Popovski; OK mvs@
sys/netinet/tcp_input.c