#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-pim.c,v 1.24 2001-01-28 08:27:28 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-pim.c,v 1.28 2001-06-15 22:17:34 fenner Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
}
TCHECK2(bp[0], 4);
- (void)printf("\n Upstream Nbr: %s", ipaddr_string(bp));
+ if (vflag > 1)
+ (void)printf("\n");
+ (void)printf(" Upstream Nbr: %s", ipaddr_string(bp));
TCHECK2(bp[6], 2);
- (void)printf("\n Hold time: ");
+ if (vflag > 1)
+ (void)printf("\n");
+ (void)printf(" Hold time: ");
relts_print(EXTRACT_16BITS(&bp[6]));
+ if (vflag < 2)
+ return;
bp += 8;
len -= 8;
enum pimv2_addrtype {
pimv2_unicast, pimv2_group, pimv2_source
};
-#if 0
-static char *addrtypestr[] = {
- "unicast", "group", "source"
-};
-#endif
/* 0 1 2 3
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
(void)printf(")");
break;
- /* XXX
- * draft-ietf-idmr-pimv2-dr-priority-00.txt
- * says that DR-Priority is option 19.
- * draft-ietf-pim-v2-sm-00.txt says it's 18.
- */
- case 18: /* DR-Priority */
- (void)printf(" (DR-Priority: %d)", EXTRACT_32BITS(&bp[4]));
- break;
-
- case 19: /* Bidir-Capable */
- if (olen == 4)
- (void)printf(" (OLD-DR-Priority: %d)", EXTRACT_32BITS(&bp[4]));
- else
- (void)printf(" (bidir-capable)");
+ case 19: /* DR-Priority */
+ (void)printf(" (DR-Priority: ");
+ if (olen != 4) {
+ (void)printf("!olen=%d!)", olen);
+ } else {
+ (void)printf("%d)", EXTRACT_32BITS(&bp[4]));
+ }
break;
case 20:
break;
case 21:
- (void)printf(" (State Refresh Capable");
- if (EXTRACT_32BITS(&bp[4]) != 1) {
- (void)printf(" ?0x%x?", EXTRACT_32BITS(&bp[4]));
+ (void)printf(" (State Refresh Capable; v%d", bp[4]);
+ if (bp[5] != 0) {
+ (void)printf(" interval ");
+ relts_print(bp[5]);
+ }
+ if (EXTRACT_16BITS(&bp[6]) != 0) {
+ (void)printf(" ?0x%04x?", EXTRACT_16BITS(&bp[6]));
}
(void)printf(")");
break;
+ case 22: /* Bidir-Capable */
+ (void)printf(" (bidir-capable)");
+ break;
+
default:
if (vflag)
(void)printf(" [Hello option %d]", otype);