CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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@