- ND_PRINT((ndo, ", [%d]%s", i, ip6addr_string(ndo, addr)));
- addr++;
+ if (GET_U_1(srh->srh_flags) || ndo->ndo_vflag) {
+ ND_PRINT(", flags=0x%0x",
+ GET_U_1(srh->srh_flags));
+ }
+
+ ND_PRINT(", tag=%x", GET_BE_U_2(srh->srh_tag));
+
+ if (len % 2 == 1) {
+ ND_PRINT(" (invalid length %u)", len);
+ goto invalid;
+ }
+ len >>= 1;
+ p = (const u_char *) srh->srh_segments;
+ for (i = 0; i < len; i++) {
+ ND_PRINT(", [%u]%s", i, GET_IP6ADDR_STRING(p));
+ p += 16;