From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from gandalf.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) by passt.top (Postfix) with ESMTPS id 192475A0279 for ; Wed, 6 Mar 2024 06:34:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202312; t=1709703270; bh=nQYevI0HXfdAhRaFc4zkndSseGszOtuU4iWyPgXHabk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a+W9mP88TlimyXpaoeT+ZVI9QbL7HTh+sSRMlKImHNhr+t+ocIvo4EGAbH9+s5cCL i5+u5yHLIruZrh1K8b8v6z86iuqwm8q0eJiqZhaJTvaJcCx4SDTglzE75goa6Mtf0k zJV+/bH/dVIqkjSV/tqHj7fZutjLYIMR864Jvs7grwlYsT8d3Lty+P1diODGZaR7lp 0rMa1LTMem9WLkg+BdS2LUn7uaD2J6EBNcMz6ZSM28hMeiK77Q9vOrP4lL4Tmshjl4 JuuHjoLqq9Evwf2P7bN5iJLqNUyNBuDWiBPW/wOhVB+oukbOVAwjJjp0K6qeFiM39D fBkOXXfey+9+Q== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4TqLj24Lnpz4wx5; Wed, 6 Mar 2024 16:34:30 +1100 (AEDT) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH v2 6/6] udp: Use existing helper for UDP checksum on inbound IPv6 packets Date: Wed, 6 Mar 2024 16:34:28 +1100 Message-ID: <20240306053428.1176129-7-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240306053428.1176129-1-david@gibson.dropbear.id.au> References: <20240306053428.1176129-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: 5DD3MCECZD5OV7XL6KMZAH2JSMSBCZRF X-Message-ID-Hash: 5DD3MCECZD5OV7XL6KMZAH2JSMSBCZRF X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Currently we open code the calculation of the UDP checksum in udp_update_hdr6(). We calling a helper to handle the IPv6 pseudo-header, and preset the checksum field to 0 so an uninitialised value doesn't get folded in. We already have a helper to do this: csum_udp6() which we use in some slow paths. Use it here as well. Signed-off-by: David Gibson --- udp.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/udp.c b/udp.c index fe3a6cd8..45b7cc96 100644 --- a/udp.c +++ b/udp.c @@ -671,10 +671,7 @@ static size_t udp_update_hdr6(const struct ctx *c, struct udp6_l2_buf_t *b, b->uh.source = b->s_in6.sin6_port; b->uh.dest = htons(dstport); b->uh.len = b->ip6h.payload_len; - b->uh.check = 0; - b->uh.check = csum(&b->uh, payload_len, - proto_ipv6_header_psum(payload_len, IPPROTO_UDP, - src, dst)); + csum_udp6(&b->uh, src, dst, b->data, datalen); return tap_iov_len(c, &b->taph, payload_len + sizeof(b->ip6h)); } -- 2.44.0