uint32_t uf;
uint32_t f;
float ff;
-
+
i = EXTRACT_BE_U_4(p);
uf = EXTRACT_BE_U_4(p + 4);
ff = (float) uf;
f = (uint32_t) (ff * 1000000000.0); /* treat fraction as parts per
billion */
ND_PRINT("%u.%09d", i, f);
-
+
#ifdef HAVE_STRFTIME
/*
* print the time in human-readable format.
time_t seconds = i - JAN_1970;
struct tm *tm;
char time_buf[128];
-
+
tm = localtime(&seconds);
strftime(time_buf, sizeof (time_buf), "%Y/%m/%d %H:%M:%S", tm);
ND_PRINT(" (%s)", time_buf);
{
uint8_t version, inner_len;
uint32_t seq_no;
-
+
ndo->ndo_protocol ="ZEP";
ND_PRINT("ZEP");
-
+
ND_TCHECK_LEN(bp, 8);
-
+
if (EXTRACT_U_1(bp) != 'E' || EXTRACT_U_1(bp + 1) != 'X')
goto trunc;
-
+
version = EXTRACT_U_1(bp + 2);
ND_PRINT("v%d ", version);
-
+
if (version == 1) {
/* ZEP v1 packet. */
ND_TCHECK_LEN(bp, 16);
ND_PRINT("LQI %d, ", EXTRACT_U_1(bp + 7));
inner_len = EXTRACT_U_1(bp + 15);
ND_PRINT("inner len = %d", inner_len);
-
+
bp += 16;
len -= 16;
} else {
} else {
/* ZEP v2 data, or some other. */
ND_TCHECK_LEN(bp, 32);
-
+
ND_PRINT("Type %d, Channel ID %d, Device ID 0x%04x, ",
EXTRACT_U_1(bp + 3), EXTRACT_U_1(bp + 4),
EXTRACT_BE_U_2(bp + 5));
ND_PRINT("CRC, ");
else
ND_PRINT("LQI %d, ", EXTRACT_U_1(bp + 8));
-
+
zep_print_ts(ndo, bp + 9);
seq_no = EXTRACT_BE_U_4(bp + 17);
inner_len = EXTRACT_U_1(bp + 31);
len -= 32;
}
}
-
+
if (inner_len != 0) {
/* Call 802.15.4 dissector. */
ND_PRINT("\n\t");
len = 0;
}
}
-
+
if (!ndo->ndo_suppress_default_print)
ND_DEFAULTPRINT(bp, len);
-
- return;
+
+ return;
trunc:
ND_PRINT(" [|ZEP]");
}