CVSROOT: /cvs Module name: src Changes by: bl...@cvs.openbsd.org 2023/05/22 10:08:34
Modified files: sys/netinet : ip_output.c sys/netinet6 : ip6_output.c Log message: Fix TSO for traffic to a local address on a physical interface. When sending TCP packets with software TSO to the local address of a physical interface, the TCP checksum was miscalculated. As the small MSS is taken from the physical interface, but the large MTU of the loopback interface is used, large TSO packets are generated, but sent directly to the loopback interface. There we need the regular pseudo header checksum and not the modified without packet length. To avoid this confusion, use the same decision for checksum generation in in_proto_cksum_out() as for using hardware TSO in tcp_if_output_tso(). bug reported and tested by robert@ bket@ Hrvoje Popovski OK claudio@ jan@