X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/7310e344632b72babf6f830d32363fef75b19568..c519841be2fe87b3cdd9dc45fa7eb8b4266d40a5:/print-rsvp.c diff --git a/print-rsvp.c b/print-rsvp.c index d32f2f52..5592421b 100644 --- a/print-rsvp.c +++ b/print-rsvp.c @@ -14,8 +14,8 @@ */ #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 @@ -77,6 +77,7 @@ struct rsvp_object_header { #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 @@ -107,6 +108,11 @@ static const struct tok rsvp_msg_type_values[] = { { 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 @@ -533,9 +539,10 @@ rsvp_print(register const u_char *pptr, register u_int len) { 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)); @@ -788,10 +795,11 @@ rsvp_print(register const u_char *pptr, register u_int len) { 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", @@ -892,6 +900,7 @@ rsvp_print(register const u_char *pptr, register u_int len) { 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 */ @@ -901,6 +910,7 @@ rsvp_print(register const u_char *pptr, register u_int len) { 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: