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;
>  
> 

Reply via email to