[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.266 and 1.267

version 1.266, 2008/04/12 05:58:22 version 1.267, 2008/04/23 06:09:04
Line 149  __KERNEL_RCSID(0, "$NetBSD$");
Line 149  __KERNEL_RCSID(0, "$NetBSD$");
   
 #ifdef IPSEC  #ifdef IPSEC
 #include <netinet6/ipsec.h>  #include <netinet6/ipsec.h>
   #include <netinet6/ipsec_private.h>
 #include <netkey/key.h>  #include <netkey/key.h>
 #endif  #endif
 #ifdef FAST_IPSEC  #ifdef FAST_IPSEC
Line 835  ip_input(struct mbuf *m)
Line 836  ip_input(struct mbuf *m)
                 }                  }
 #ifdef IPSEC  #ifdef IPSEC
                 if (ipsec4_in_reject(m, NULL)) {                  if (ipsec4_in_reject(m, NULL)) {
                         ipsecstat.in_polvio++;                          IPSEC_STATINC(IPSEC_STAT_IN_POLVIO);
                         goto bad;                          goto bad;
                 }                  }
 #endif  #endif
Line 1000  found:
Line 1001  found:
          */           */
         if ((inetsw[ip_protox[ip->ip_p]].pr_flags & PR_LASTHDR) != 0 &&          if ((inetsw[ip_protox[ip->ip_p]].pr_flags & PR_LASTHDR) != 0 &&
             ipsec4_in_reject(m, NULL)) {              ipsec4_in_reject(m, NULL)) {
                 ipsecstat.in_polvio++;                  IPSEC_STATINC(IPSEC_STAT_IN_POLVIO);
                 goto bad;                  goto bad;
         }          }
 #endif  #endif
Line 2194  sysctl_net_inet_ip_hashsize(SYSCTLFN_ARG
Line 2195  sysctl_net_inet_ip_hashsize(SYSCTLFN_ARG
 }  }
 #endif /* GATEWAY */  #endif /* GATEWAY */
   
 static void  
 ipstat_convert_to_user_cb(void *v1, void *v2, struct cpu_info *ci)  
 {  
         uint64_t *ipsc = v1;  
         uint64_t *ips = v2;  
         u_int i;  
   
         for (i = 0; i < IP_NSTATS; i++)  
                 ips[i] += ipsc[i];  
 }  
   
 static void  
 ipstat_convert_to_user(uint64_t *ips)  
 {  
   
         memset(ips, 0, sizeof(uint64_t) * IP_NSTATS);  
         percpu_foreach(ipstat_percpu, ipstat_convert_to_user_cb, ips);  
 }  
   
 static int  static int
 sysctl_net_inet_ip_stats(SYSCTLFN_ARGS)  sysctl_net_inet_ip_stats(SYSCTLFN_ARGS)
 {  {
         struct sysctlnode node;          netstat_sysctl_context ctx;
         uint64_t ips[IP_NSTATS];          uint64_t ips[IP_NSTATS];
   
         ipstat_convert_to_user(ips);          ctx.ctx_stat = ipstat_percpu;
         node = *rnode;          ctx.ctx_counters = ips;
         node.sysctl_data = ips;          ctx.ctx_ncounters = IP_NSTATS;
         node.sysctl_size = sizeof(ips);          return (NETSTAT_SYSCTL(&ctx));
         return (sysctl_lookup(SYSCTLFN_CALL(&node)));  
 }  }
   
 SYSCTL_SETUP(sysctl_net_inet_ip_setup, "sysctl net.inet.ip subtree setup")  SYSCTL_SETUP(sysctl_net_inet_ip_setup, "sysctl net.inet.ip subtree setup")

Legend:
Removed from v.1.266  
changed lines
  Added in v.1.267

CVSweb <webmaster@jp.NetBSD.org>