/* specification: RFC 4379 */
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
#include "netdissect-stdinc.h"
+#define ND_LONGJMP_FROM_TCHECK
#include "netdissect.h"
#include "extract.h"
#include "addrtoname.h"
GET_BE_U_4(lspping_com_header->sender_handle),
GET_BE_U_4(lspping_com_header->seq_number));
- ND_PRINT("\n\t Sender Timestamp: ");
+ ND_PRINT("\n\t TimeStamp Sent: ");
p_ntp_time(ndo, &lspping_com_header->ts_sent);
- ND_PRINT(" ");
int_part=GET_BE_U_4(lspping_com_header->ts_rcvd.int_part);
fraction=GET_BE_U_4(lspping_com_header->ts_rcvd.fraction);
- ND_PRINT("Receiver Timestamp: ");
- if ((int_part != 0) && (fraction != 0))
+ ND_PRINT("\n\t TimeStamp Received: ");
+ if (! (int_part == 0 && fraction == 0))
p_ntp_time(ndo, &lspping_com_header->ts_rcvd);
else
ND_PRINT("no timestamp");
if (tlen < sizeof(struct lspping_tlv_header))
goto tooshort;
- /* did we capture enough for fully decoding the tlv header ? */
- ND_TCHECK_LEN(tptr, sizeof(struct lspping_tlv_header));
-
lspping_tlv_header = (const struct lspping_tlv_header *)tptr;
lspping_tlv_type=GET_BE_U_2(lspping_tlv_header->type);
lspping_tlv_len=GET_BE_U_2(lspping_tlv_header->length);
tlv_hexdump = TRUE;
goto tlv_tooshort;
}
- /* did we capture enough for fully decoding the subtlv header ? */
- ND_TCHECK_LEN(tlv_tptr, sizeof(struct lspping_tlv_header));
subtlv_hexdump=FALSE;
lspping_subtlv_header = (const struct lspping_tlv_header *)tlv_tptr;
/* FIXME add hash-key type, depth limit, multipath processing */
- tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_info_t);
- tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_info_t);
-
/* FIXME print downstream labels */
tlv_hexdump=TRUE; /* dump the TLV until code complete */
tlv_hexdump = TRUE;
goto tlv_tooshort;
} else {
- ND_TCHECK_LEN(tptr, LSPPING_TLV_BFD_DISCRIMINATOR_LEN);
- ND_PRINT("\n\t BFD Discriminator 0x%08x", GET_BE_U_4(tptr));
+ ND_PRINT("\n\t BFD Discriminator 0x%08x", GET_BE_U_4(tlv_tptr));
}
break;
tlv_hexdump = TRUE;
goto tlv_tooshort;
} else {
- ND_TCHECK_LEN(tptr, LSPPING_TLV_VENDOR_ENTERPRISE_LEN);
vendor_id = GET_BE_U_4(tlv_tptr);
ND_PRINT("\n\t Vendor: %s (0x%04x)",
tok2str(smi_values, "Unknown", vendor_id),
return;
tooshort:
ND_PRINT("\n\t\t packet is too short");
- return;
-trunc:
- nd_print_trunc(ndo);
- return;
}