*/
#ifndef lint
-static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-rsvp.c,v 1.22 2003-10-20 10:35:20 hannes Exp $";
+static const char rcsid[] _U_ =
+ "@(#) $Header: /tcpdump/master/tcpdump/print-rsvp.c,v 1.26 2003-11-16 09:36:35 guy Exp $";
#endif
#ifdef HAVE_CONFIG_H
#define RSVP_VERSION 1
#define RSVP_EXTRACT_VERSION(x) (((x)&0xf0)>>4)
+#define RSVP_EXTRACT_FLAGS(x) ((x)&0x0f)
#define RSVP_MSGTYPE_PATH 1
#define RSVP_MSGTYPE_RESV 2
{ 0, NULL}
};
+static const struct tok rsvp_header_flag_values[] = {
+ { 0x01, "Refresh reduction capable" }, /* rfc2961 */
+ { 0, NULL}
+};
+
#define RSVP_OBJ_SESSION 1 /* rfc2205 */
#define RSVP_OBJ_RSVP_HOP 3 /* rfc2205, rfc3473 */
#define RSVP_OBJ_INTEGRITY 4
tlen=EXTRACT_16BITS(rsvp_com_header->length);
- printf("RSVP\n\tv: %u, msg-type: %s, length: %u, ttl: %u, checksum: 0x%04x",
+ printf("RSVP\n\tv: %u, msg-type: %s, Flags: [%s], length: %u, ttl: %u, checksum: 0x%04x",
RSVP_EXTRACT_VERSION(rsvp_com_header->version_flags),
tok2str(rsvp_msg_type_values, "unknown, type: %u",rsvp_com_header->msg_type),
+ bittok2str(rsvp_header_flag_values,"none",RSVP_EXTRACT_FLAGS(rsvp_com_header->version_flags)),
tlen,
rsvp_com_header->ttl,
EXTRACT_16BITS(rsvp_com_header->checksum));
obj_tptr+=12;
break;
case RSVP_CTYPE_4:
- printf("\n\t LSP Encoding Type: %s",
+ printf("\n\t LSP Encoding Type: %s (%u)",
tok2str(gmpls_encoding_values,
- "Unknown (0x%02x)",
- *obj_tptr));
+ "Unknown",
+ *obj_tptr),
+ *obj_tptr);
printf("\n\t Switching Type: %s (%u), Payload ID: %s (0x%04x)",
tok2str(gmpls_switch_cap_values,
"Unknown",
EXTRACT_32BITS(obj_tptr+4));
obj_tlen-=8;
obj_tptr+=8;
+ hexdump=TRUE; /* unless we have a TLV parser lets just hexdump */
break;
#ifdef INET6
case RSVP_CTYPE_4: /* fall through - FIXME add TLV parser */
EXTRACT_32BITS(obj_tptr+16));
obj_tlen-=20;
obj_tptr+=20;
+ hexdump=TRUE; /* unless we have a TLV parser lets just hexdump */
break;
#endif
default: