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

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

Diff for /src/sys/netinet6/ip6_input.c between version 1.151 and 1.158

version 1.151, 2015/04/01 02:49:44 version 1.158, 2016/04/04 07:37:07
Line 64 
Line 64 
 #include <sys/cdefs.h>  #include <sys/cdefs.h>
 __KERNEL_RCSID(0, "$NetBSD$");  __KERNEL_RCSID(0, "$NetBSD$");
   
   #ifdef _KERNEL_OPT
 #include "opt_gateway.h"  #include "opt_gateway.h"
 #include "opt_inet.h"  #include "opt_inet.h"
 #include "opt_inet6.h"  #include "opt_inet6.h"
 #include "opt_ipsec.h"  #include "opt_ipsec.h"
 #include "opt_compat_netbsd.h"  #include "opt_compat_netbsd.h"
   #endif
   
 #include <sys/param.h>  #include <sys/param.h>
 #include <sys/systm.h>  #include <sys/systm.h>
Line 125  __KERNEL_RCSID(0, "$NetBSD$");
Line 127  __KERNEL_RCSID(0, "$NetBSD$");
 #include <netinet6/ip6protosw.h>  #include <netinet6/ip6protosw.h>
   
 #include "faith.h"  #include "faith.h"
 #include "gif.h"  
   
 #if NGIF > 0  
 #include <netinet6/in6_gif.h>  
 #endif  
   
 #include <net/net_osdep.h>  #include <net/net_osdep.h>
   
Line 139  u_char ip6_protox[IPPROTO_MAX];
Line 136  u_char ip6_protox[IPPROTO_MAX];
 struct in6_ifaddr *in6_ifaddr;  struct in6_ifaddr *in6_ifaddr;
 pktqueue_t *ip6_pktq __read_mostly;  pktqueue_t *ip6_pktq __read_mostly;
   
 extern callout_t in6_tmpaddrtimer_ch;  
   
 int ip6_forward_srcrt;                  /* XXX */  int ip6_forward_srcrt;                  /* XXX */
 int ip6_sourcecheck;                    /* XXX */  int ip6_sourcecheck;                    /* XXX */
 int ip6_sourcecheck_interval;           /* XXX */  int ip6_sourcecheck_interval;           /* XXX */
Line 149  pfil_head_t *inet6_pfil_hook;
Line 144  pfil_head_t *inet6_pfil_hook;
   
 percpu_t *ip6stat_percpu;  percpu_t *ip6stat_percpu;
   
 static void ip6_init2(void *);  static void ip6_init2(void);
 static void ip6intr(void *);  static void ip6intr(void *);
 static struct m_tag *ip6_setdstifaddr(struct mbuf *, const struct in6_ifaddr *);  static struct m_tag *ip6_setdstifaddr(struct mbuf *, const struct in6_ifaddr *);
   
Line 189  ip6_init(void)
Line 184  ip6_init(void)
         frag6_init();          frag6_init();
         ip6_desync_factor = cprng_fast32() % MAX_TEMP_DESYNC_FACTOR;          ip6_desync_factor = cprng_fast32() % MAX_TEMP_DESYNC_FACTOR;
   
         ip6_init2(NULL);          ip6_init2();
 #ifdef GATEWAY  #ifdef GATEWAY
         ip6flow_init(ip6_hashsize);          ip6flow_init(ip6_hashsize);
 #endif  #endif
