From e289d287c6594156cb02f32e64fe8def75fd1cac Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Wed, 6 Mar 2024 16:58:32 +1100 Subject: checksum: add csum_iov() Introduce the function csum_unfolded() that computes the unfolded 32-bit checksum of a data buffer, and call it from csum() that returns the folded value. Introduce csum_iov() that computes the checksum using csum_folded() on all vectors of the iovec array and returns the folded result. Signed-off-by: Laurent Vivier Reviewed-by: David Gibson Message-ID: <20240303135114.1023026-4-lvivier@redhat.com> [dwg: Fixed trivial cppcheck & clang-tidy regressions] Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- checksum.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'checksum.h') diff --git a/checksum.h b/checksum.h index 21c0310..cb80ab3 100644 --- a/checksum.h +++ b/checksum.h @@ -17,13 +17,15 @@ void csum_ip4_header(struct iphdr *ip4h); void csum_udp4(struct udphdr *udp4hr, struct in_addr saddr, struct in_addr daddr, const void *payload, size_t len); -void csum_icmp4(struct icmphdr *ih, const void *payload, size_t len); +void csum_icmp4(struct icmphdr *icmp4hr, const void *payload, size_t len); void csum_udp6(struct udphdr *udp6hr, const struct in6_addr *saddr, const struct in6_addr *daddr, const void *payload, size_t len); void csum_icmp6(struct icmp6hdr *icmp6hr, const struct in6_addr *saddr, const struct in6_addr *daddr, const void *payload, size_t len); +uint32_t csum_unfolded(const void *buf, size_t len, uint32_t init); uint16_t csum(const void *buf, size_t len, uint32_t init); +uint16_t csum_iov(const struct iovec *iov, size_t n, uint32_t init); #endif /* CHECKSUM_H */ -- cgit v1.2.3