X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fpackets.c;h=ace7d8ed51235608b471d283359da631e466879c;hb=37a8eee61b922f5e166355af6a62b67a90adc486;hp=6244c3f5fac85049a7788a32fb83639802ebb8ae;hpb=b08b678a16be5e054f0c36b3b5b1338827811c65;p=cascardo%2Fovs.git diff --git a/lib/packets.c b/lib/packets.c index 6244c3f5f..ace7d8ed5 100644 --- a/lib/packets.c +++ b/lib/packets.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "byte-order.h" #include "csum.h" @@ -714,6 +715,10 @@ packet_update_csum128(struct ofpbuf *packet, uint8_t proto, uh->udp_csum = htons(0xffff); } } + } else if (proto == IPPROTO_ICMPV6 && l4_size >= sizeof(struct icmp6_hdr)) { + struct icmp6_hdr *icmp = ofpbuf_l4(packet); + + icmp->icmp6_cksum = recalc_csum128(icmp->icmp6_cksum, addr, new_addr); } }