- if (version == 3 && ND_TTEST2(bp[0], len)) {
- uint16_t cksum = nextproto4_cksum(ndo, (struct ip *)bp2, bp,
- len, len, IPPROTO_VRRP);
+ if (version == 3 && ND_TTEST_LEN(bp, len)) {
+ uint16_t cksum;
+
+ if (ver == 4)
+ cksum = nextproto4_cksum(ndo, (const struct ip *)bp2, bp,
+ len, len, IPPROTO_VRRP);
+ else
+ cksum = nextproto6_cksum(ndo, (const struct ip6_hdr *)bp2, bp,
+ len, len, IPPROTO_VRRP);