- printf("(tsp_type %#x)", tsp->tsp_type);
-
- if (endof(tsp->tsp_vers) > snapend) {
- printf(" %s", tstr);
- return;
- }
- printf(" vers %d", tsp->tsp_vers);
-
- if (endof(tsp->tsp_seq) > snapend) {
- printf(" %s", tstr);
- return;
- }
- printf(" seq %d", tsp->tsp_seq);
-
- if (tsp->tsp_type == TSP_LOOP) {
- if (endof(tsp->tsp_hopcnt) > snapend) {
- printf(" %s", tstr);
- return;
- }
- printf(" hopcnt %d", tsp->tsp_hopcnt);
- } else if (tsp->tsp_type == TSP_SETTIME ||
- tsp->tsp_type == TSP_ADJTIME ||
- tsp->tsp_type == TSP_SETDATE ||
- tsp->tsp_type == TSP_SETDATEREQ) {
- if (endof(tsp->tsp_time) > snapend) {
- printf(" %s", tstr);
- return;
- }
- sec = EXTRACT_32BITS(&tsp->tsp_time.tv_sec);
- usec = EXTRACT_32BITS(&tsp->tsp_time.tv_usec);
+ ND_PRINT("(tsp_type %#x)", tsp_type);
+
+ ND_PRINT(" vers %u", GET_U_1(tsp->tsp_vers));
+
+ ND_PRINT(" seq %u", GET_BE_U_2(tsp->tsp_seq));
+
+ switch (tsp_type) {
+ case TSP_LOOP:
+ ND_PRINT(" hopcnt %u", GET_U_1(tsp->tsp_hopcnt));
+ break;
+ case TSP_SETTIME:
+ case TSP_ADJTIME:
+ case TSP_SETDATE:
+ case TSP_SETDATEREQ:
+ sec = GET_BE_S_4(tsp->tsp_time.tv_sec);
+ usec = GET_BE_S_4(tsp->tsp_time.tv_usec);
+ /* XXX The comparison below is always false? */