*
*/
+/* Values from IEEE1588-2008: 13.3.2.2 messageType (Enumeration4) */
#define M_SYNC 0x0
#define M_DELAY_REQ 0x1
#define M_PDELAY_REQ 0x2
#define M_PDELAY_RESP 0x3
-#define M_OTHER 0x5
#define M_FOLLOW_UP 0x8
#define M_DELAY_RESP 0x9
#define M_PDELAY_RESP_FOLLOW_UP 0xA
#define M_MANAGEMENT 0xD
static const struct tok ptp_msg_type[] = {
- { M_SYNC ,"sync msg"},
- { M_DELAY_REQ ,"delay req msg"},
- { M_PDELAY_REQ ,"peer delay req msg"},
- { M_PDELAY_RESP ,"peer delay resp msg"},
- { M_OTHER, "Other"},
- { M_FOLLOW_UP ,"follow up msg"},
- { M_DELAY_RESP ,"delay resp msg"},
- { M_PDELAY_RESP_FOLLOW_UP ,"pdelay resp fup msg"},
- { M_ANNOUNCE ,"announce msg"},
- { M_SIGNALLING ,"signalling msg"},
- { M_MANAGEMENT ,"management msg"},
+ { M_SYNC, "sync msg"},
+ { M_DELAY_REQ, "delay req msg"},
+ { M_PDELAY_REQ, "peer delay req msg"},
+ { M_PDELAY_RESP, "peer delay resp msg"},
+ { M_FOLLOW_UP, "follow up msg"},
+ { M_DELAY_RESP, "delay resp msg"},
+ { M_PDELAY_RESP_FOLLOW_UP, "pdelay resp fup msg"},
+ { M_ANNOUNCE, "announce msg"},
+ { M_SIGNALLING, "signalling msg"},
+ { M_MANAGEMENT, "management msg"},
+ { 0, NULL}
+};
+
+/* Values from IEEE1588-2008: 13.3.2.10 controlField (UInteger8) */
+/*
+ * The use of this field by the receiver is deprecated.
+ * NOTE-This field is provided for compatibility with hardware designed
+ * to conform to version 1 of this standard.
+ */
+#define C_SYNC 0x0
+#define C_DELAY_REQ 0x1
+#define C_FOLLOW_UP 0x2
+#define C_DELAY_RESP 0x3
+#define C_MANAGEMENT 0x4
+#define C_OTHER 0x5
+
+static const struct tok ptp_control_field[] = {
+ { C_SYNC, "Sync"},
+ { C_DELAY_REQ, "Delay_Req"},
+ { C_FOLLOW_UP, "Follow_Up"},
+ { C_DELAY_RESP, "Delay_Resp"},
+ { C_MANAGEMENT, "Management"},
+ { C_OTHER, "Other"},
{ 0, NULL}
};
#define PTP_FLAGS_UNKNOWN_MASK 0x18C0
static const struct tok ptp_flag_values[] = {
- { PTP_L161_MASK ,"l1 61"},
- { PTP_L1_59_MASK ,"l1 59"},
- { PTP_UTC_REASONABLE_MASK ,"utc reasonable"},
- { PTP_TIMESCALE_MASK ,"timescale"},
- { PTP_TIME_TRACABLE_MASK ,"time tracable"},
- { PTP_FREQUENCY_TRACABLE_MASK ,"frequency tracable"},
- { PTP_ALTERNATE_MASTER_MASK ,"alternate master"},
- { PTP_TWO_STEP_MASK ,"two step"},
- { PTP_UNICAST_MASK ,"unicast"},
- { PTP_PROFILE_SPEC_1_MASK ,"profile specific 1"},
- { PTP_PROFILE_SPEC_2_MASK ,"profile specific 2"},
- { PTP_SECURITY_MASK ,"security mask"},
- { PTP_FLAGS_UNKNOWN_MASK , "unknown"},
+ { PTP_L161_MASK, "l1 61"},
+ { PTP_L1_59_MASK, "l1 59"},
+ { PTP_UTC_REASONABLE_MASK, "utc reasonable"},
+ { PTP_TIMESCALE_MASK, "timescale"},
+ { PTP_TIME_TRACABLE_MASK, "time tracable"},
+ { PTP_FREQUENCY_TRACABLE_MASK, "frequency tracable"},
+ { PTP_ALTERNATE_MASTER_MASK, "alternate master"},
+ { PTP_TWO_STEP_MASK, "two step"},
+ { PTP_UNICAST_MASK, "unicast"},
+ { PTP_PROFILE_SPEC_1_MASK, "profile specific 1"},
+ { PTP_PROFILE_SPEC_2_MASK, "profile specific 2"},
+ { PTP_SECURITY_MASK, "security mask"},
+ { PTP_FLAGS_UNKNOWN_MASK, "unknown"},
{0, NULL}
};
v1_compat = foct & PTP_V1_COMPAT;
ND_PRINT(", v1 compat : %s", v1_compat?"yes":"no");
msg_type = foct & PTP_MSG_TYPE_MASK;
- ND_PRINT(", msg type : %s", tok2str(ptp_msg_type, "none", msg_type));
+ ND_PRINT(", msg type : %s", tok2str(ptp_msg_type, "Reserved", msg_type));
/* msg length */
len -= 2; bp += 2; msg_len = GET_BE_U_2(bp); ND_PRINT(", length : %u", msg_len);
/* control */
len -= 2; bp += 2; control = GET_U_1(bp) ;
- ND_PRINT(", control : %u (%s)", control, tok2str(ptp_msg_type, "none", control));
+ ND_PRINT(", control : %u (%s)", control, tok2str(ptp_control_field, "Reserved", control));
/* log message interval */
lm_int = GET_BE_U_2(bp) & PTP_LOGMSG_MASK; ND_PRINT(", log message interval : %u", lm_int); len -= 2; bp += 2;