CVSROOT: /cvs Module name: src Changes by: bl...@cvs.openbsd.org 2023/07/07 02:05:02
Modified files: sys/net : if.c if_var.h pf.c sys/netinet : ip_output.c sys/netinet6 : ip6_forward.c ip6_output.c Log message: Fix path MTU discovery for TCP LRO/TSO when forwarding. When doing LRO (Large Receive Offload), the drivers, currently ix(4) and lo(4) only, record an upper bound of the size of the original packets in ph_mss. When sending, either stack or hardware must chop the packets with TSO (TCP Segmentation Offload) to that size. That means we have to call tcp_if_output_tso() before ifp->if_output(). Put that logic into if_output_tso() to avoid code duplication. As TCP packets on the wire do not get larger that way, path MTU discovery should still work. tested by and OK jan@