On Fri, Jul 07, 2023 at 11:48:13AM +0300, Alexander Bluhm wrote: > Hi, > > When we preserve M_TCP_TSO we also must keep ph_mss. In lo(4) > LRO/TSO this logic was missing. As this may be relevant only for > weird pf configs that forward from loopback and ifconfig tcplro is > disabled by default, it is not relevant yet. > > ok? >
ok mvs@ > bluhm > > Index: net/if.c > =================================================================== > RCS file: /cvs/src/sys/net/if.c,v > retrieving revision 1.705 > diff -u -p -r1.705 if.c > --- net/if.c 7 Jul 2023 08:05:02 -0000 1.705 > +++ net/if.c 7 Jul 2023 08:47:21 -0000 > @@ -782,6 +782,7 @@ int > if_input_local(struct ifnet *ifp, struct mbuf *m, sa_family_t af) > { > int keepflags, keepcksum; > + uint16_t keepmss; > > #if NBPFILTER > 0 > /* > @@ -807,9 +808,11 @@ if_input_local(struct ifnet *ifp, struct > keepcksum = m->m_pkthdr.csum_flags & (M_IPV4_CSUM_OUT | > M_TCP_CSUM_OUT | M_UDP_CSUM_OUT | M_ICMP_CSUM_OUT | > M_TCP_TSO); > + keepmss = m->m_pkthdr.ph_mss; > m_resethdr(m); > m->m_flags |= M_LOOP | keepflags; > m->m_pkthdr.csum_flags = keepcksum; > + m->m_pkthdr.ph_mss = keepmss; > m->m_pkthdr.ph_ifidx = ifp->if_index; > m->m_pkthdr.ph_rtableid = ifp->if_rdomain; > >