It's simpler to make two calls than eight.
Reported-by: Eelco Chaudron
Signed-off-by: Ben Pfaff
---
lib/packets.c | 12 ++--
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/lib/packets.c b/lib/packets.c
index 748418b..13a063a 100644
--- a/lib/packets.c
+++ b/lib/packets.c
@@ -1459,16 +1459,8 @@ packet_csum_pseudoheader6(const struct
ovs_16aligned_ip6_hdr *ip6)
{
uint32_t partial = 0;
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_src.be32[0])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_src.be32[1])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_src.be32[2])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_src.be32[3])));
-
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_dst.be32[0])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_dst.be32[1])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_dst.be32[2])));
-partial = csum_add32(partial, get_16aligned_be32(&(ip6->ip6_dst.be32[3])));
-
+partial = csum_continue(partial, >ip6_src, sizeof ip6->ip6_src);
+partial = csum_continue(partial, >ip6_dst, sizeof ip6->ip6_dst);
partial = csum_add16(partial, htons(ip6->ip6_nxt));
partial = csum_add16(partial, ip6->ip6_plen);
--
2.10.2
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev