CVSROOT: /cvs Module name: src Changes by: bl...@cvs.openbsd.org 2023/05/10 06:07:17
Modified files: sys/net : pf.c sys/netinet : in.h ip_output.c tcp_output.c tcp_subr.c tcp_usrreq.c tcp_var.h sys/netinet6 : ip6_output.c sys/sys : mbuf.h usr.bin/netstat: inet.c Log message: Implement TCP send offloading, for now in software only. This is meant as a fallback if network hardware does not support TSO. Driver support is still work in progress. TCP output generates large packets. In IP output the packet is chopped to TCP maximum segment size. This reduces the CPU cycles used by pf. The regular output could be assisted by hardware later, but pf route-to and IPsec needs the software fallback in general. For performance comparison or to workaround possible bugs, sysctl net.inet.tcp.tso=0 disables the feature. netstat -s -p tcp shows TSO counter with chopped and generated packets. based on work from jan@ tested by jmc@ jan@ Hrvoje Popovski OK jan@ claudio@