From owner-p4-projects@FreeBSD.ORG Tue Sep 4 23:40:52 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A4D816A46B; Tue, 4 Sep 2007 23:40:52 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6573516A468 for ; Tue, 4 Sep 2007 23:40:52 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 560E713C469 for ; Tue, 4 Sep 2007 23:40:52 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l84Neqtp040252 for ; Tue, 4 Sep 2007 23:40:52 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l84NepnW040245 for perforce@freebsd.org; Tue, 4 Sep 2007 23:40:51 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 4 Sep 2007 23:40:51 GMT Message-Id: <200709042340.l84NepnW040245@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 126081 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Sep 2007 23:40:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=126081 Change 126081 by anchie@anchie_malimis on 2007/09/04 23:39:51 Added domain init function for inet6domain. Affected files ... .. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#28 edit .. //depot/projects/vimage/src/sys/netinet6/icmp6.c#15 edit .. //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#13 edit .. //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#13 edit .. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#14 edit .. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#22 edit .. //depot/projects/vimage/src/sys/netinet6/ip6_output.c#11 edit .. //depot/projects/vimage/src/sys/netinet6/nd6.c#19 edit .. //depot/projects/vimage/src/sys/netinet6/nd6.h#5 edit .. //depot/projects/vimage/src/sys/netinet6/nd6_rtr.c#9 edit .. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#14 edit .. //depot/projects/vimage/src/sys/netinet6/scope6.c#11 edit .. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#17 edit .. //depot/projects/vimage/src/sys/netinet6/vinet6.h#12 edit Differences ... ==== //depot/projects/vimage/src/sys/netinet/tcp_subr.c#28 (text+ko) ==== @@ -95,6 +95,7 @@ #include #endif #include +#include #ifdef IPSEC #include @@ -1148,6 +1149,7 @@ tcp6_getcred(SYSCTL_HANDLER_ARGS) { INIT_VNET_INET(curvnet); + INIT_VNET_INET6(curvnet); struct xucred xuc; struct sockaddr_in6 addrs[2]; struct inpcb *inp; @@ -1159,8 +1161,8 @@ error = SYSCTL_IN(req, addrs, sizeof(addrs)); if (error) return (error); - if ((error = sa6_embedscope(&addrs[0], ip6_use_defzone)) != 0 || - (error = sa6_embedscope(&addrs[1], ip6_use_defzone)) != 0) { + if ((error = sa6_embedscope(&addrs[0], V_ip6_use_defzone)) != 0 || + (error = sa6_embedscope(&addrs[1], V_ip6_use_defzone)) != 0) { return (error); } if (IN6_IS_ADDR_V4MAPPED(&addrs[0].sin6_addr)) { @@ -2062,6 +2064,7 @@ sysctl_drop(SYSCTL_HANDLER_ARGS) { INIT_VNET_INET(curvnet); + INIT_VNET_INET6(curvnet); /* addrs[0] is a foreign socket, addrs[1] is a local one. */ struct sockaddr_storage addrs[2]; struct inpcb *inp; @@ -2108,10 +2111,10 @@ lin = (struct sockaddr_in *)&addrs[1]; break; } - error = sa6_embedscope(fin6, ip6_use_defzone); + error = sa6_embedscope(fin6, V_ip6_use_defzone); if (error) return (error); - error = sa6_embedscope(lin6, ip6_use_defzone); + error = sa6_embedscope(lin6, V_ip6_use_defzone); if (error) return (error); break; ==== //depot/projects/vimage/src/sys/netinet6/icmp6.c#15 (text+ko) ==== @@ -120,7 +120,7 @@ static int icmp6errpps_count = 0; #endif /* !VIMAGE */ static struct timeval icmp6errppslim_last; -#ifdef VIMAGE +#ifndef VIMAGE extern int icmp6_nodeinfo; #endif /* !VIMAGE */ ==== //depot/projects/vimage/src/sys/netinet6/in6_ifattach.c#13 (text+ko) ==== @@ -136,6 +136,7 @@ static int generate_tmp_ifid(u_int8_t *seed0, const u_int8_t *seed1, u_int8_t *ret) { + INIT_VNET_INET6(curvnet); MD5_CTX ctxt; u_int8_t seed[16], digest[16], nullbuf[8]; u_int32_t val32; @@ -356,6 +357,7 @@ struct in6_addr *in6) { INIT_VNET_NET(ifp0->if_vnet); + INIT_VNET_INET6(ifp0->if_vnet); struct ifnet *ifp; /* first, try to get it from the interface itself */ @@ -419,6 +421,7 @@ static int in6_ifattach_linklocal(struct ifnet *ifp, struct ifnet *altifp) { + INIT_VNET_INET6(curvnet); struct in6_ifaddr *ia; struct in6_aliasreq ifra; struct nd_prefixctl pr0; @@ -535,6 +538,7 @@ static int in6_ifattach_loopback(struct ifnet *ifp) { + INIT_VNET_INET6(curvnet); struct in6_aliasreq ifra; int error; ==== //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#13 (text+ko) ==== @@ -146,7 +146,7 @@ if (nam->sa_family != AF_INET6) return (EAFNOSUPPORT); - if ((error = sa6_embedscope(sin6, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(sin6, V_ip6_use_defzone)) != 0) return(error); lport = sin6->sin6_port; @@ -302,9 +302,9 @@ if (sin6->sin6_port == 0) return (EADDRNOTAVAIL); - if (sin6->sin6_scope_id == 0 && !ip6_use_defzone) + if (sin6->sin6_scope_id == 0 && !V_ip6_use_defzone) scope_ambiguous = 1; - if ((error = sa6_embedscope(sin6, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(sin6, V_ip6_use_defzone)) != 0) return(error); if (V_in6_ifaddr) { ==== //depot/projects/vimage/src/sys/netinet6/in6_proto.c#14 (text+ko) ==== @@ -349,37 +349,9 @@ extern int in6_detachhead(void **, int); #endif -static void -ip6_test_init(void) -{ - printf("---> ip6_test_init() \n"); -} - -struct domain inet6domain = { - .dom_family = AF_INET6, - .dom_name = "internet6", - .dom_protosw = (struct protosw *)inet6sw, - .dom_protoswNPROTOSW = (struct protosw *) - &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], - .dom_rtattach = in6_inithead, -#ifdef VIMAGE - .dom_rtdetach = in6_detachhead, -#endif - .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3, - .dom_maxrtkey = sizeof(struct sockaddr_in6), - .dom_ifattach = in6_domifattach, - .dom_ifdetach = in6_domifdetach, -#ifdef VIMAGE - .dom_init = ip6_test_init -#endif -}; - -DOMAIN_SET(inet6); - /* * Internet configuration info */ -#ifndef VIMAGE #ifndef IPV6FORWARDING #ifdef GATEWAY6 #define IPV6FORWARDING 1 /* forward IP6 packets not for us */ @@ -392,6 +364,7 @@ #define IPV6_SENDREDIRECTS 1 #endif +#ifndef VIMAGE int ip6_forwarding = IPV6FORWARDING; /* act as router? */ int ip6_sendredirects = IPV6_SENDREDIRECTS; int ip6_defhlim = IPV6_DEFHLIM; @@ -426,6 +399,7 @@ #ifndef VIMAGE int pmtu_expire = 60*10; int pmtu_probe = 60*2; +#endif /* raw IP6 parameters */ /* @@ -434,6 +408,7 @@ #define RIPV6SNDQ 8192 #define RIPV6RCVQ 8192 +#ifndef VIMAGE u_long rip6_sendspace = RIPV6SNDQ; u_long rip6_recvspace = RIPV6RCVQ; @@ -447,7 +422,6 @@ /* UDP on IP6 parameters */ int udp6_sendspace = 9216; /* really max datagram size */ int udp6_recvspace = 40 * (1024 + sizeof(struct sockaddr_in6)); - /* 40 1K datagrams */ #endif /* !VIMAGE */ /* @@ -477,7 +451,9 @@ #endif { INIT_VNET_INET6(curvnet); +#ifdef VIMAGE SYSCTL_RESOLVE_V_ARG1(); +#endif int error = 0; int old; @@ -502,7 +478,9 @@ #endif { INIT_VNET_INET6(curvnet); +#ifdef VIMAGE SYSCTL_RESOLVE_V_ARG1(); +#endif int error = 0; int old; @@ -552,12 +530,21 @@ rr_prune, CTLFLAG_RW, ip6_rr_prune, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_USETEMPADDR, use_tempaddr, CTLFLAG_RW, ip6_use_tempaddr, 0, ""); +#ifdef VIMAGE SYSCTL_V_OID(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_TEMPPLTIME, temppltime, CTLTYPE_INT|CTLFLAG_RW, ip6_temp_preferred_lifetime, 0, sysctl_ip6_temppltime, "I", ""); SYSCTL_V_OID(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_TEMPVLTIME, tempvltime, CTLTYPE_INT|CTLFLAG_RW, ip6_temp_valid_lifetime, 0, sysctl_ip6_tempvltime, "I", ""); +#else +SYSCTL_OID(_net_inet6_ip6, IPV6CTL_TEMPPLTIME, temppltime, + CTLTYPE_INT|CTLFLAG_RW, &ip6_temp_preferred_lifetime, 0, + sysctl_ip6_temppltime, "I", ""); +SYSCTL_OID(_net_inet6_ip6, IPV6CTL_TEMPVLTIME, tempvltime, + CTLTYPE_INT|CTLFLAG_RW, &ip6_temp_valid_lifetime, 0, + sysctl_ip6_tempvltime, "I", ""); +#endif SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_V6ONLY, v6only, CTLFLAG_RW, ip6_v6only, 0, ""); #ifndef VIMAGE @@ -569,8 +556,8 @@ rip6stats, CTLFLAG_RD, rip6stat, rip6stat, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR, prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, ""); -SYSCTL_INT(_net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, - use_defaultzone, CTLFLAG_RW, &ip6_use_defzone, 0,""); +SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, + use_defaultzone, CTLFLAG_RW, ip6_use_defzone, 0,""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MAXFRAGS, maxfrags, CTLFLAG_RW, ip6_maxfrags, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MCAST_PMTU, @@ -603,5 +590,79 @@ errppslimit, CTLFLAG_RW, icmp6errppslim, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_MAXNUDHINT, nd6_maxnudhint, CTLFLAG_RW, nd6_maxnudhint, 0, ""); -SYSCTL_INT(_net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG, - nd6_debug, CTLFLAG_RW, &nd6_debug, 0, ""); +SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG, + nd6_debug, CTLFLAG_RW, nd6_debug, 0, ""); + +#ifdef VIMAGE +static void +ip6_test_init(void) +{ + INIT_VNET_INET6(curvnet); + INIT_VNET_GIF(curvnet); + + printf("---> ip6_test_init() \n"); + V_ip6_forwarding = IPV6FORWARDING; /* act as router? */ + V_ip6_sendredirects = IPV6_SENDREDIRECTS; + V_ip6_defhlim = IPV6_DEFHLIM; + V_ip6_defmcasthlim = IPV6_DEFAULT_MULTICAST_HOPS; + V_ip6_accept_rtadv = 0; /* "IPV6FORWARDING ? 0 : 1" is dangerous */ + V_ip6_maxfragpackets = 0; /* initialized in frag6.c:frag6_init() */ + V_ip6_maxfrags = 0; /* initialized in frag6.c:frag6_init() */ + V_ip6_log_interval = 5; + V_ip6_hdrnestlimit = 15; /* How many header options will we process? */ + V_ip6_dad_count = 1; /* DupAddrDetectionTransmits */ + V_ip6_auto_flowlabel = 1; + V_ip6_gif_hlim = 0; + V_ip6_use_deprecated = 1; /* allow deprecated addr (RFC2462 5.5.4) */ + V_ip6_rr_prune = 5; /* router renumbering prefix + * walk list every 5 sec. */ + V_ip6_mcast_pmtu = 0; /* enable pMTU discovery for multicast? */ + V_ip6_v6only = 1; + + V_ip6_keepfaith = 0; + V_ip6_log_time = (time_t)0L; +#ifdef IPSTEALTH + V_ip6stealth = 0; +#endif + + V_pmtu_expire = 60*10; + V_pmtu_probe = 60*2; + + V_rip6_sendspace = RIPV6SNDQ; + V_rip6_recvspace = RIPV6RCVQ; + + /* ICMPV6 parameters */ + V_icmp6_rediraccept = 1; /* accept and process redirects */ + V_icmp6_redirtimeout = 10 * 60; /* 10 minutes */ + V_icmp6errppslim = 100; /* 100pps */ + /* control how to respond to NI queries */ + V_icmp6_nodeinfo = (ICMP6_NODEINFO_FQDNOK|ICMP6_NODEINFO_NODEADDROK); + + /* UDP on IP6 parameters */ + V_udp6_sendspace = 9216; /* really max datagram size */ + V_udp6_recvspace = 40 * (1024 + sizeof(struct sockaddr_in6)); + /* 40 1K datagrams */ + +} +#endif + +struct domain inet6domain = { + .dom_family = AF_INET6, + .dom_name = "internet6", + .dom_protosw = (struct protosw *)inet6sw, + .dom_protoswNPROTOSW = (struct protosw *) + &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], + .dom_rtattach = in6_inithead, +#ifdef VIMAGE + .dom_rtdetach = in6_detachhead, +#endif + .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3, + .dom_maxrtkey = sizeof(struct sockaddr_in6), + .dom_ifattach = in6_domifattach, + .dom_ifdetach = in6_domifdetach, +#ifdef VIMAGE + .dom_init = ip6_test_init +#endif +}; + +DOMAIN_SET(inet6); ==== //depot/projects/vimage/src/sys/netinet6/ip6_input.c#22 (text+ko) ==== @@ -159,22 +159,6 @@ SYSINIT(inet6, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, vnet_inet6_register, 0); #endif /* VIMAGE */ -#ifdef VIMAGE -#ifndef IPV6FORWARDING -#ifdef GATEWAY6 -#define IPV6FORWARDING 1 /* forward IP6 packets not for us */ -#else -#define IPV6FORWARDING 0 /* don't forward IP6 packets not for us */ -#endif /* !GATEWAY6 */ -#endif /* !IPV6FORWARDING */ - -#ifndef IPV6_SENDREDIRECTS -#define IPV6_SENDREDIRECTS 1 -#endif -#define RIPV6SNDQ 8192 -#define RIPV6RCVQ 8192 -#endif /* !VIMAGE */ - /* * IP6 initialization: fill in IP6 protocol switch table. * All protocols not implemented in kernel go to raw IP6 protocol handler. @@ -184,52 +168,9 @@ { printf("---> ip6_init() \n"); INIT_VNET_INET6(curvnet); - INIT_VNET_GIF(curvnet); struct ip6protosw *pr; int i; - V_ip6_forwarding = IPV6FORWARDING; /* act as router? */ - V_ip6_sendredirects = IPV6_SENDREDIRECTS; - V_ip6_defhlim = IPV6_DEFHLIM; - V_ip6_defmcasthlim = IPV6_DEFAULT_MULTICAST_HOPS; - V_ip6_accept_rtadv = 0; /* "IPV6FORWARDING ? 0 : 1" is dangerous */ - V_ip6_maxfragpackets = 0; /* initialized in frag6.c:frag6_init() */ - V_ip6_maxfrags = 0; /* initialized in frag6.c:frag6_init() */ - V_ip6_log_interval = 5; - V_ip6_hdrnestlimit = 15; /* How many header options will we process? */ - V_ip6_dad_count = 1; /* DupAddrDetectionTransmits */ - V_ip6_auto_flowlabel = 1; - V_ip6_gif_hlim = 0; - V_ip6_use_deprecated = 1; /* allow deprecated addr (RFC2462 5.5.4) */ - V_ip6_rr_prune = 5; /* router renumbering prefix - * walk list every 5 sec. */ - V_ip6_mcast_pmtu = 0; /* enable pMTU discovery for multicast? */ - V_ip6_v6only = 1; - - V_ip6_keepfaith = 0; - V_ip6_log_time = (time_t)0L; -#ifdef IPSTEALTH - V_ip6stealth = 0; -#endif - - V_pmtu_expire = 60*10; - V_pmtu_probe = 60*2; - - V_rip6_sendspace = RIPV6SNDQ; - V_rip6_recvspace = RIPV6RCVQ; - - /* ICMPV6 parameters */ - V_icmp6_rediraccept = 1; /* accept and process redirects */ - V_icmp6_redirtimeout = 10 * 60; /* 10 minutes */ - V_icmp6errppslim = 100; /* 100pps */ - /* control how to respond to NI queries */ - V_icmp6_nodeinfo = (ICMP6_NODEINFO_FQDNOK|ICMP6_NODEINFO_NODEADDROK); - - /* UDP on IP6 parameters */ - V_udp6_sendspace = 9216; /* really max datagram size */ - V_udp6_recvspace = 40 * (1024 + sizeof(struct sockaddr_in6)); - /* 40 1K datagrams */ - V_ip6_prefer_tempaddr = 0; V_ip6qmaxlen = IFQ_MAXLEN; ==== //depot/projects/vimage/src/sys/netinet6/ip6_output.c#11 (text+ko) ==== @@ -455,7 +455,7 @@ sa.sin6_len = sizeof(sa); sa.sin6_addr = addr[0]; if ((error = sa6_embedscope(&sa, - ip6_use_defzone)) != 0) { + V_ip6_use_defzone)) != 0) { goto bad; } ip6->ip6_dst = sa.sin6_addr; @@ -2662,7 +2662,7 @@ sa6_mc.sin6_family = AF_INET6; sa6_mc.sin6_len = sizeof(sa6_mc); sa6_mc.sin6_addr = mreq->ipv6mr_multiaddr; - error = sa6_embedscope(&sa6_mc, ip6_use_defzone); + error = sa6_embedscope(&sa6_mc, V_ip6_use_defzone); if (error != 0) break; mreq->ipv6mr_multiaddr = sa6_mc.sin6_addr; @@ -2848,6 +2848,7 @@ int priv, int sticky, int cmsg, int uproto) { INIT_VNET_NET(curvnet); + INIT_VNET_INET6(curvnet); int minmtupolicy, preftemp; if (!sticky && !cmsg) { @@ -3015,7 +3016,7 @@ IN6_IS_ADDR_MULTICAST(&sa6->sin6_addr)) { return (EINVAL); } - if ((error = sa6_embedscope(sa6, ip6_use_defzone)) + if ((error = sa6_embedscope(sa6, V_ip6_use_defzone)) != 0) { return (error); } ==== //depot/projects/vimage/src/sys/netinet6/nd6.c#19 (text+ko) ==== @@ -94,7 +94,6 @@ int nd6_maxnudhint = 0; /* max # of subsequent upper layer hints */ int nd6_maxqueuelen = 1; /* max # of packets cached in unresolved ND entries */ -#endif /* !VIMAGE */ #ifdef ND6_DEBUG int nd6_debug = 1; @@ -102,7 +101,6 @@ int nd6_debug = 0; #endif -#ifndef VIMAGE /* for debugging? */ static int nd6_inuse, nd6_allocated; @@ -147,6 +145,13 @@ V_nd6_maxnudhint = 0; /* max # of subsequent upper layer hints */ V_nd6_maxqueuelen = 1; /* max # of packets cached in unresolved ND entries */ + +#ifdef ND6_DEBUG + V_nd6_debug = 1; +#else + V_nd6_debug = 0; +#endif + V_nd6_recalc_reachtm_interval = ND6_RECALC_REACHTM_INTERVAL; V_dad_ignore_ns = 0; /* ignore NS in DAD - specwise incorrect*/ @@ -864,6 +869,7 @@ struct rtentry * nd6_lookup(struct in6_addr *addr6, int create, struct ifnet *ifp) { + INIT_VNET_INET6(curvnet); struct rtentry *rt; struct sockaddr_in6 sin6; char ip6buf[INET6_ADDRSTRLEN]; ==== //depot/projects/vimage/src/sys/netinet6/nd6.h#5 (text+ko) ==== @@ -328,6 +328,7 @@ LIST_HEAD(nd_prhead, nd_prefix); /* nd6.c */ +#ifndef VIMAGE extern int nd6_prune; extern int nd6_delay; extern int nd6_umaxtries; @@ -335,14 +336,13 @@ extern int nd6_useloopback; extern int nd6_maxnudhint; extern int nd6_gctimer; -#ifndef VIMAGE extern struct llinfo_nd6 llinfo_nd6; extern struct nd_drhead nd_defrouter; extern struct nd_prhead nd_prefix; +extern int nd6_debug; #endif -extern int nd6_debug; -#define nd6log(x) do { if (nd6_debug) log x; } while (/*CONSTCOND*/ 0) +#define nd6log(x) do { if (V_nd6_debug) log x; } while (/*CONSTCOND*/ 0) #ifndef VIMAGE extern struct callout nd6_timer_ch; @@ -351,13 +351,11 @@ /* nd6_rtr.c */ #ifndef VIMAGE extern int nd6_defifindex; -#endif extern int ip6_desync_factor; /* seconds */ -#ifndef VIMAGE extern u_int32_t ip6_temp_preferred_lifetime; /* seconds */ extern u_int32_t ip6_temp_valid_lifetime; /* seconds */ +extern int ip6_temp_regen_advance; /* seconds */ #endif -extern int ip6_temp_regen_advance; /* seconds */ union nd_opts { struct nd_opt_hdr *nd_opt_array[8]; /* max = target address list */ ==== //depot/projects/vimage/src/sys/netinet6/nd6_rtr.c#9 (text+ko) ==== @@ -933,6 +933,7 @@ void prelist_remove(struct nd_prefix *pr) { + INIT_VNET_INET6(curvnet); struct nd_pfxrouter *pfr, *next; int e, s; char ip6buf[INET6_ADDRSTRLEN]; @@ -1742,6 +1743,7 @@ static struct in6_ifaddr * in6_ifadd(struct nd_prefixctl *pr, int mcast) { + INIT_VNET_INET6(curvnet); struct ifnet *ifp = pr->ndpr_ifp; struct ifaddr *ifa; struct in6_aliasreq ifra; ==== //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#14 (text+ko) ==== @@ -371,9 +371,9 @@ * XXX: we may still need to determine the zone later. */ if (!(so->so_state & SS_ISCONNECTED)) { - if (dstsock->sin6_scope_id == 0 && !ip6_use_defzone) + if (dstsock->sin6_scope_id == 0 && !V_ip6_use_defzone) scope_ambiguous = 1; - if ((error = sa6_embedscope(dstsock, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(dstsock, V_ip6_use_defzone)) != 0) goto bad; } @@ -654,6 +654,7 @@ { INIT_VNET_NET(so->so_vnet); INIT_VNET_INET(so->so_vnet); + INIT_VNET_INET6(so->so_vnet); struct inpcb *inp = sotoinpcb(so); struct sockaddr_in6 *addr = (struct sockaddr_in6 *)nam; struct ifaddr *ia = NULL; @@ -664,7 +665,7 @@ return EINVAL; if (TAILQ_EMPTY(&V_ifnet) || addr->sin6_family != AF_INET6) return EADDRNOTAVAIL; - if ((error = sa6_embedscope(addr, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(addr, V_ip6_use_defzone)) != 0) return(error); if (!IN6_IS_ADDR_UNSPECIFIED(&addr->sin6_addr) && @@ -689,6 +690,7 @@ { INIT_VNET_NET(so->so_vnet); INIT_VNET_INET(so->so_vnet); + INIT_VNET_INET6(so->so_vnet); struct inpcb *inp = sotoinpcb(so); struct sockaddr_in6 *addr = (struct sockaddr_in6 *)nam; struct in6_addr *in6a = NULL; @@ -711,9 +713,9 @@ * we'll see if we can determine the outgoing interface. If we * can, determine the zone ID based on the interface below. */ - if (addr->sin6_scope_id == 0 && !ip6_use_defzone) + if (addr->sin6_scope_id == 0 && !V_ip6_use_defzone) scope_ambiguous = 1; - if ((error = sa6_embedscope(addr, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(addr, V_ip6_use_defzone)) != 0) return(error); INP_INFO_WLOCK(&V_ripcbinfo); ==== //depot/projects/vimage/src/sys/netinet6/scope6.c#11 (text+ko) ==== @@ -51,11 +51,13 @@ #include #include +#ifndef VIMAGE #ifdef ENABLE_DEFAULT_SCOPE int ip6_use_defzone = 1; #else int ip6_use_defzone = 0; #endif +#endif /* !VIMAGE */ /* * The scope6_lock protects the global sid default stored in @@ -79,6 +81,12 @@ { INIT_VNET_INET6(curvnet); +#ifdef ENABLE_DEFAULT_SCOPE + V_ip6_use_defzone = 1; +#else + V_ip6_use_defzone = 0; +#endif + bzero(&V_sid_default, sizeof(V_sid_default)); #ifdef VIMAGE ==== //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#17 (text+ko) ==== @@ -437,6 +437,7 @@ udp6_getcred(SYSCTL_HANDLER_ARGS) { INIT_VNET_INET(curvnet); + INIT_VNET_INET6(curvnet); struct xucred xuc; struct sockaddr_in6 addrs[2]; struct inpcb *inp; @@ -453,8 +454,8 @@ error = SYSCTL_IN(req, addrs, sizeof(addrs)); if (error) return (error); - if ((error = sa6_embedscope(&addrs[0], ip6_use_defzone)) != 0 || - (error = sa6_embedscope(&addrs[1], ip6_use_defzone)) != 0) { + if ((error = sa6_embedscope(&addrs[0], V_ip6_use_defzone)) != 0 || + (error = sa6_embedscope(&addrs[1], V_ip6_use_defzone)) != 0) { return (error); } INP_INFO_RLOCK(&V_udbinfo); @@ -494,6 +495,7 @@ struct mbuf *control, struct thread *td) { INIT_VNET_INET(curvnet); + INIT_VNET_INET6(curvnet); u_int32_t ulen = m->m_pkthdr.len; u_int32_t plen = sizeof(struct udphdr) + ulen; struct ip6_hdr *ip6; @@ -532,9 +534,9 @@ * we'll see if we can determine the outgoing interface. If we * can, determine the zone ID based on the interface below. */ - if (sin6->sin6_scope_id == 0 && !ip6_use_defzone) + if (sin6->sin6_scope_id == 0 && !V_ip6_use_defzone) scope_ambiguous = 1; - if ((error = sa6_embedscope(sin6, ip6_use_defzone)) != 0) + if ((error = sa6_embedscope(sin6, V_ip6_use_defzone)) != 0) return (error); } ==== //depot/projects/vimage/src/sys/netinet6/vinet6.h#12 (text+ko) ==== @@ -66,16 +66,16 @@ u_int _in6_maxmtu; int _ip6_auto_linklocal; - struct ip6stat _ip6stat; + struct ip6stat _ip6stat; struct rip6stat _rip6stat; struct icmp6stat _icmp6stat; int _rtq_timeout6; - struct callout _rtq_timer6; - struct callout _rtq_mtutimer; - struct callout _nd6_slowtimo_ch; - struct callout _nd6_timer_ch; - struct callout _in6_tmpaddrtimer_ch; + struct callout _rtq_timer6; + struct callout _rtq_mtutimer; + struct callout _nd6_slowtimo_ch; + struct callout _nd6_timer_ch; + struct callout _in6_tmpaddrtimer_ch; int _nd6_inuse; int _nd6_allocated; @@ -139,6 +139,7 @@ int _nd6_maxndopt; int _nd6_maxnudhint; int _nd6_maxqueuelen; + int _nd6_debug; int _nd6_recalc_reachtm_interval; int _dad_ignore_ns; int _dad_maxtry; @@ -152,6 +153,7 @@ u_int _mrt6debug; int _ip6_temp_regen_advance; + int _ip6_use_defzone; }; #endif @@ -245,6 +247,7 @@ #define V_nd6_maxndopt VNET_INET6(nd6_maxndopt) #define V_nd6_maxnudhint VNET_INET6(nd6_maxnudhint) #define V_nd6_maxqueuelen VNET_INET6(nd6_maxqueuelen) +#define V_nd6_debug VNET_INET6(nd6_debug) #define V_nd6_recalc_reachtm_interval VNET_INET6(nd6_recalc_reachtm_interval) #define V_dad_ignore_ns VNET_INET6(dad_ignore_ns) #define V_dad_maxtry VNET_INET6(dad_maxtry) @@ -258,4 +261,6 @@ #define V_mrt6debug VNET_INET6(mrt6debug) #define V_ip6_temp_regen_advance VNET_INET6(ip6_temp_regen_advance) +#define V_ip6_use_defzone VNET_INET6(ip6_use_defzone) + #endif /* !_NETINET6_VINET6_H_ */