]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-icmp6.c
The stuff in the "linux-include" directory is no longer needed, as we no
[tcpdump] / print-icmp6.c
index cec4dc862162e72d64571bcb804026dd0d0c7a6d..b3d8ef97e718aab5f192d8fcbaacd0dc47f48a0b 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-icmp6.c,v 1.40 2000-11-08 13:03:12 itojun Exp $";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-icmp6.c,v 1.42 2000-12-13 07:57:05 itojun Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -315,8 +315,6 @@ icmp6_print(register const u_char *bp, register const u_char *bp2)
                icmp6_rrenum_print(icmp6len, bp, ep);
                break;
        case ICMP6_NI_QUERY:
-               icmp6_nodeinfo_print(icmp6len, bp, ep);
-               break;
        case ICMP6_NI_REPLY:
                icmp6_nodeinfo_print(icmp6len, bp, ep);
                break;
@@ -413,6 +411,7 @@ icmp6_opt_print(register const u_char *bp, int resid)
        register const struct nd_opt_prefix_info *opp;
        register const struct icmp6_opts_redirect *opr;
        register const struct nd_opt_mtu *opm;
+       register const struct nd_opt_advint *opa;
        register const u_char *ep;
        int     opts_len;
 #if 0
@@ -478,9 +477,11 @@ icmp6_opt_print(register const u_char *bp, int resid)
                TCHECK(opp->nd_opt_pi_prefix);
                printf("(prefix info: ");       /*)*/
                if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_ONLINK)
-                      printf("L");
+                       printf("L");
                if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_AUTO)
-                      printf("A");
+                       printf("A");
+               if (opp->nd_opt_pi_flags_reserved & ND_OPT_PI_FLAG_ROUTER)
+                       printf("R");
                if (opp->nd_opt_pi_flags_reserved)
                        printf(" ");
                printf("valid_ltime=");
@@ -524,6 +525,17 @@ icmp6_opt_print(register const u_char *bp, int resid)
                icmp6_opt_print((const u_char *)op + (op->nd_opt_len << 3),
                                resid - (op->nd_opt_len << 3));
                break;
+        case ND_OPT_ADVINT:
+               opa = (struct nd_opt_advint *)op;
+               TCHECK(opa->nd_opt_advint_advint);
+               printf("(advint: ");    /*)*/
+               printf("advint=%u",
+                   (u_int32_t)ntohl(opa->nd_opt_advint_advint));
+               /*(*/
+               printf(")");
+               icmp6_opt_print((const u_char *)op + (op->nd_opt_len << 3),
+                               resid - (op->nd_opt_len << 3));
+               break;                
        default:
                opts_len = op->nd_opt_len;
                printf("(unknwon opt_type=%d, opt_len=%d)",