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@

Reply via email to