- register const struct ip6_frag *dp;
- register const struct ip6_hdr *ip6;
- register const u_char *ep;
-
-#if 0
-#define TCHECK(var) if ((u_char *)&(var) >= ep - sizeof(var)) goto trunc
-#endif
-
- dp = (struct ip6_frag *)bp;
- ip6 = (struct ip6_hdr *)bp2;
-
- /* 'ep' points to the end of avaible data. */
- ep = snapend;
-
- TCHECK(dp->ip6f_offlg);
-
- if (vflag) {
- printf("frag (0x%08x:%d|%ld)",
- (u_int32_t)ntohl(dp->ip6f_ident),
- ntohs(dp->ip6f_offlg & IP6F_OFF_MASK),
- sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen) -
- (long)(bp - bp2) - sizeof(struct ip6_frag));
+ const struct ip6_frag *dp;
+ const struct ip6_hdr *ip6;
+
+ ndo->ndo_protocol = "frag6";
+ dp = (const struct ip6_frag *)bp;
+ ip6 = (const struct ip6_hdr *)bp2;
+
+ if (ndo->ndo_vflag) {
+ ND_PRINT("frag (0x%08x:%u|%zu)",
+ GET_BE_U_4(dp->ip6f_ident),
+ GET_BE_U_2(dp->ip6f_offlg) & IP6F_OFF_MASK,
+ sizeof(struct ip6_hdr) + GET_BE_U_2(ip6->ip6_plen) -
+ (bp - bp2) - sizeof(struct ip6_frag));