anyone?

On Fri, May 26, 2023 at 06:44:25PM +0200, Alexander Bluhm wrote:
> Hi,
> 
> in_ifcap_cksum() checks ifp == NULL
> in_hdr_cksum_out() sets ip_sum = 0
> in_proto_cksum_out() and in6_proto_cksum_out() always write
> th_sum if M_TCP_CSUM_OUT is set and proto is IPPROTO_TCP.
> 
> ok?
> 
> bluhm
> 
> Index: netinet/ip_output.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_output.c,v
> retrieving revision 1.388
> diff -u -p -r1.388 ip_output.c
> --- netinet/ip_output.c       22 May 2023 16:08:34 -0000      1.388
> +++ netinet/ip_output.c       26 May 2023 11:55:49 -0000
> @@ -1801,7 +1801,7 @@ in_hdr_cksum_out(struct mbuf *m, struct 
>       struct ip *ip = mtod(m, struct ip *);
>  
>       ip->ip_sum = 0;
> -     if (ifp && in_ifcap_cksum(m, ifp, IFCAP_CSUM_IPv4)) {
> +     if (in_ifcap_cksum(m, ifp, IFCAP_CSUM_IPv4)) {
>               SET(m->m_pkthdr.csum_flags, M_IPV4_CSUM_OUT);
>       } else {
>               ipstat_inc(ips_outswcsum);
> Index: netinet/tcp_output.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/tcp_output.c,v
> retrieving revision 1.138
> diff -u -p -r1.138 tcp_output.c
> --- netinet/tcp_output.c      15 May 2023 16:34:56 -0000      1.138
> +++ netinet/tcp_output.c      26 May 2023 15:19:12 -0000
> @@ -1295,7 +1295,6 @@ tcp_chopper(struct mbuf *m0, struct mbuf
>  
>               /* copy and adjust IP header, calculate checksum */
>               SET(m->m_pkthdr.csum_flags, M_TCP_CSUM_OUT);
> -             mhth->th_sum = 0;
>               if (ip) {
>                       struct ip *mhip;
>  
> @@ -1328,10 +1327,8 @@ tcp_chopper(struct mbuf *m0, struct mbuf
>       }
>       /* adjust IP header, calculate checksum */
>       SET(m0->m_pkthdr.csum_flags, M_TCP_CSUM_OUT);
> -     th->th_sum = 0;
>       if (ip) {
>               ip->ip_len = htons(m0->m_pkthdr.len);
> -             ip->ip_sum = 0;
>               in_hdr_cksum_out(m0, ifp);
>               in_proto_cksum_out(m0, ifp);
>       }

Reply via email to