+ seqno, format_id(ndo, router_id));
+ }
+ }
+ break;
+
+ case MESSAGE_MAC: {
+ if (!ndo->ndo_vflag)
+ ND_PRINT(" mac");
+ else {
+ ND_PRINT("\n\tMAC ");
+ ND_PRINT("len %u", len);
+ }
+ }
+ break;
+
+ case MESSAGE_PC: {
+ if (!ndo->ndo_vflag)
+ ND_PRINT(" pc");
+ else {
+ ND_PRINT("\n\tPC");
+ if(len < 4) goto invalid;
+ ND_PRINT(" value %u",
+ GET_BE_U_4(message + 2));
+ ND_PRINT(" index len %u", len-4);
+ }
+ }
+ break;
+
+ case MESSAGE_CHALLENGE_REQUEST: {
+ if (!ndo->ndo_vflag)
+ ND_PRINT(" challenge_request");
+ else {
+ ND_PRINT("\n\tChallenge Request");
+ if(len > 192) goto invalid;
+ ND_PRINT(" len %u", len);
+ }
+ }
+ break;
+
+ case MESSAGE_CHALLENGE_REPLY: {
+ if (!ndo->ndo_vflag)
+ ND_PRINT(" challenge_reply");
+ else {
+ ND_PRINT("\n\tChallenge Reply");
+ if (len > 192) goto invalid;
+ ND_PRINT(" len %u", len);