tptr=pptr;
lspping_com_header = (const struct lspping_common_header *)pptr;
if (len < sizeof(struct lspping_common_header))
tptr=pptr;
lspping_com_header = (const struct lspping_common_header *)pptr;
if (len < sizeof(struct lspping_common_header))
* Sanity checking of the header.
*/
if (EXTRACT_BE_U_2(lspping_com_header->version) != LSPPING_VERSION) {
* Sanity checking of the header.
*/
if (EXTRACT_BE_U_2(lspping_com_header->version) != LSPPING_VERSION) {
- ND_PRINT((ndo, "LSP-PING version %u packet not supported",
- EXTRACT_BE_U_2(lspping_com_header->version)));
+ ND_PRINT("LSP-PING version %u packet not supported",
+ EXTRACT_BE_U_2(lspping_com_header->version));
- ND_PRINT((ndo, "LSP-PINGv%u, %s, seq %u, length: %u",
+ ND_PRINT("LSP-PINGv%u, %s, seq %u, length: %u",
EXTRACT_BE_U_2(lspping_com_header->version),
tok2str(lspping_msg_type_values, "unknown (%u)",EXTRACT_U_1(lspping_com_header->msg_type)),
EXTRACT_BE_U_4(lspping_com_header->seq_number),
EXTRACT_BE_U_2(lspping_com_header->version),
tok2str(lspping_msg_type_values, "unknown (%u)",EXTRACT_U_1(lspping_com_header->msg_type)),
EXTRACT_BE_U_4(lspping_com_header->seq_number),
- ND_PRINT((ndo, "\n\tLSP-PINGv%u, msg-type: %s (%u), length: %u\n\t reply-mode: %s (%u)",
+ ND_PRINT("\n\tLSP-PINGv%u, msg-type: %s (%u), length: %u\n\t reply-mode: %s (%u)",
EXTRACT_BE_U_2(lspping_com_header->version),
tok2str(lspping_msg_type_values, "unknown",EXTRACT_U_1(lspping_com_header->msg_type)),
EXTRACT_U_1(lspping_com_header->msg_type),
len,
tok2str(lspping_reply_mode_values, "unknown",EXTRACT_U_1(lspping_com_header->reply_mode)),
EXTRACT_BE_U_2(lspping_com_header->version),
tok2str(lspping_msg_type_values, "unknown",EXTRACT_U_1(lspping_com_header->msg_type)),
EXTRACT_U_1(lspping_com_header->msg_type),
len,
tok2str(lspping_reply_mode_values, "unknown",EXTRACT_U_1(lspping_com_header->reply_mode)),
tok2str(lspping_return_code_values, "unknown",return_code),
return_subcode,
return_code,
tok2str(lspping_return_code_values, "unknown",return_code),
return_subcode,
return_code,
tok2str(lspping_return_code_values, "unknown",return_code),
return_code,
tok2str(lspping_return_code_values, "unknown",return_code),
return_code,
- ND_PRINT((ndo, "\n\t Sender Handle: 0x%08x, Sequence: %u",
+ ND_PRINT("\n\t Sender Handle: 0x%08x, Sequence: %u",
timestamp.tv_sec=EXTRACT_BE_U_4(lspping_com_header->ts_sent_sec);
timestamp.tv_usec=EXTRACT_BE_U_4(lspping_com_header->ts_sent_usec);
timestamp.tv_sec=EXTRACT_BE_U_4(lspping_com_header->ts_sent_sec);
timestamp.tv_usec=EXTRACT_BE_U_4(lspping_com_header->ts_sent_usec);
ts_print(ndo, ×tamp);
timestamp.tv_sec=EXTRACT_BE_U_4(lspping_com_header->ts_rcvd_sec);
timestamp.tv_usec=EXTRACT_BE_U_4(lspping_com_header->ts_rcvd_usec);
ts_print(ndo, ×tamp);
timestamp.tv_sec=EXTRACT_BE_U_4(lspping_com_header->ts_rcvd_sec);
timestamp.tv_usec=EXTRACT_BE_U_4(lspping_com_header->ts_rcvd_usec);
if ((timestamp.tv_sec != 0) && (timestamp.tv_usec != 0))
ts_print(ndo, ×tamp);
else
if ((timestamp.tv_sec != 0) && (timestamp.tv_usec != 0))
ts_print(ndo, ×tamp);
else
lspping_tlv_type=EXTRACT_BE_U_2(lspping_tlv_header->type);
lspping_tlv_len=EXTRACT_BE_U_2(lspping_tlv_header->length);
lspping_tlv_type=EXTRACT_BE_U_2(lspping_tlv_header->type);
lspping_tlv_len=EXTRACT_BE_U_2(lspping_tlv_header->length);
while (tlv_tlen != 0) {
/* Does the subTLV header go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_header)) {
while (tlv_tlen != 0) {
/* Does the subTLV header go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_header)) {
/* Does the subTLV go past the end of the TLV? */
if (tlv_tlen < lspping_subtlv_len+sizeof(struct lspping_tlv_header)) {
/* Does the subTLV go past the end of the TLV? */
if (tlv_tlen < lspping_subtlv_len+sizeof(struct lspping_tlv_header)) {
/* Did we capture enough for fully decoding the subTLV? */
ND_TCHECK_LEN(subtlv_tptr, lspping_subtlv_len);
/* Did we capture enough for fully decoding the subTLV? */
ND_TCHECK_LEN(subtlv_tptr, lspping_subtlv_len);
switch(lspping_subtlv_type) {
case LSPPING_TLV_TARGETFEC_SUBTLV_LDP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 5) {
switch(lspping_subtlv_type) {
case LSPPING_TLV_TARGETFEC_SUBTLV_LDP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 5) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_LDP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 17) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_LDP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 17) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_BGP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 5) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_BGP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 5) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_BGP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 17) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_BGP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 17) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_RSVP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 20) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_RSVP_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 20) {
- ND_PRINT((ndo, "\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x" \
+ ND_PRINT("\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x"
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_endpoint),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_sender),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->lsp_id),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_id),
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_endpoint),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_sender),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->lsp_id),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv4->tunnel_id),
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_RSVP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 56) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_RSVP_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 56) {
- ND_PRINT((ndo, "\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x" \
+ ND_PRINT("\n\t tunnel end-point %s, tunnel sender %s, lsp-id 0x%04x"
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_endpoint),
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_sender),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->lsp_id),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_id),
"\n\t tunnel-id 0x%04x, extended tunnel-id %s",
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_endpoint),
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_sender),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->lsp_id),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_rsvp_ipv6->tunnel_id),
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L3VPN_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 13) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L3VPN_IPV4:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 13) {
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->rd),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->prefix),
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->rd),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv4->prefix),
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L3VPN_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 25) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L3VPN_IPV6:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 25) {
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->rd),
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->prefix),
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->rd),
ip6addr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l3vpn_ipv6->prefix),
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L2VPN_ENDPT:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 14) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_L2VPN_ENDPT:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 14) {
- ND_PRINT((ndo, "\n\t RD: %s, Sender VE ID: %u, Receiver VE ID: %u" \
+ ND_PRINT("\n\t RD: %s, Sender VE ID: %u, Receiver VE ID: %u"
"\n\t Encapsulation Type: %s (%u)",
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->rd),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->sender_ve_id),
"\n\t Encapsulation Type: %s (%u)",
bgp_vpn_rd_print(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->rd),
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->sender_ve_id),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->encapsulation)),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_endpt->encapsulation)),
case LSPPING_TLV_TARGETFEC_SUBTLV_FEC_128_PW_OLD:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 10) {
case LSPPING_TLV_TARGETFEC_SUBTLV_FEC_128_PW_OLD:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 10) {
"\n\t PW ID: 0x%08x, PW Type: %s (%u)",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->remote_pe_address),
EXTRACT_BE_U_4(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->pw_id),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->pw_type)),
"\n\t PW ID: 0x%08x, PW Type: %s (%u)",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->remote_pe_address),
EXTRACT_BE_U_4(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->pw_id),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid_old->pw_type)),
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_FEC_128_PW:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 14) {
}
break;
case LSPPING_TLV_TARGETFEC_SUBTLV_FEC_128_PW:
/* Is the subTLV length correct? */
if (lspping_subtlv_len != 14) {
"\n\t PW ID: 0x%08x, PW Type: %s (%u)",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->sender_pe_address),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->remote_pe_address),
"\n\t PW ID: 0x%08x, PW Type: %s (%u)",
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->sender_pe_address),
ipaddr_string(ndo, subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->remote_pe_address),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->pw_type)),
tok2str(mpls_pw_types_values,
"unknown",
EXTRACT_BE_U_2(subtlv_ptr.lspping_tlv_targetfec_subtlv_l2vpn_vcid->pw_type)),
}
/* do we want to see an additionally subtlv hexdump ? */
if (ndo->ndo_vflag > 1 || subtlv_hexdump==TRUE)
}
/* do we want to see an additionally subtlv hexdump ? */
if (ndo->ndo_vflag > 1 || subtlv_hexdump==TRUE)
lspping_subtlv_len += 4 - (lspping_subtlv_len % 4);
/* Does the subTLV, including padding, go past the end of the TLV? */
if (tlv_tlen < lspping_subtlv_len+sizeof(struct lspping_tlv_header)) {
lspping_subtlv_len += 4 - (lspping_subtlv_len % 4);
/* Does the subTLV, including padding, go past the end of the TLV? */
if (tlv_tlen < lspping_subtlv_len+sizeof(struct lspping_tlv_header)) {
case LSPPING_TLV_DOWNSTREAM_MAPPING:
/* Does the header go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_t)) {
case LSPPING_TLV_DOWNSTREAM_MAPPING:
/* Does the header go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_t)) {
(const struct lspping_tlv_downstream_map_t *)tlv_tptr;
/* that strange thing with the downstream map TLV is that until now
(const struct lspping_tlv_downstream_map_t *)tlv_tptr;
/* that strange thing with the downstream map TLV is that until now
* we find the address-type, we recast the tlv_tptr and move on. */
address_type = EXTRACT_U_1(tlv_ptr.lspping_tlv_downstream_map->address_type);
* we find the address-type, we recast the tlv_tptr and move on. */
address_type = EXTRACT_U_1(tlv_ptr.lspping_tlv_downstream_map->address_type);
- ND_PRINT((ndo, "\n\t MTU: %u, Address-Type: %s (%u)",
+ ND_PRINT("\n\t MTU: %u, Address-Type: %s (%u)",
EXTRACT_BE_U_2(tlv_ptr.lspping_tlv_downstream_map->mtu),
tok2str(lspping_tlv_downstream_addr_values,
"unknown",
address_type),
EXTRACT_BE_U_2(tlv_ptr.lspping_tlv_downstream_map->mtu),
tok2str(lspping_tlv_downstream_addr_values,
"unknown",
address_type),
switch(address_type) {
case LSPPING_AFI_IPV4:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv4_t)) {
switch(address_type) {
case LSPPING_AFI_IPV4:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv4_t)) {
"\n\t Downstream Interface IP: %s",
ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
"\n\t Downstream Interface IP: %s",
ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4->downstream_ip),
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
break;
case LSPPING_AFI_IPV4_UNMB:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t)) {
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_t);
break;
case LSPPING_AFI_IPV4_UNMB:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t)) {
"\n\t Downstream Interface Index: 0x%08x",
ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4_unmb->downstream_ip),
"\n\t Downstream Interface Index: 0x%08x",
ipaddr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv4_unmb->downstream_ip),
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t);
break;
case LSPPING_AFI_IPV6:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv6_t)) {
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv4_unmb_t);
break;
case LSPPING_AFI_IPV6:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv6_t)) {
"\n\t Downstream Interface IP: %s",
ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_ip),
"\n\t Downstream Interface IP: %s",
ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6->downstream_ip),
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
break;
case LSPPING_AFI_IPV6_UNMB:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t)) {
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv6_t);
break;
case LSPPING_AFI_IPV6_UNMB:
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t)) {
"\n\t Downstream Interface Index: 0x%08x",
ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6_unmb->downstream_ip),
"\n\t Downstream Interface Index: 0x%08x",
ip6addr_string(ndo, tlv_ptr.lspping_tlv_downstream_map_ipv6_unmb->downstream_ip),
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t);
break;
tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t);
tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_ipv6_unmb_t);
break;
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_info_t)) {
/* Does the data go past the end of the TLV? */
if (tlv_tlen < sizeof(struct lspping_tlv_downstream_map_info_t)) {
(const struct lspping_tlv_downstream_map_info_t *)tlv_tptr;
/* FIXME add hash-key type, depth limit, multipath processing */
(const struct lspping_tlv_downstream_map_info_t *)tlv_tptr;
/* FIXME add hash-key type, depth limit, multipath processing */
tlv_hexdump = TRUE;
goto tlv_tooshort;
} else {
ND_TCHECK_LEN(tptr, LSPPING_TLV_VENDOR_ENTERPRISE_LEN);
vendor_id = EXTRACT_BE_U_4(tlv_tptr);
tlv_hexdump = TRUE;
goto tlv_tooshort;
} else {
ND_TCHECK_LEN(tptr, LSPPING_TLV_VENDOR_ENTERPRISE_LEN);
vendor_id = EXTRACT_BE_U_4(tlv_tptr);
tok2str(smi_values, "Unknown", vendor_id),
tok2str(smi_values, "Unknown", vendor_id),