]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-pim.c
Have the configure script arrange that the Makefile define _U_
[tcpdump] / print-pim.c
index dc714a2c747569b97dadbdf4002c9fe3415aba15..57d8f9f8f8a51fd80f59841d1cf16bc1f95d2166 100644 (file)
@@ -20,8 +20,8 @@
  */
 
 #ifndef lint
-static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-pim.c,v 1.33 2002-09-05 00:00:16 guy Exp $ (LBL)";
+static const char rcsid[] _U_ =
+    "@(#) $Header: /tcpdump/master/tcpdump/print-pim.c,v 1.39 2003-11-16 09:36:32 guy Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -579,6 +579,22 @@ pimv2_print(register const u_char *bp, register u_int len)
                                (void)printf(")");
                                break;
 
+                       case 2:         /* LAN Prune Delay */
+                               (void)printf(" (LAN-Prune-Delay: ");
+                               if (olen != 4) {
+                                       (void)printf("!olen=%d!)", olen);
+                               } else {
+                                       char t_bit;
+                                       u_int16_t lan_delay, override_interval;
+                                       lan_delay = EXTRACT_16BITS(&bp[4]);
+                                       override_interval = EXTRACT_16BITS(&bp[6]);
+                                       t_bit = (lan_delay & 0x8000)? 1 : 0;
+                                       lan_delay &= ~0x8000;
+                                       (void)printf("T-bit=%d lan-delay=%dms override-interval=%dms)",
+                                       t_bit, lan_delay, override_interval);
+                               }
+                               break;
+
                        case 18:        /* Old DR-Priority */
                                if (olen == 4)
                                        (void)printf(" (OLD-DR-Priority: %d)",
@@ -621,6 +637,26 @@ pimv2_print(register const u_char *bp, register u_int len)
                                (void)printf(" (bidir-capable)");
                                break;
 
+                       case 24:        /* Address List */
+                       case 65001:     /* Address List (old implementations) */
+                               (void)printf(" (%saddr-list",
+                                            otype == 65001 ? "old" : "");
+                               if (vflag > 1) {
+                                       const u_char *ptr = &bp[4];
+                                       while (ptr < &bp[4 + olen]) {
+                                               int advance;
+
+                                               printf(" ");
+                                               advance = pimv2_addr_print(ptr, pimv2_unicast, 0);
+                                               if (advance < 0) {
+                                                       printf("...");
+                                                       break;
+                                               }
+                                               ptr += advance;
+                                       }
+                               }
+                               (void)printf(")");
+                               break;
                        default:
                        unknown:
                                if (vflag)