From 70f0bdf6818a73c858bc47a23afc1e9d7c56d716 Mon Sep 17 00:00:00 2001 From: shin Date: Tue, 7 Dec 1999 17:39:16 +0000 Subject: udp IPv6 support, IPv6/IPv4 tunneling support in kernel, packet divert at kernel for IPv6/IPv4 translater daemon This includes queue related patch submitted by jburkhol@home.com. Submitted by: queue related patch from jburkhol@home.com Reviewed by: freebsd-arch, cvs-committers Obtained from: KAME project --- sys/netinet6/in6_proto.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'sys/netinet6/in6_proto.c') diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c index 1d1c7a3..3f59ec2 100644 --- a/sys/netinet6/in6_proto.c +++ b/sys/netinet6/in6_proto.c @@ -64,8 +64,6 @@ * @(#)in_proto.c 8.1 (Berkeley) 6/10/93 */ -#include "opt_inet.h" - #include #include #include @@ -104,9 +102,7 @@ #ifdef IPSEC #include -#ifdef INET6 #include -#endif /* INET6 */ #include #ifdef IPSEC_ESP #include @@ -116,7 +112,7 @@ #include -/* #include "gif.h" */ +#include "gif.h" #if NGIF > 0 #include #endif @@ -139,6 +135,12 @@ struct ip6protosw inet6sw[] = { ip6_init, 0, frag6_slowtimo, frag6_drain, &nousrreqs, }, +{ SOCK_DGRAM, &inet6domain, IPPROTO_UDP, PR_ATOMIC | PR_ADDR, + udp6_input, 0, udp6_ctlinput, ip6_ctloutput, + 0, + 0, 0, 0, 0, + &udp6_usrreqs, +}, { SOCK_RAW, &inet6domain, IPPROTO_RAW, PR_ATOMIC | PR_ADDR, rip6_input, rip6_output, 0, rip6_ctloutput, 0, @@ -194,18 +196,16 @@ struct ip6protosw inet6sw[] = { #if NGIF > 0 { SOCK_RAW, &inet6domain, IPPROTO_IPV4, PR_ATOMIC|PR_ADDR, in6_gif_input,0, 0, 0, - 0, + 0, 0, 0, 0, 0, &nousrreqs }, -#ifdef INET6 { SOCK_RAW, &inet6domain, IPPROTO_IPV6, PR_ATOMIC|PR_ADDR, in6_gif_input,0, 0, 0, - 0, + 0, 0, 0, 0, 0, &nousrreqs }, -#endif /* INET6 */ #endif /* GIF */ /* raw wildcard */ { SOCK_RAW, &inet6domain, 0, PR_ATOMIC | PR_ADDR, @@ -334,8 +334,8 @@ sysctl_ip6_forwarding SYSCTL_HANDLER_ARGS int s = splnet(); struct nd_prefix *pr, *next; - for (pr = nd_prefix.lh_first; pr; pr = next) { - next = pr->ndpr_next; + for (pr = LIST_FIRST(&nd_prefix); pr; pr = next) { + next = LIST_NEXT(pr, ndpr_entry); if (!IN6_IS_ADDR_UNSPECIFIED(&pr->ndpr_addr)) in6_ifdel(pr->ndpr_ifp, &pr->ndpr_addr); prelist_remove(pr); @@ -379,6 +379,8 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_DEFMCASTHLIM, defmcasthlim, CTLFLAG_RW, &ip6_defmcasthlim, 0, ""); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_GIF_HLIM, gifhlim, CTLFLAG_RW, &ip6_gif_hlim, 0, ""); +SYSCTL_STRING(_net_inet6_ip6, IPV6CTL_KAME_VERSION, + kame_version, CTLFLAG_RD, __KAME_VERSION, 0, ""); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_USE_DEPRECATED, use_deprecated, CTLFLAG_RW, &ip6_use_deprecated, 0, ""); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_RR_PRUNE, -- cgit v1.1