- ND_PRINT(" {0x%" PRIx64, GET_BE_U_8(mpc->sender_key));
- if (opt_len == 20) /* ACK */
- ND_PRINT(",0x%" PRIx64, GET_BE_U_8(mpc->receiver_key));
- ND_PRINT("}");
+ if (opt_len == 12 || opt_len >= 20) {
+ ND_PRINT(" {0x%" PRIx64, GET_BE_U_8(mpc->sender_key));
+ if (opt_len >= 20)
+ ND_PRINT(",0x%" PRIx64, GET_BE_U_8(mpc->receiver_key));
+
+ /* RFC 8684 Section 3.1 */
+ if ((opt_len == 22 && !csum_enabled) || opt_len == 24)
+ ND_PRINT(",data_len=%u", GET_BE_U_2(mpc->data_len));
+ ND_PRINT("}");
+ }