[BACK]Return to ip_input.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/netinet/ip_input.c between version 1.134 and 1.135

version 1.134, 2001/05/21 03:31:36 version 1.135, 2001/06/02 16:17:09
Line 105 
Line 105 
 #include "opt_pfil_hooks.h"  #include "opt_pfil_hooks.h"
 #include "opt_ipsec.h"  #include "opt_ipsec.h"
 #include "opt_mrouting.h"  #include "opt_mrouting.h"
   #include "opt_inet_csum.h"
   
 #include <sys/param.h>  #include <sys/param.h>
 #include <sys/systm.h>  #include <sys/systm.h>
Line 270  do {         \
Line 271  do {         \
   
 struct pool ipqent_pool;  struct pool ipqent_pool;
   
   #ifdef INET_CSUM_COUNTERS
   #include <sys/device.h>
   
   struct evcnt ip_hwcsum_bad = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
       NULL, "inet", "hwcsum bad");
   struct evcnt ip_hwcsum_ok = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
       NULL, "inet", "hwcsum ok");
   struct evcnt ip_swcsum = EVCNT_INITIALIZER(EVCNT_TYPE_MISC,
       NULL, "inet", "swcsum");
   
   #define INET_CSUM_COUNTER_INCR(ev)      (ev)->ev_count++
   
   #else
   
   #define INET_CSUM_COUNTER_INCR(ev)      /* nothing */
   
   #endif /* INET_CSUM_COUNTERS */
   
 /*  /*
  * We need to save the IP options in case a protocol wants to respond   * We need to save the IP options in case a protocol wants to respond
  * to an incoming packet over the same route if the packet got here   * to an incoming packet over the same route if the packet got here
Line 332  ip_init()
Line 351  ip_init()
                 printf("ip_init: WARNING: unable to register pfil hook, "                  printf("ip_init: WARNING: unable to register pfil hook, "
                     "error %d\n", i);                      "error %d\n", i);
 #endif /* PFIL_HOOKS */  #endif /* PFIL_HOOKS */
   
   #ifdef INET_CSUM_COUNTERS
           evcnt_attach_static(&ip_hwcsum_bad);
           evcnt_attach_static(&ip_hwcsum_ok);
           evcnt_attach_static(&ip_swcsum);
   #endif /* INET_CSUM_COUNTERS */
 }  }
   
 struct  sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET };  struct  sockaddr_in ipaddr = { sizeof(ipaddr), AF_INET };
Line 433  ip_input(struct mbuf *m)
Line 458  ip_input(struct mbuf *m)
                 }                  }
         }          }
   
         if (in_cksum(m, hlen) != 0) {          switch (m->m_pkthdr.csum_flags &
                 ipstat.ips_badsum++;                  ((m->m_pkthdr.rcvif->if_csum_flags & M_CSUM_IPv4) |
                 goto bad;                   M_CSUM_IPv4_BAD)) {
           case M_CSUM_IPv4|M_CSUM_IPv4_BAD:
                   INET_CSUM_COUNTER_INCR(&ip_hwcsum_bad);
                   goto badcsum;
   
           case M_CSUM_IPv4:
                   /* Checksum was okay. */
                   INET_CSUM_COUNTER_INCR(&ip_hwcsum_ok);
                   break;
   
           default:
                   /* Must compute it ourselves. */
                   INET_CSUM_COUNTER_INCR(&ip_swcsum);
                   if (in_cksum(m, hlen) != 0)
                           goto bad;
                   break;
         }          }
   
         /* Retrieve the packet length. */          /* Retrieve the packet length. */
Line 754  found:
Line 794  found:
     }      }
 bad:  bad:
         m_freem(m);          m_freem(m);
           return;
   
   badcsum:
           ipstat.ips_badsum++;
           m_freem(m);
 }  }
   
 /*  /*
Line 1434  ip_forward(m, srcrt)
Line 1479  ip_forward(m, srcrt)
         struct ifnet dummyifp;          struct ifnet dummyifp;
 #endif  #endif
   
           /*
            * Clear any in-bound checksum flags for this packet.
            */
           m->m_pkthdr.csum_flags = 0;
   
         dest = 0;          dest = 0;
 #ifdef DIAGNOSTIC  #ifdef DIAGNOSTIC
         if (ipprintfs)          if (ipprintfs)

Legend:
Removed from v.1.134  
changed lines
  Added in v.1.135

CVSweb <webmaster@jp.NetBSD.org>