Line 201  ip6_init(void)
Line 196  ip6_init(void)
 }  }
   
 static void  static void
 ip6_init2(void *dummy)  ip6_init2(void)
 {  {
   
         /* nd6_timer_init */  
         callout_init(&nd6_timer_ch, CALLOUT_MPSAFE);  
         callout_reset(&nd6_timer_ch, hz, nd6_timer, NULL);  
   
         /* timer for regeneranation of temporary addresses randomize ID */          /* timer for regeneranation of temporary addresses randomize ID */
         callout_init(&in6_tmpaddrtimer_ch, CALLOUT_MPSAFE);          callout_init(&in6_tmpaddrtimer_ch, CALLOUT_MPSAFE);
         callout_reset(&in6_tmpaddrtimer_ch,          callout_reset(&in6_tmpaddrtimer_ch,
Line 485  ip6_input(struct mbuf *m)
Line 476  ip6_input(struct mbuf *m)
          */           */
         if (rt != NULL &&          if (rt != NULL &&
             (rt->rt_flags & (RTF_HOST|RTF_GATEWAY)) == RTF_HOST &&              (rt->rt_flags & (RTF_HOST|RTF_GATEWAY)) == RTF_HOST &&
             !(rt->rt_flags & RTF_CLONED) &&  
 #if 0  #if 0
             /*              /*
              * The check below is redundant since the comparison of               * The check below is redundant since the comparison of
Line 509  ip6_input(struct mbuf *m)
Line 499  ip6_input(struct mbuf *m)
                         goto hbhcheck;                          goto hbhcheck;
                 } else {                  } else {
                         /* address is not ready, so discard the packet. */                          /* address is not ready, so discard the packet. */
                         nd6log((LOG_INFO,                          nd6log(LOG_INFO, "packet to an unready address %s->%s\n",
                             "ip6_input: packet to an unready address %s->%s\n",  
                             ip6_sprintf(&ip6->ip6_src),                              ip6_sprintf(&ip6->ip6_src),
                             ip6_sprintf(&ip6->ip6_dst)));                              ip6_sprintf(&ip6->ip6_dst));
   
                         goto bad;                          goto bad;
                 }                  }
Line 1609  const u_char inet6ctlerrmap[PRC_NCMDS] =
Line 1598  const u_char inet6ctlerrmap[PRC_NCMDS] =
         ENOPROTOOPT          ENOPROTOOPT
 };  };
   
   extern int sysctl_net_inet6_addrctlpolicy(SYSCTLFN_ARGS);
   
 static int  static int
 sysctl_net_inet6_ip6_stats(SYSCTLFN_ARGS)  sysctl_net_inet6_ip6_stats(SYSCTLFN_ARGS)
 {  {
Line 1774  sysctl_net_inet6_ip6_setup(struct sysctl
Line 1765  sysctl_net_inet6_ip6_setup(struct sysctl
                        NULL, 0, &ip6_defmcasthlim, 0,                         NULL, 0, &ip6_defmcasthlim, 0,
                        CTL_NET, PF_INET6, IPPROTO_IPV6,                         CTL_NET, PF_INET6, IPPROTO_IPV6,
                        IPV6CTL_DEFMCASTHLIM, CTL_EOL);                         IPV6CTL_DEFMCASTHLIM, CTL_EOL);
 #if NGIF > 0  
         sysctl_createv(clog, 0, NULL, NULL,  
                        CTLFLAG_PERMANENT|CTLFLAG_READWRITE,  
                        CTLTYPE_INT, "gifhlim",  
                        SYSCTL_DESCR("Default hop limit for a gif tunnel datagram"),  
                        NULL, 0, &ip6_gif_hlim, 0,  
                        CTL_NET, PF_INET6, IPPROTO_IPV6,  
                        IPV6CTL_GIF_HLIM, CTL_EOL);  
 #endif /* NGIF */  
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(clog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT,                         CTLFLAG_PERMANENT,
                        CTLTYPE_STRING, "kame_version",                         CTLTYPE_STRING, "kame_version",
Line 1817  sysctl_net_inet6_ip6_setup(struct sysctl
Line 1799  sysctl_net_inet6_ip6_setup(struct sysctl
                        IPV6CTL_V6ONLY, CTL_EOL);                         IPV6CTL_V6ONLY, CTL_EOL);
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(clog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT|CTLFLAG_READWRITE,                         CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
                        CTLTYPE_INT, "auto_linklocal",  
                        SYSCTL_DESCR("Default value of per-interface flag for "  
                                     "adding an IPv6 link-local address to "  
                                     "interfaces when attached"),  
                        NULL, 0, &ip6_auto_linklocal, 0,  
                        CTL_NET, PF_INET6, IPPROTO_IPV6,  
                        IPV6CTL_AUTO_LINKLOCAL, CTL_EOL);  
         sysctl_createv(clog, 0, NULL, NULL,  
                        CTLFLAG_PERMANENT|CTLFLAG_READWRITE,  
                        CTLTYPE_INT, "anonportmin",                         CTLTYPE_INT, "anonportmin",
                        SYSCTL_DESCR("Lowest ephemeral port number to assign"),                         SYSCTL_DESCR("Lowest ephemeral port number to assign"),
                        sysctl_net_inet_ip_ports, 0, &ip6_anonportmin, 0,                         sysctl_net_inet_ip_ports, 0, &ip6_anonportmin, 0,
Line 1858  sysctl_net_inet6_ip6_setup(struct sysctl
Line 1831  sysctl_net_inet6_ip6_setup(struct sysctl
 #endif /* IPNOPRIVPORTS */  #endif /* IPNOPRIVPORTS */
         sysctl_createv(clog, 0, NULL, NULL,          sysctl_createv(clog, 0, NULL, NULL,
                        CTLFLAG_PERMANENT|CTLFLAG_READWRITE,                         CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
                          CTLTYPE_INT, "auto_linklocal",
                          SYSCTL_DESCR("Default value of per-interface flag for "
                                       "adding an IPv6 link-local address to "
                                       "interfaces when attached"),
                          NULL, 0, &ip6_auto_linklocal, 0,
                          CTL_NET, PF_INET6, IPPROTO_IPV6,
                          IPV6CTL_AUTO_LINKLOCAL, CTL_EOL);
           sysctl_createv(clog, 0, NULL, NULL,
                          CTLFLAG_PERMANENT|CTLFLAG_READONLY,
                          CTLTYPE_STRUCT, "addctlpolicy",
                          SYSCTL_DESCR("Return the current address control"
                              " policy"),
                          sysctl_net_inet6_addrctlpolicy, 0, NULL, 0,
                          CTL_NET, PF_INET6, IPPROTO_IPV6,
                          IPV6CTL_ADDRCTLPOLICY, CTL_EOL);
           sysctl_createv(clog, 0, NULL, NULL,
                          CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
                        CTLTYPE_INT, "use_tempaddr",                         CTLTYPE_INT, "use_tempaddr",
                        SYSCTL_DESCR("Use temporary address"),                         SYSCTL_DESCR("Use temporary address"),
                        NULL, 0, &ip6_use_tempaddr, 0,                         NULL, 0, &ip6_use_tempaddr, 0,

Legend:
Removed from v.1.151  
changed lines
  Added in v.1.158

CVSweb <webmaster@jp.NetBSD.org>