]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-ip.c
add cisco prop. eigrp related, extd. communities
[tcpdump] / print-ip.c
index fc58f65529cb21e0a554542e9de4b800ab85f19d..137b2633a3752761fba7437fd1b816fb40ddb828 100644 (file)
@@ -21,7 +21,7 @@
 
 #ifndef lint
 static const char rcsid[] _U_ =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.149 2005-04-07 00:28:17 mcr Exp $ (LBL)";
+    "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.152 2005-10-07 10:48:14 hannes Exp $ (LBL)";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -411,6 +411,10 @@ again:
        case IPPROTO_SCTP:
                sctp_print(ipds->cp, (const u_char *)ipds->ip, ipds->len);
                break;
+
+       case IPPROTO_DCCP:
+               dccp_print(ipds->cp, (const u_char *)ipds->ip, ipds->len);
+               break;
                
        case IPPROTO_TCP:
                tcp_print(ipds->cp, ipds->len, (const u_char *)ipds->ip,
@@ -425,7 +429,7 @@ again:
        case IPPROTO_ICMP:
                /* pass on the MF bit plus the offset to detect fragments */
                icmp_print(ipds->cp, ipds->len, (const u_char *)ipds->ip,
-                          (ipds->off & 0x3fff));
+                          (ipds->off &~ 0x6000));
                break;
                
        case IPPROTO_PIGP:
@@ -502,6 +506,10 @@ again:
                vrrp_print(ipds->cp, ipds->len, ipds->ip->ip_ttl);
                break;
 
+       case IPPROTO_PGM:
+               pgm_print(ipds->cp, ipds->len, (const u_char *)ipds->ip);
+               break;
+
        default:
                if ((proto = getprotobynumber(ipds->nh)) != NULL)
                        ND_PRINT((ndo, " %s", proto->p_name));
@@ -661,7 +669,7 @@ ip_print(netdissect_options *ndo,
                ipds->nh = ipds->ip->ip_p;
 
                if (ipds->nh != IPPROTO_TCP && ipds->nh != IPPROTO_UDP &&
-                   ipds->nh != IPPROTO_SCTP) {
+                   ipds->nh != IPPROTO_SCTP && ipds->nh != IPPROTO_DCCP) {
                        (void)printf("%s > %s: ",
                                     ipaddr_string(&ipds->ip->ip_src),
                                     ipaddr_string(&ipds->ip->ip_dst));