On Wed, Jun 02, 2021 at 11:09:13AM +1000, David Gwynne wrote:
> if a bridge checked the ipv4 checksum and it was good, we can avoid
> checking it again in ip_input.
> 
> ok?
> 

ok mvs@

> Index: ip_input.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet/ip_input.c,v
> retrieving revision 1.361
> diff -u -p -r1.361 ip_input.c
> --- ip_input.c        2 Jun 2021 00:09:57 -0000       1.361
> +++ ip_input.c        2 Jun 2021 01:07:35 -0000
> @@ -287,8 +287,8 @@ ipv4_check(struct ifnet *ifp, struct mbu
>               }
>       }
>  
> -     if ((m->m_pkthdr.csum_flags & M_IPV4_CSUM_IN_OK) == 0) {
> -             if (m->m_pkthdr.csum_flags & M_IPV4_CSUM_IN_BAD) {
> +     if (!ISSET(m->m_pkthdr.csum_flags, M_IPV4_CSUM_IN_OK)) {
> +             if (ISSET(m->m_pkthdr.csum_flags, M_IPV4_CSUM_IN_BAD)) {
>                       ipstat_inc(ips_badsum);
>                       goto bad;
>               }
> @@ -298,6 +298,8 @@ ipv4_check(struct ifnet *ifp, struct mbu
>                       ipstat_inc(ips_badsum);
>                       goto bad;
>               }
> +
> +             SET(m->m_pkthdr.csum_flags, M_IPV4_CSUM_IN_OK);
>       }
>  
>       /* Retrieve the packet length. */
> 

Reply via email to