ok jmatthew@
On Tue, Jul 04, 2023 at 12:20:32PM +0300, Alexander Bluhm wrote:
> 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);
> > }
>