- if (optlen == 4)
- ND_PRINT((ndo, " %u", EXTRACT_BE_U_4(option + 2)));
- else
- ND_PRINT((ndo, " optlen != 4"));
+ /*
+ * 13.3. Timestamp Echo Option
+ *
+ * +--------+--------+--------+--------+--------+--------+
+ * |00101010|00000110| Timestamp Echo |
+ * +--------+--------+--------+--------+--------+--------+
+ * Type=42 Len=6
+ *
+ * +--------+--------+------- ... -------+--------+--------+
+ * |00101010|00001000| Timestamp Echo | Elapsed Time |
+ * +--------+--------+------- ... -------+--------+--------+
+ * Type=42 Len=8 (4 bytes)
+ *
+ * +--------+--------+------- ... -------+------- ... -------+
+ * |00101010|00001010| Timestamp Echo | Elapsed Time |
+ * +--------+--------+------- ... -------+------- ... -------+
+ * Type=42 Len=10 (4 bytes) (4 bytes)
+ */
+ switch (optlen) {
+ case 6:
+ ND_PRINT(" %u", GET_BE_U_4(option + 2));
+ break;
+ case 8:
+ ND_PRINT(" %u", GET_BE_U_4(option + 2));
+ ND_PRINT(" (elapsed time %u)",
+ GET_BE_U_2(option + 6));
+ break;
+ case 10:
+ ND_PRINT(" %u", GET_BE_U_4(option + 2));
+ ND_PRINT(" (elapsed time %u)",
+ GET_BE_U_4(option + 6));
+ break;
+ default:
+ ND_PRINT(" [optlen != 6 or 8 or 10]");
+ break;
+ }